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

Every Day of a DBA,第139期: ORA-16587: 指定给 Data Guard 中介的对象不明确

原创 ByteHouse 2026-05-12
60

作者:bytehouse
Oracle ACE、PostgreSQL ACE
10+年数据库架构与运维实战经验
公众号:bytehouse
墨天轮专栏:bytehouse
CSDN:Young DBA

DGMGRL> edit database ats set property ApplyState = OFF;
错误: ORA-16587: 指定给 Data Guard 中介的对象不明确
失败。

DGMGRL> 

备库的 DMON(Broker)进程已经进入僵死状态,单纯停掉 MRP 进程不足以释放资源,必须彻底重启 Broker 服务。


1. 备库侧:彻底关闭并重启 Broker 进程

sqlplus / as sysdba -- 第一步:停止日志应用 alter database recover managed standby database cancel; -- 第二步:关闭 Broker alter system set dg_broker_start=false scope=both sid='*'; commit; -- 第三步:强制刷新内存 alter system flush shared_pool; -- 第四步:重新启动 Broker alter system set dg_broker_start=true scope=both sid='*'; exit

2. 主库侧:同样重启 Broker(关键!)

sqlplus / as sysdba alter system set dg_broker_start=false scope=both sid='*'; alter system set dg_broker_start=true scope=both sid='*'; exit

3. 回到 DGMGRL,修改备库 LogXptMode

edit database ats set property LogXptMode=SYNC;

这次命令会成功,输出 已更新属性 "logxptmode"

4. 备库侧:重新开启实时日志应用

sqlplus / as sysdba alter database recover managed standby database using current logfile disconnect from session; exit

start database ats apply;

5. 切换保护模式为 MaxAvailability

edit configuration set protection mode as availability;
show configuration;

关键说明

  • ORA-16713 超时的本质,是备库的 DMON 进程无法响应主库 Broker 的命令,重启 dg_broker_start 是最直接的修复方式。
  • 主库也必须重启 Broker,否则两边的 Broker 通信依然可能存在问题。
  • 重启后,LogXptMode 就能正常修改,保护模式也能成功切换。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论