1. 归档日志是非活动重做日志的备份。通过使用归档日志,可以保留所有重做历史记录。当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存在归档日志中,当数据库出现介质失败时,使用数据恩见备份,归档日志和重做日志可以完全恢复数据库。
2. ORACLE数据库包括NOARCHIVELOG和ARCHIVELOG两种日志操作模式。
3. NOARCHIVELOG(非归档模式)
NOARCHIVELOG不保留重做日志的日志操作模式。
4. NOARCHIVELOG模式有如下特点:
当检查点完成之后,后台进程LGWR可以覆盖原有重做日志内容。
如果数据库备份后的重做日志内容已经被覆盖,那么当出现数据文件损坏时只能恢复到过去的完全备份点。
执行数据库备份时,必须使用SHUTDOWN NORMAL,或SHURDOWN IMMEDIATE关闭数据库。
执行数据库备份时,必须备份所有数据文件和控制文件。
5. ARCHIVELOG(归档模式)
保留归档日志:保留重做日志模式。
6. ARCHIVE模式有如下特点:
出现介质失败(磁盘损坏,误删文件)时,可以防止丢失数据。
当数据库处于OPEN状态时,可以备份数据库,并且不影响数据库的正常使用。
出现数据文件损坏时,除了SYSTEM表空间的数据文件之外,其他表空间的数据可以在OPEN状态下恢复。
7. 执行数据库恢复时,不仅可以执行完全恢复,而且可以讲数据库恢复到特点(时间、SCN值、日志序列号)的状态。
8. 选择日志操作模式
选择日志操作模式的原则:
如果数据库允许丢失部分数据,可以选择NOARCHIVE模式,否则选择NOARCHIVE模式。
DSS(数据变化量很少)的数据库可以选择NOARCHIVE模式。OLTP模式(数据变化量很大)应该选择ARCHIVELOG模式。
如果数据库必须全时运行,应该选择ARCHIVELOG模式。
9. 改变日志操作模式
为了防止物理损坏导致丢失数据库数据,应该将数据库改变为ARCHIVELOG模式。改变日志操作模式时,必须以SYSDBA或者SYSOPER身份执行相应的操作。具体步骤如下:
1) 检查当前日志操作模式
在改变日志操作模式之前,DBA应首先检查当前日志操作模式。通过查询性能视图V$database,可以确定目前的日志操作模式。
sqlplus sys/oracle@demo as sysdba
SELECT log_mode FROM v$database;
2) 关闭数据库,然后装载数据库。
10. 改变日志操作模式只能在MOUNT状态下进行,因此必须首先关闭数据库,然后重新装载数据库。需要注意,如果要改变日志操作模式,那么在关闭数据库时,不能采用SHUTDOWN ABORT命令。
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
11. 改变日志操作模式,然后打开数据库。
将数据库转变为MOUNT状态后,可以改变数据库操作模式了。
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;
12. 从Oracle Database 10g开始,当将日志操作模式改为ARCHIVELOG模式时。ORACLE会自动启动ARCH进程。如果要使用手工归档,那么在改变日志操作时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL。