ORACLE 数据库包括NOARCHIVELOG 和 ARCHIVELOG 两种日志操作模式,默认为NOARCHIVELOG模式。
(1) NOARCHIVELOG (非归档模式)。NOARCHIVELOG 是指不保留重做历史记录的日志操作模式。这种日志操作模式只能用于保护例程失败(例如系统断电),而不能保护介质失败。如果进行日志切换,那么在不保留原有重做日志内容的情况下,日志组的新内容会直接覆盖其原有内容。
NOARCHIVELOG 模式具有以下一些特点:
- 当检查点完成之后,后台进程LGWR 可以覆盖原有重做日志内容。
- 如果在数据库备份之后的重做日志内容已经被覆盖,那么当数据库文件出现介质失败时,只能恢复到过去的完全备份点。
- 当数据库处于OPEN 状态时,不能备份数据库。
- 当执行数据库备份时,必须用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE、SHUTDOWN TRANSACTIONAL 关闭数据库。
- 当执行数据库备份时,必须备份所有数据文件和控制文件。
(2)ARCHIVELOG。ARCHIVELOG 是指保留重做日志历史记录的日志操作模式。这种日志操作模式不仅可用于保护例程失败,而且还可用于保护介质失败。如果后台进程LGWR 进行日志切换,那么后台进程ARCH 会自动将重做日志内容复制到归档日志中。
ARCHIVELOG 模式具有以下特点:
- 当出现介质(磁盘损坏、误删除文件)时,可以防止丢失数据。
- 当数据库处于OPEN 状态时,可以备份数据库,并且不影响数据库的正常使用。
- 当数据文件出现介质失败时,除了SYSTEM 表空间的数据文件之外,其他表空间的数据文件都可以在OPEN 状态下恢复。
- 当执行数据库恢复时,不仅可以执行完全恢复,而且可以将数据库恢复到备份点与失败点之间的某个时刻的状态。