最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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 用户并有本地权限,生产环境几乎不可靠。
- 主库连接写法:
dgmgrl sys/password@primary_db_unique_name,sys必须有SYSDBA权限 - 备库同理:
dgmgrl sys/password@standby_db_unique_name,注意这里填的是DB_UNIQUE_NAME,不是服务名或实例名 - 如果报
ORA-12154: TNS could not resolve the connect identifier,立刻检查$ORACLE_HOME/network/admin/tnsnames.ora是否存在对应条目,且语法无空格、括号不匹配等低级错误
CREATE CONFIGURATION 前必须验证的 4 个硬性条件
Broker 不校验底层状态,只读参数值。参数错一个,CREATE 就失败,报错信息却很模糊(比如 ORA-16625)。
-
DB_UNIQUE_NAME:主备库各自查SHOW PARAMETER db_unique_name,值必须非空、唯一、且与tnsnames.ora中使用的名称一致 -
LOG_ARCHIVE_CONFIG:必须显式包含双方,例如'DG_CONFIG=(prim,stan)';漏掉任一端,Broker 就认为“不可达” -
LOG_ARCHIVE_DEST_2(或更高编号):主库上该参数必须指向备库,且含DB_UNIQUE_NAME=stan——这个DB_UNIQUE_NAME=子句是高频遗漏点 - 数据库状态:主库必须
OPEN,备库必须MOUNT(不能是READ ONLY或OPEN)
ENABLE CONFIGURATION 卡住或报 ORA-16792 怎么办
启用不是瞬间完成,Broker 会逐项检查依赖项。卡住 ≠ 命令错,而是某个前置状态没到位。
- 先运行
VALIDATE DATABASE(在dgmgrl里),它会输出具体哪一项不满足,比ENABLE的报错更明确 - 最常见是备库没开归档:
ARCHIVE LOG LIST显示Archive Mode: Disabled→ 必须SHUTDOWN IMMEDIATE→STARTUP MOUNT→ALTER DATABASE ARCHIVELOG - 检查
SELECT DATABASE_ROLE, OPEN_MODE FROM V$DATABASE:备库必须是PHYSICAL STANDBY+MOUNTED;如果是READ ONLY,得先取消日志应用再SHUTDOWN重STARTUP MOUNT -
ORA-16792往往伴随ORA-16810(multiple errors),说明不止一个问题,按VALIDATE输出逐条修复
真正麻烦的不是命令本身,而是 Broker 对底层一致性极度敏感——DB_UNIQUE_NAME 拼错一个字母、tnsnames.ora 多一个空格、备库忘了 ALTER DATABASE ARCHIVELOG,都会让整个流程停在某个看似无关的步骤上。动手前花十分钟核对这四点,比卡住后查两小时日志更省时间。