Oracle 11gR2默认valid_for引起ora-16009

本文介绍了在Oracle 11gR2中遇到ORA-16009错误的情况,该错误出现在备库的v$archive_dest视图中,原因是LOG_ARCHIVE_DEST_2参数设置不规范。通过分析日志和问题排查,发现默认的valid_for属性导致了问题。解决方案是在主库和备库上分别执行ALTER SYSTEM命令,补充完整valid_for参数,设置为'(online_logfiles, primary_role)',从而解决了错误,使Data Guard体系结构恢复正常。" 119317731,10537834,在CentOS 7上使用KVM安装Windows Server 2012 R2,"['服务器虚拟化', 'KVM', 'CentOS', 'Windows Server']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

alter日志路径:/u01/app/oracle/diag/rdbms/orcl1234_dg/orcl1234/trace/


配置完成dataguard后通过命令在主库和备库上查询:

SQL> select max(sequence#) from v$archived_log;

是一致没有错误的

通过命令

SQL> select dest_name,error,status,process from v$archive_dest where rownum<3;

在主库查询也是没有错误的

但是在备库查询:

SQL> select dest_name,error,status,process from v$archive_dest where rownum<3;

DEST_NAME
--------------------------------------------------------------------------------
ERROR
-----------------------------------------------------------------
STATUS           PROCESS
------------------ --------------------
LOG_ARCHIVE_DEST_1

VALID           ARCH

LOG_ARCHIVE_DEST_2
ORA-16009: invalid redo transport destination
ERROR           LGWR

DEST_NAME
--------------------------------------------------------------------------------
ERROR
-----------------------------------------------------------------
STATUS           PROCESS
------------------ --------------------
可以看出出现错误。


通过查看alter日志出现:

Errors in file /u01/app/oracle/diag/rdbms/orcl1234_dg/orcl1234/trace/orcl1234_arc1_3065.trc:
ORA-16009: invalid redo transport destination
PING[ARC1]: Heartbeat failed to connect to standby 'orcl1234_pre'. Error is 1600

通过查询是因为我的log_archive_dest_2参数设置默认参数引起的,我设置值为:

*.LOG_ARCHIVE_DEST_2='service=orcl1234_dg DB_UNIQUE_NAME=orcl1234_dg'

需要这里说明的是11g这个ora-16009 invalid redo transport destination并没有影响dg体系结构的运行,而这个错误也是反映在备库的v$archive_dest下,这个因为log_archive_dest_2参数不规范引起的,默认不设置valid_for属性oracle认为是 :

LGWR VALID_FOR=(ALL_LOGFILES, ALL_ROLES)。

修改参数将其补全,在主库上执行:

SQL> alter system set log_archive_dest_2='service=orcl1234_dg arch valid_for=(online_logfiles,primary_role) db_unique_name=orcl1234_dg';

System altered.

备库上执行:

SQL> alter system set log_archive_dest_2='service=orcl1234_pre arch valid_for=(online_logfiles,primary_role) db_unique_name=orcl1234_pre';

最后再在备库上通过命令查看
SQL> select dest_name,error,status,process from v$archive_dest where rownum<3;

DEST_NAME
--------------------------------------------------------------------------------
ERROR
-----------------------------------------------------------------
STATUS           PROCESS
------------------ --------------------
LOG_ARCHIVE_DEST_1

VALID           ARCH

LOG_ARCHIVE_DEST_2

VALID           ARCH

DEST_NAME
--------------------------------------------------------------------------------
ERROR
-----------------------------------------------------------------
STATUS           PROCESS
------------------ --------------------
恢复正常。alter日志也正常。


参考:http://www.dbaxiaoyu.com/archives/812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值