1.查看Oracle数据库是否为归档模式:
SQL> select name,log_mode from v$database; NAME LOG_MODE-------------------------------------------------- ------------ORCL ARCHIVELOG |
2.使用archive log list命令:
SQL> ARCHIVE LOG LIST ;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 5Next log sequence to archive 7Current log sequence 7 |
3.查看是否设置打开实例时自动启动归档:
SQL> show parameter log_archive_start; NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_start boolean TRUE |
4.Oracle归档模式
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入、删除、更新数据等。对这些数据操作都会记录在联机重做日志里。一般数据库至少有3个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2被写满后,又会发生新的日志切换;在之后写日志组3,在之后日志组1,不断循环。
如果数据库处于非归档模式,联机日志在切换时就会被丢弃,而在归档模式下,当发生日志切换的时候,被切换的日志进行归档。被覆盖之前的日志内容会被拷贝到另一个指定的目录下,这个目录就是归档目录。拷贝的文件叫做归档重做日志文件。
数据库使用归档方式运行时才可以进行灾难性恢复。
1)归档模式和非归档模式的区别
非归档模式只能做冷备份,并且恢复时按照最近一次完全备份时间进行恢复,备份到系统出错之间的数据不能恢复。
归档模式可以做热备份,并且可以做增量备份,恢复时也可以进行部分恢复。
用ARCHIVE LOG LIST可以查看模式状态是归档模式还是非归档模式。
2)配置数据库的归档模式
1.改变非归档模式到归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)此时记得要做一次完全备份,因为非归档模式下产生的备份日志对于归档模式已经不可用了。
2.改变归档模式到非归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.启用自动归档(10g会自动启用):LOG_ARCHIVE_START=TRUE
SQL> SHOW PARAMETER LOG_ARCHIVE_START; NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_start boolean TRUE |
归档模式下,日志文件不允许被覆盖(重写),当日志文件写满后,如果没有进行手动归档,那么系统将挂起。直
到归档完成为止,这时只能读不能写。
在Oracle10g中,LOG_ARCHIVE_START参数已经被废弃,只要启动数据库的归档模式,Oracle就会启用自动
归档。
运行过程中关闭和重启归档日志进程:
SQL>ARCHIVE LOG STOP/START;
转载自