Oracle RAC數據庫備份故障一例
問題描述
1.Simpana for Oracle客戶端安裝配置完成,并且在CS上“客戶端計算機”界面能正常發現;
2.在CS上新發現的RAC01、RAC02兩個節點上,執行節點“就緒檢查”,結果“就緒”;
3.在CS上新發現的節點下的Oracle上,執行“探尋實例”,可正常發現orcl實例;
4.在CS界面上添加新的Oracle RAC客戶端,配置好兩個RAC節點后,在兩個Oracle RAC節點的詳細信息界面,點擊刷新,數據庫的狀態時而顯示“打開”,時而顯示“未知”,制定的備份任務失敗,備份進度條在10%處終止;
環境說明
業務:Oracle 11.2.0.3 RAC雙機環境;
OS:RedHat Enterprise Linux 5.4
存儲:使用5300 v3(V300R003c20)存儲做為RAC的共享存儲空間;
備份:使用CommVault Simpana備份軟件備份RAC數據庫;
告警信息
在CS備份軟件界面,雙擊備份失敗的任務,查看相應的RMAN日志,截取關鍵錯誤信息如下:
RMAN-12001: could not open channel ch2
RMAN-10008: could not create channel context
RMAN-10003: unable to connect to target database
ORA-12154: TNS:could not resolve the connect identifier specified
處理過程
1.根據前面描述的數據庫的狀態,時而“打開”,時而“未知”的情況,可以在Oracle的兩個RAC節點上監控listener.log,查看CS連接兩臺RAC節點的連接情況:
tail -f listener.ora
通過監控發現,在CS界面上刷新Oracle數據庫狀態,如果是“打開”狀態,則listener會出現約6條連接信息;若狀態是“未知”,則節點的listener無任何連接信息;
2.根據以上RMAN錯誤信息提示,判斷應該是在連接數據庫的時候,名稱解析出錯了;
查看數據庫當前的tnsnames.ora,默認配置如下:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
注意到以上數據庫的默認配置,HOST使用了scan這個動態主機名,從而判斷問題應該出在這里;
修改tnsnames.ora配置,將HOST值改為該RAC節點的vip配置:
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01_vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac02_vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
保存修改后,再次在CS界面上刷新Oracle數據庫的狀態,狀態均為“打開”,問題解決!
注:以上scan、rac01_vip、rac02_vip均需要在/etc/hosts里做好解析。
根因
Oracle在新的11G版本里,推出一個SCAN的概述,即SCAN(Single Client Access Name),目前是為了簡化以前的Oracle RAC 數據庫在客戶端的配置復雜度,客戶端可以通過SCAN 特性負載均衡地連接到RAC數據庫,針對于SCAN的連接并不明確指定會連接到哪個RAC的節點;
但Simpana備份時,則要求備份連接必須能明確的連接到指定的兩個節點,所以Oracle RAC的默認配置,導致了以上備份錯誤;
在原配置基礎上,我們手動添加了RAC節點的vip地址,該地址在數據庫正常情況下,始終綁定在對應的RAC節點上,可解決scan地址連接的隨機問題。
Oracle 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。