由於域名解析引起的dataguard傳輸日誌故障

snowdba發表於2015-09-25
環境描述:
主庫2節點RAC,備庫也是2節點RAC。資料庫版本為Oracle10.2.0.4.8。保護模式為最大效能。

現象:
主庫切換歸檔日誌後備庫接收不穩定,有時候能立刻收到有時候需要好久。在備庫的v$archived_log檢視中applied列看到很多NO,也就是還沒有應用的日誌。

問題原因:
在本次案例中問題出在了域名解析上。如果備庫只啟動一個節點到mount狀態並執行應用日誌是沒有問題的,當另一個節點也啟動到mount狀態時就出現日誌接收問題了。仔細觀察備庫tnsnames檔案發現每個節點相對應的LISTENER_BDBSTn中在HOST部分都使用了域名。這些域名並沒有出現在/etc/hosts中,顯然也沒有出現在DNS解析中。 DBA沒有root許可權,不能在/etc/hosts中新增域名也不能在DNS中註冊,當務之急能做的就是把域名換成IP。然後在local_listener中顯示宣告。

分別在每個節點的在tnsnames.ora新增
LISTENER_BDBST1 = (ADDRESS = (PROTOCOL = TCP)(HOST=10.5.210.11)(PORT=1522))
LISTENER_BDBST2 = (ADDRESS = (PROTOCOL = TCP)(HOST=10.5.210.13)(PORT=1522))

在sqlplus中為每個節點顯示宣告,該操作在一個例項上操作就可以,注意指明sid
SQL> alter system set local_listener='LISTENER_BDBST1' sid='BDBST1';
SQL> alter system set local_listener='LISTENER_BDBST2' sid='BDBST2';
SQL> alter system register;

show parameter local
local_listener     string     LISTENER_BDBST1

show parameter local
local_listener     string     LISTENER_BDBST2

經過上述調整,故障排除。主庫日誌切換後可以順利的傳送到備庫。

另外防止主庫在備份時候使用delete all input刪除還沒有傳遞到備庫的歸檔日誌,可以在RMAN中新增一個策略。
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY to shipped to all standby;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29047826/viewspace-1809184/,如需轉載,請註明出處,否則將追究法律責任。

相關文章