oracle 归档日志


  归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.


日志操作模式:ARCHIVELOG NOARCHIVELOG


1,改变日志操作模式:
检查当前日志操作模式
  SELECT log_mode from v$database;

关闭数据库,然后装载数据库
  SHUTDOWN IMMEDIATE
  STARTUP MOUNT
改变日志操作模式,然后打开数据库
  ALTER DATABASE ARCHIVELOG;
  ALTER DATABASE OPEN;


2,执行手工归档
  从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令

      ALTER DATABASE ARCHIVELOG MANUAL.
  需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.

       ALTER DATABASE ARCHIVELOG MANUAL命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:

  ALTER SYSTEM ARCHIVELOG ALL;

  svrmgrl> connect internal
  svrmgrl> shutdown normal
  3.然后启动实例并安装该数据库,但不打开数据库。
  svrmgrl> startup mount
  4.接着,发布下列更改数据库的命令。
  Svrmgrl> alter database archivelog;
  5.现在,数据库已经更改为归档方式,您可以打开数据库。
  svrmgrl> alter database open;
  提示:也可以使用DBA studio工具启用数据库的归档方式,操作很简单=============================================================ORACLE归档模式的设置
  在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
  一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
  二、 如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。
  运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):
  SQL> archive log list
  Database log mode Archive Mode
  Automatic archival Enabled
  Archive destination /backup/archivelog
  Oldest online log sequence 2131
  Next log sequence to archive 2133
  Current log sequence 2133
  没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):
  SQL> archive log list
  Database log mode No Archive Mode
  Automatic archival Disabled
  Archive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194
  Current log sequence 196
  三. 数据库日志模式的设置
  在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。
  将数据库的日志模式设置切换(Archive Mode 和No Archive Mode 之间的切换)的步骤和操作如下:
  1. 关闭运行的数据库实例
  SQL> shutdown
  在进行日志模式切换之前,必须将运行的数据库正常关闭。
  2. 备份数据库
  该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
  3. 启动数据库实例到mount 状态,但不要打开。
  SQL> startup mount
  4. 切换数据库日志模式。
  SQL> alter database archivelog;(设置数据库为归档日志模式)或SQL> alter database noarchivelog;(设置数据库为非归档日志模式)5. 打开数据库
  SQL> alter database open;
  6. 确认数据库现在处于归档日志模式。
  SQL> archive log list;
  Database log mode Archive Mode
  Automatic archival Enabled
  Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275
  Next log sequence 277
  Current log sequence 278
  7. 将这个时间点的redo logs 归档
  SQL> archive log all;
  8. 确认新产生的日志文件已在相应的归档目录下面。
  四. 自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
  在该模式下,数据库启动一个arch 进程,专门负责将redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):
  LOG_ARCHIVE_START=
  LOG_ARCHIVE_DEST=
  LOG_ARCHIVE_FORMAT=
  LOG_ARCHIVE_START:

相关文章: