暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

设置备用归档路径的方法

19

Oracle可以设置备用归档路径,如果首要归档路径不可用,可以自动切换到备用路径,而平时备用路径不启用,这在一些对高可用要求比较高的环境中还是有实用价值,无法正确归档将会导致数据库挂起。启用该特性需要配置的参数如下:

log_archive_dest_1='location=/arc/archive/test alternate=log_archive_dest_2 noreopen'

log_archive_dest_2='location=/arc1/archive/test'

log_archive_dest_state_1=enable

log_archive_dest_state_2=alternate

log_archive_dest_1需要设置noreopen或者reopen=0属性,否则无法迅速切换到备用路径,可能导致数据库无法归档。

此时归档路径状态如下:

SQL> select dest_name,destination,status,error from v$archive_dest;

DEST_NAME DESTINATION STATUS ERROR

-------------------- ------------------ ---------- ---------------------

LOG_ARCHIVE_DEST_1 /arc/archive/test VALID

LOG_ARCHIVE_DEST_2 /arc1/archive/test ALTERNATE

LOG_ARCHIVE_DEST_3 standby VALID

LOG_ARCHIVE_DEST_4 INACTIVE

LOG_ARCHIVE_DEST_5 INACTIVE

LOG_ARCHIVE_DEST_6 INACTIVE

LOG_ARCHIVE_DEST_7 INACTIVE

LOG_ARCHIVE_DEST_8 INACTIVE

LOG_ARCHIVE_DEST_9 INACTIVE

LOG_ARCHIVE_DEST_10 INACTIVE

正常情况下,数据库会归档到/arc/archive/test目录下,如果/arc/archive/test目录不可用,则归档会报一次错,然后会切换到第二个备用路径/arc1/archive/test。

SQL> alter system archive log current;

alter system archive log current

*

ERROR at line 1:

ORA-16038: log 5 sequence# 2496 cannot be archived

ORA-19504: failed to create file ""

ORA-00312: online log 5 thread 1: '/u01/oracle/oradata/ningoo/redo05_01.dbf'

ORA-00312: online log 5 thread 1: '/u01/oracle/oradata/ningoo/redo05_02.dbf'


SQL> alter system archive log current;

System altered.

此时再看归档目标的状态,可以发现oracle自动做了修改,第一个失效路径被diable,而第二个备用路径被enable:

SQL> select dest_name,destination,status,error from v$archive_dest;

DEST_NAME DESTINATION STATUS ERROR

------------------- ------------------- ---------- -------------------------------------

LOG_ARCHIVE_DEST_1 /arc/archive/test DISABLED ORA-19504: failed to create file ""

LOG_ARCHIVE_DEST_2 /arc1/archive/test VALID

LOG_ARCHIVE_DEST_3 standby VALID

LOG_ARCHIVE_DEST_4 INACTIVE

LOG_ARCHIVE_DEST_5 INACTIVE

LOG_ARCHIVE_DEST_6 INACTIVE

LOG_ARCHIVE_DEST_7 INACTIVE

LOG_ARCHIVE_DEST_8 INACTIVE

LOG_ARCHIVE_DEST_9 INACTIVE

LOG_ARCHIVE_DEST_10 INACTIVE

注意,即使现在第一个归档路径恢复正常,也不会再自动切换回去,需要手工重新修改路径状态参数

log_archive_dest_state_1=enable

log_archive_dest_state_2=alternate

如果第一个主要归档目的地是NFS,则NFS主机down或者网络down的时候,在os上ls或者df都会hang住,但Oracle依然可以实现切换到备用归档路径,只是需要的时间稍长,在我的测试中大概花了10s左右才成功归档,并且alert会报错:

Errors in file /u01/oracle/admin/test/udump/test_ora_192654.trc:

ORA-07286: sksagdi: cannot obtain device information.

IBM AIX RISC System/6000 Error: 78: Connection timed out

切换成功后查看归档路径的状态如下:

SQL>select dest_name,destination,status,error from v$archive_dest;

DEST_NAME DESTINATION STATUS ERROR

-------------------- --------------------- ---------- -----------------------------------

LOG_ARCHIVE_DEST_1 /arc/test/test DISABLED ORA-16032: parameter destination

string cannot be translated

LOG_ARCHIVE_DEST_2 /arc1/archive/test VALID

LOG_ARCHIVE_DEST_3 standby VALID

LOG_ARCHIVE_DEST_4 INACTIVE

LOG_ARCHIVE_DEST_5 INACTIVE

LOG_ARCHIVE_DEST_6 INACTIVE

LOG_ARCHIVE_DEST_7 INACTIVE

LOG_ARCHIVE_DEST_8 INACTIVE

LOG_ARCHIVE_DEST_9 INACTIVE

LOG_ARCHIVE_DEST_10 INACTIVE

另外,设置归档路径到NFS,AIX会报错:

ORA-27054: NFS file system where the file is created or resides is not mounted with correct options

这是bug,设置event=’10298 trace name context forever, level 32′可以绕过NFS的mount选项检查。Note:420582.1上说将mount信息写到/etc/filesystems可以避过,但在我的测试中无效。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论