ORA-16047: DGID mismatch between destination setting and target database

文档解释

ORA-16047: DGID mismatch between destination setting and target database

Cause: The DB_UNIQUE_NAME specified for the destination did not match the DB_UNIQUE_NAME at the target database.

Action: Make sure the DB_UNIQUE_NAME specified in the LOG_ARCHIVE_DEST_n parameter matches the DB_UNIQUE_NAME parameter defined at the destination.

ORA-16047 DGID mismatch between Destination Setting and Target Database 这是一个Oracle错误,表明Data Guard配置中目标数据库和目标设置之间 存在DGID不匹配问题。

(1)官方解释

ORA-16047适用于: Oracle 数据库 – Enterprise Edition – 版本11.2.0.2及更高版本

出现ORA-16047的原因是目标数据库的DGID与目标设置中的DGID不匹配。如果目标数据库的DGID与目标设置中的DGID不匹配,则无法在这样的Data Guard配置中执行足够的Data Guard验证来确保一致性。

因此,Data Guard不会从一个DGID与另一个不匹配的DGID上启动复制。因此,如果遇到此ORA-16047错误,则需要确保目标数据库和目标设置中的DGID相符才能将数据保护目标正确配置。

常见案例

常见的案例是,用户误将只读数据库(例如standby数据库)设置为主数据库,或者将主数据库(例如primary数据库)设置为只读数据库,而没有重新配置Data Guard设置。

(3)正常处理方法及步骤

1. 在目的端的配置文件(destionation.ora)中确认你的目标数据库的DGID

2. 使用SQL * Plus连接到目标数据库,然后运行以下SQL语句:

SELECT log_mode, dbid FROM v$database;

3. 对比你的目标数据库的DGID和destination.ora中的DGID

4. 若两者不一致,则使用alter system set dgid=xxx 命令更新它们

5. 使用 alter system set dg_broker_start=true 命令启动Data guard broker,然后使用alter system set dg_broker_config_file1=’…’命令创建一个新的配置文件,用以替换以前的配置文件

6. 启动Data Guard进程,确保其正常运行

你可能感兴趣的