一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Oracle Data Guard如何部署Broker统一管理

时间:2026-08-18 09:38:49 编辑:袖梨 来源:一聚教程网

必须先确保主备库DG_BROKER_START=TRUE,再用dgmgrl sys/password@db_unique_name连接;CREATE前须验证DB_UNIQUE_NAME、LOG_ARCHIVE_CONFIG、LOG_ARCHIVE_DEST_2含DB_UNIQUE_NAME=、主库OPEN且备库MOUNT;ENABLE卡住时运行VALIDATE DATABASE定位具体问题。

必须先确保主备库都启用了 DG_BROKER_START=TRUE,否则 dgmgrl 连上也建不了配置——这是 90% 初次部署失败的根源。

怎么用 dgmgrl 正确连接主库和备库

直接敲 dgmgrl 回车,默认连本地实例(很可能不是你要管的库),且不带认证;/ 操作系统认证又要求你已切换到 oracle 用户并有本地权限,生产环境几乎不可靠。

  1. 主库连接写法:dgmgrl sys/password@primary_db_unique_namesys 必须有 SYSDBA 权限
  2. 备库同理:dgmgrl sys/password@standby_db_unique_name,注意这里填的是 DB_UNIQUE_NAME,不是服务名或实例名
  3. 如果报 ORA-12154: TNS could not resolve the connect identifier,立刻检查 $ORACLE_HOME/network/admin/tnsnames.ora 是否存在对应条目,且语法无空格、括号不匹配等低级错误

CREATE CONFIGURATION 前必须验证的 4 个硬性条件

Broker 不校验底层状态,只读参数值。参数错一个,CREATE 就失败,报错信息却很模糊(比如 ORA-16625)。

  1. DB_UNIQUE_NAME:主备库各自查 SHOW PARAMETER db_unique_name,值必须非空、唯一、且与 tnsnames.ora 中使用的名称一致
  2. LOG_ARCHIVE_CONFIG:必须显式包含双方,例如 'DG_CONFIG=(prim,stan)';漏掉任一端,Broker 就认为“不可达”
  3. LOG_ARCHIVE_DEST_2(或更高编号):主库上该参数必须指向备库,且含 DB_UNIQUE_NAME=stan ——这个 DB_UNIQUE_NAME= 子句是高频遗漏点
  4. 数据库状态:主库必须 OPEN,备库必须 MOUNT(不能是 READ ONLYOPEN

ENABLE CONFIGURATION 卡住或报 ORA-16792 怎么办

启用不是瞬间完成,Broker 会逐项检查依赖项。卡住 ≠ 命令错,而是某个前置状态没到位。

  1. 先运行 VALIDATE DATABASE(在 dgmgrl 里),它会输出具体哪一项不满足,比 ENABLE 的报错更明确
  2. 最常见是备库没开归档:ARCHIVE LOG LIST 显示 Archive Mode: Disabled → 必须 SHUTDOWN IMMEDIATESTARTUP MOUNTALTER DATABASE ARCHIVELOG
  3. 检查 SELECT DATABASE_ROLE, OPEN_MODE FROM V$DATABASE:备库必须是 PHYSICAL STANDBY + MOUNTED;如果是 READ ONLY,得先取消日志应用再 SHUTDOWNSTARTUP MOUNT
  4. ORA-16792 往往伴随 ORA-16810(multiple errors),说明不止一个问题,按 VALIDATE 输出逐条修复

真正麻烦的不是命令本身,而是 Broker 对底层一致性极度敏感——DB_UNIQUE_NAME 拼错一个字母、tnsnames.ora 多一个空格、备库忘了 ALTER DATABASE ARCHIVELOG,都会让整个流程停在某个看似无关的步骤上。动手前花十分钟核对这四点,比卡住后查两小时日志更省时间。

热门栏目