錯誤背景:
今天早上一早忽然發現數據庫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也須要改,而後兩邊都改完後就恢復正常了。有驚無險,修改數據庫必定要謹慎。即便文檔再詳細也要注意參數。日誌