DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database

最近有需求要给数据库新搭一个DG变为一主两从,搭好之后测试发现一直没有同步,检查问题。

从库一直等待接收71855号日志

主库有归档日志发送失败的报错,可以看到归档到dest_2(原从库)是成功的,而到desc_3(新从库)则是失败的

DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database_第1张图片

根据日志提示查看arc2进程的trace日志

DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database_第2张图片

看到有ora-16058和ora-16047的报错,解释如下

DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database_第3张图片

ora-16058报错是从库状态为not mounted,这很诡异,因为我们的从库明明已经open了。

而ora-16047是说从库的db_unique_name参数设置与主库log_archive_dest_n中设置的不符。检查了一下原来是从库db_unique_name参数没有改,直接用了主库原来的mydb,而在log_archive_dest_n中设置的是mydb_hc,因此检查到两个名称不符,并且主库检查到mydb_hc的从库状态为not mounted。

找到了问题解决方法就很简单,把从库db_unique_name改为mydb_hc,重启数据库;主库defer并enable log_archive_dest_state_3参数即可。

从库

Alter system set db_unique_name=’ mydb_hc’ scope=spfile;
alter database recover managed standby database cancel;
shutdown immediate;

主库

Alter system set log_archive_dest_state_3=defer;
Alter system set log_archive_dest_state_3=enable;

查看主库日志,发现归档日志发送成功

DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database_第4张图片

再检查发现从库换了新的alert日志路径,查看新日志

DG搭建报错 ORA-16047: DGID mismatch between destination setting and target database_第5张图片

发现新接收的日志已经开始应用了,检查主从同步情况,发现已经同步,大功告成~

另外查网上文章发现如果备库没有设置LOG_ARCHIVE_CONFIG参数也会出现ORA-16047报错,并且此时这个报错的提示就不像我们这个问题这么直接,需要检查v$dataguard_status看是否有其他报错。

 

参考 

https://oracleblog.org/working-case/misleading-ora-16047-dgid-mismatch-between-destination-setting-and-target-database/

你可能感兴趣的:(Oracle,灾备,报错&告警)