未命名

ORACLE数据库恢复技术

、恢复的意义



当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。



二、恢复的方法



IMPORT方法:



利用IMPORT,将最后一次EXPORT出来的数据文件IMPORT到新的数据库中,这种方式可以将任何数据库对象恢复到它被导出时的状态,此后的变化将无法挽回。IMPORT的命令可以交互式进行,各参数的具体含义见ORACLE EXP/IMP参数详解。这种方式适用于没有采用archive 模式的环境。



安全的恢复方法:



如果数据库运行在archive 模式下,那么一旦数据库损坏则可以通过冷备份(热备份)和归档备份将数据库恢复到断点状态。



数据库控制文件恢复(假设所有控制文件均被破坏):



数据库基于文件系统: 利用操作系统的tar、cp等命令即可。



数据库基于裸设备:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12



数据库数据文件恢复



数据及索引表空间、系统表空间的恢复:



回拷相关的数据库文件和该数据文件备份以来所有生成的所有逻辑日志文件并执行如下命令:



svrmgrl > startup mount

svrmgrl > alter database recover automatic

如果控制文件被破坏,则:svrmgrl > alter database recover using backup controfile; 按照提示输入log文件名和redolog文件名

svrmgrl > alter database open resetlogs;

数据库临时文件和回滚表空间的恢复:简单地offline drop 并重建即可 。



注意:如果数据库不运行在archive 模式下,则恢复只能恢复到上次备份时的状态。 关于archive 模式的设定,以及备份的相关技术,参见ORACLE数据库备份技术



三、ORACLE表空间恢复方案



(一)、户表空间

错误现象:



在启动数据库时出现ORA-01157,ORA-01110或操作系统级错



误例如ORA-07360,在关闭数据库(使用shutdown normal或shutdown immediate) 时将导致错误

相关文章