最近有需求要给数据库新搭一个DG变为一主两从,搭好之后测试发现一直没有同步,检查问题。
从库一直等待接收71855号日志
主库有归档日志发送失败的报错,可以看到归档到dest_2(原从库)是成功的,而到desc_3(新从库)则是失败的
根据日志提示查看arc2进程的trace日志
看到有ora-16058和ora-16047的报错,解释如下
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;
查看主库日志,发现归档日志发送成功
再检查发现从库换了新的alert日志路径,查看新日志
发现新接收的日志已经开始应用了,检查主从同步情况,发现已经同步,大功告成~
另外查网上文章发现如果备库没有设置LOG_ARCHIVE_CONFIG参数也会出现ORA-16047报错,并且此时这个报错的提示就不像我们这个问题这么直接,需要检查v$dataguard_status看是否有其他报错。
参考
标签:主库,target,dest,destination,报错,日志,从库,mydb From: https://blog.51cto.com/u_13631369/6202387