运行在非归档模式下的数据库,在进行恢复时只能恢复到备份的时刻,从备份时刻以后的所有修改全部丢失。
非归档模式下的恢复的操作比较简单,只需要将全部备份文件还原到原始位置然后打开数据库即可:
SQL> SELECT LOG_MODE FROM V$DATABASE;
LOG_MODE
------------
NOARCHIVELOG
SQL> CONN /@TEST1 AS SYSDBA
已连接。
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> HOST COPY F:ORACLEBACKUPTEST120060224* F:ORACLEORADATATEST1
SQL> STARTUP
ORACLE 例程已经启动。
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
上面的步骤是备份了联机日志的情况。不过Oracle并不建议备份联机日志,如果没有备份联机日志,恢复过程会稍微麻烦一点:
SQL> CONN /@TEST1 AS SYSDBA
已连接。
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> HOST COPY F:ORACLEBACKUPTEST120060224*.DBF F:ORACLEORADATATEST1
SQL> HOST COPY F:ORACLEBACKUPTEST120060224*.CTL F:ORACLEORADATATEST1
SQL> STARTUP MOUNT
ORACLE 例程已经启动。
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> RECOVER DATABASE UNTIL CANCEL
完成介质恢复。
SQL> ALTER DATABASE OPEN RESETLOGS;
数据库已更改。
上面例子模拟不完全恢复,然后以RESETLOGS方式打开数据库,将联机日志文件序号重新置为1。