Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,
当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。
归档日志模式和非归档日志模式的区别
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
下面为更改数据库为归档模式
1、启动数据库
SQL> startup
ORACLE instance started.
Total System Global Area 218103808 bytes
Fixed Size 1218604 bytes
Variable Size 75499476 bytes
Database Buffers 138412032 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
2、查看数据库的归档模式,有两种方式
1) archive log list命令
SQL> archive log list
Database log mode No Archive Mode -- 表示非归档模式
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 9
Current log sequence 11
2) select log_mode from v$database;
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
3、关闭数据库,然后启动到mount状态(mount状态指的是启动实例后打开控制文件,但是其他文件没有打开)
1)关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2)启动到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 218103808 bytes
Fixed Size 1218604 bytes
Variable Size 75499476 bytes
Database Buffers 138412032 bytes
Redo Buffers 2973696 bytes
Database mounted.
3)更改数据库为归档模式
SQL> alter database archivelog;
Database altered.
4)打开数据库
SQL> alter database open;
Database altered.
5)启用自动归档模式
SQL> alter system archive log start;
System altered.
4、查看数据库模式
SQL> archive log list
Database log mode Archive Mode ----归档模式
Automatic archival Enabled ----自动归档
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 9
Next log sequence to archive 11
Current log sequence 11