1:开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。
2:生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志 文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
查看数据库的归档模式
archive log list
非归档模式---》归档模式(备份数据库在归档模式下进行)
SQL> conn / as sysdba (以DBA身份连接数据库) SQL> shutdown immediate; (立即关闭数据库) SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式) SQL> alter database open; (打开数据库) SQL> alter system archive log start; (启用自动归档) SQL> exit (退出)
归档模式--》非归档模式
SQL>shutdown immediate; SQL>startup mount; SQL>alter database noarchivelog; SQL>alter database open;
启用自动归档
log_archive_start=true
归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,直到归档完成为止. 这时只能读而不能写.
运行过程中关闭和重启归档日志进程
SQL>ARCHIVE LOG STOP SQL>ARCHIVE LOG START
手动归档
LOG_ARCHIVE_START=FALSE
归档当前日志文件 SQL>ALTER SYSTEM ARCHIVE LOG CURRENT; 归档序号为052的日志文件 SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052; 归档所有日志文件 SQL>ALTER SYSTEM ARCHIVE LOG ALL; 改变归档日志目标 SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
与归档进程有关的动态性能视图
v$bgprocess,v$archive_processes
配置归档目标,多归档目标,远程归档目标,归档日志格式
归档目标 LOG_ARCHIVE_DEST_n 本地归档目标: SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG"; 远程归档目标: SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1"; 强制的归档目标,如果出错,600秒后重试: SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600"; 可选的归档目标,如果出错,放弃归档: SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";
归档目标状态:关闭归档目标和打开归档目标 关闭归档目标1 SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER 打开归档目标2 SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE 归档日志格式 LOG_ARCHIVE_FORMAT
获取归档日志信息
V$ARCHIVED_LOG V$ARCHIVE_DEST V$LOG_HISTORY V$DATABASE V$ARCHIVE_PROCESSES ARCHIVE LOG LIST;