問題描述:
在RAC環境中,想開啟歸檔日志,其中使用
<code>SQL> alter system </code><code>set</code> <code>cluster_database=</code><code>false</code> <code>scope=spfile;-->把叢集修改為單執行個體</code>
修改好後主節點,恢複叢集雙節點
<code>SQL> alter system </code><code>set</code> <code>cluster_database=</code><code>true</code> <code>scope=spfile;<code>-->把叢集修改為雙執行個體</code></code>
目前資料庫主節點已經open狀态,查詢狀态是open
備節點已是shutdown狀态,啟動目前節點時報:
ORA-01102: cannot mount database in EXCLUSIVE mode
經從網上查閱資訊,可能是如下,我把相關解決思路copy過來大家可以參考
分析原因:
一、在HA系統中,已經有其他節點啟動了執行個體,将雙機共享的資源(如磁盤陣列上的裸裝置、叢集沒有正确開啟)占用了;
1、 Oracle的共享記憶體段或信号量沒有被釋放;
2、 Oracle的背景程序(如SMON、PMON、DBWn等)沒有被關閉;
3、 用于鎖記憶體的檔案lk<sid>和sgadef<sid>.dbf檔案沒有被删除。
解決思路:
當發生1102錯誤時,可以按照以下流程檢查、排錯:
如果是HA系統,檢查其他節點是否已經啟動執行個體檢查Oracle程序是否存在,如果存在則殺掉程序檢查信号量是否存在,如果存在,則清除信号量檢查共享記憶體段是否存在,如果存在,則清除共享記憶體段檢查鎖記憶體檔案lk<sid>和sgadef<sid>.dbf是否存在,如果存在,則删除。
具體做法:
首先,雖然我們的系統是HA系統,但是備節點的執行個體始終處在關閉狀态,這點通過在備節點上查資料庫狀态可以證明。
其次、是因系統是修改過叢集狀态的,是否在修改後沒有生效,當時就是查詢目前叢集狀态
<code>SQL> show parameter cluster</code>
<code>NAME TYPE VALUE</code>
<code>------------------------------------ ----------- ------------------------------</code>
<code>cluster_database boolean fales</code>
<code>cluster_database_instances integer 2</code>
<code>cluster_interconnects string</code>
這裡可能大概判斷出來啥問題影響,可能是目前修改參數後沒有生效,需要重新修改生效,就是第一種情況
把資料庫重新開機支mount狀态
<code>SQL> alter system </code><code>set</code> <code>cluster_database=</code><code>true</code> <code>scope=spfile;</code>
把資料庫修改成open狀态,再去嘗試備節點是否可以正常啟動成功,結果發現啟動成功
在修改RAC環境參數後最好再确認一下是否修改成功主
本文轉自xiaocao1314051CTO部落格,原文連結:http://blog.51cto.com/xiaocao13140/1936874 ,如需轉載請自行聯系原作者