错误背景:
今天早上一早忽然发现数据库DG告警邮件。延时达到了一千多分钟。赶忙上去查看了下啥状况。数据库
select sequence# "日志序列",DEST_ID "路径ID",name "备库名", applied "是否应用到备库", to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') "日志开始时间", to_char(COMPLETION_TIME,'yyyy-mm-dd hh24:mi:ss') "日志完成时间" from v$archived_log where sequence# > (select max(sequence#) - 80 seq from v$archived_log) and DEST_ID !=1;
一查发现从昨天下午两点开始就目标库都没有归档。由于及时发现归档还没被删除,因此找出错误立马解决仍是能够继续同步的。根据时间判断应该是昨天下午有什么误操做的缘由。由于归档都没投递到备库去,应该是DG节点或者远程归档路径设置错了。看下远程归档报错什么。服务器
select dest_id,dest_name,error from v$archive_dest WHERE DEST_ID<=3 ; 报错:ORA-16057: Data Guard 配置中没有服务器。
再检查节点配置信息app
show parameter log_archive_config log_archive_config string dg_config=(zhanky_s,zhanky_ss)
发现果真,把主节点zhanky_p踢出去了。搞彪了,原本要删除zhanky_s,而后搞错了。赶快及时修改回来。ide
Alter system set log_archive_config='dg_config=(zhanky_p,zhanky_ss)' scope=both; ---下面两条命令是为了快速触发,从新加载参数 alter system set log_archive_dest_state_3=defer scope=both; alter system set log_archive_dest_state_3=enable scope=both;
改完后发现,仍是有问题。想起来zhanky_ss也须要改,而后两边都改完后就恢复正常了。有惊无险,修改数据库必定要谨慎。即便文档再详细也要注意参数。日志