1.What Is the Archived Redo Log?
所谓的归档重做日志是指Oracle对已经满的一组或多组重做日志保存在线下,称为存档重做日志。把重做日志转化为归档重做日志的过程称为Archiving(归档。。。废话)。这个过程只能在ARCHIVELOG模式下才能生效。归档重做日志对于恢复数据库,更新备用数据库或者研究数据库的历史都是很有用的。
要设定归档,需要设置 ARCHIVELOG模式,在NOARCHIVELOG模式下,Oracle数据库就不需要对满的重做日志进行归档,这样当一个满的日志组在发生日志切换状态变为inactive时,这个日志组就可以被LGWR重用了。NOARCHIVELOG模式可以避免instance failure 但是对硬盘损坏却抵御不了,如果出现硬盘等介体错误,那么就只能用最近备份的数据库来恢复了。
在ARCHIVELOG模式下,当满的日志组发生日志切换时,这个日志组是不可用的,直到它被归档。你既可以自动归档也可以手动归档,通常来说自动归档是比较好的。
后台进程ARCn会自动进行归档,下图说重做日志归档的示意图:
暂时不能上传图片。。。。。
2.Controlling Archiving
要使用归档模式,可以在建立数据库是使用CREATE DATABASE 时设定,默认的是NOARCHIVELOG模式。如果数据库已经建立,那么可以使用一下步骤改变:
1. SHUTDOWN 关闭数据库
2. 备份数据库
3. 在初始化文件里设定归档重做日志的保存路径
4. STARTUP MOUNT 唤醒实例并挂载数据库但不要打开
5. 改变数据库工作模式,并打开
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
6. 关闭数据库 SHUTDOWN IMMEDIATE
7. 再一次备份数据库。
上面的步骤是对于自动归档重做日志的,对于手动归档重做日志,前面4步是一样的,但是第五步就变为: ALTER DATABASE ARCHIVELOG MANUAL; 其他都一样。
当你想要归档时,使用语句:ALTER SYSTEM ARCHIVE LOG ALL;就会把所有未归档的Log归档。这个语句即使是在自动归档模式下,也是可以使用的。例如需要对某个inactive的满重做日志归档到另一个存储路径。
初始参数LOG_ARCHIVE_MAX_PROCESSES是设定有多个ARCn进程,默认是有2个,一般2个就不会使得归档落后于重做日志写满了,而且这个参数说动态的,可以不用重新启动数据库。
3.Specifying the Archive Destination
如果只想要单一的保存路径,只需要设LOG_ARCHIVE_DEST参数就可以了,如果要设多个保存路径,那么就是用LOG_ARCHIVE_DEST_n 或者LOG_ARCHIVE_DEST and LOG_ARCHIVE_DUPLEX_DEST(后者说设一个主路径和从路径)。
例如设定多个保存路径:
LOG_ARCHIVE_DEST_1 = 'LOCATION=/disk1/arc'
LOG_ARCHIVE_DEST_2 = 'SERVICE=standby1'
采用LOCATION关键字的是使用本地路径的,而使用SERVICE关键字的是使用SID,Oracle会把Net Service 名字通过tnsname.ora文件转化为一个连接描述符,这个描述符就可以和远程的数据库相连接。
最后还可以通过LOG_ARCHIVE_FORMAT参数去设定归档重做日志的保存名称:
LOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arc
%t是日志线程号, %s日志序列号(Log Sequence Number), %r是resetlog ID(没深入研究)
归档目的地的状态有一下三类:
■ Valid/Invalid: 指示目的地磁盘位置是否存在和Service Name信息是否有效。
■ Enabled/Disabled: 指示目的地磁盘能否为Oracle所使用
■ Active/Inactive: 指示访问目的地磁盘是否有问题(即目的磁盘是存在,但是产生错误,例如写入错误,磁盘写满等)
4.Managing Archive Destination Failure
系统在运行时总会有问题产生,Oracle在自动归档模式中为了减少归档到目的地磁盘的失败,可以设定最小成功归档数目LOG_ARCHIVE_MIN_SUCCEED_DEST=n。因为在设定LOG_ARCHIVE_DEST_n 时可以对某个归档目的地设定为可选或是必要的(OPTIONAL 默认, MANDATORY),如果任何一个必要的归档失败,那么Oracle会忽略 LOG_ARCHIVE_MIN_SUCCEED_DEST。
而且LOG_ARCHIVE_MIN_SUCCEED_DEST 不能够大于总的归档目的地数。
设定LOG_ARCHIVE_DEST_n时还可以设定REOPEN=n关键字,表明当归档遇到错误时,ARCn进程会重新试n次归档。
最后是一些重要的Archived Redo Logs Views:
图片暂不能上传。