看完备份和恢复的概念之后,纠正了以前一些错误的观点,不过要想真的对文档上描述有一个更加深刻的了解,还是要自己多动手测试一下。
打算通过一系列简单的文章将备份和恢复的各种测试的操作、碰到的问题、以及自己的理解记录一下。
全库一致性备份是指在数据库正常关闭状态下进行的数据库备份。无论数据库处于归档模式还是非归档模式,这种备份方式都是适应的。正常关闭是只数据库以NORMAL、TRANSACTIONAL或IMMEDIATE选项进行的SHUTDOWN操作。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy E:oracle10.2.0oradatatest E:oraclebackuptest20060128
SQL> host copy E:oracle10.2.0yangtkdatabase*test.ora E:oraclebackuptest20060128
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 104857600 bytes
Fixed Size 1246492 bytes
Variable Size 58723044 bytes
Database Buffers 41943040 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
对于归档模式,可以在数据库文件还原之后继续执行恢复操作。
Oracle建议不要备份联机重做日志文件,如果意外恢复了联机重做日志文件,并错误的进行了恢复,可能会损坏数据库。而且Oracle还建议不要在数据库崩溃后关闭或数据库执行了SHUTDOWN ABORT操作后进行备份,这是由于数据库是处于不一致状态。
不过个人认为在绝大部分情况下,应该遵守Oracle的建议。不过特殊情况下,数据库崩溃或SHUTDOWN ABORT情况下的备份加上当时的联机日志文件的备份也是可以恢复数据库的。如果是非归档模式,正好可以利用备份的联机重做日志进行实例恢复。如果数据库处于归档模式,可以考虑先将联机重做日志文件备份到其他地方,利用备份时刻的联机重做日志文件进行实例恢复后,将关闭前时刻的重做日志文件拷贝回来,继续进行恢复。以上需要个人理解,不知道是否成立,不过会在后面恢复测试中尝试验证这种情况。