RAC某節點啟動遭遇ORA-01105,ORA-01606


環境:RHEL6.5 + Oracle11.2.0.4 雙節點RAC
故障現象:節點1實例沒有啟動成功,節點2正常啟動。

1.故障現象

嘗試啟動RAC 節點1,遭遇ORA-01105,ORA-01606: ``` SQL> startup mount; ORACLE instance started.

Total System Global Area 9.4869E+10 bytes
Fixed Size 2264056 bytes
Variable Size 5.0197E+10 bytes
Database Buffers 4.4560E+10 bytes
Redo Buffers 109174784 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01606: parameter not identical to that of another mounted instance

數據庫節點1目前狀態是NOMOUNT.

<h1 id="1">2.解決過程</h1>
**錯誤代碼說明:**

$ oerr ora 1105
01105, 00000, "mount is incompatible with mounts by other instances"
// *Cause: An attempt to mount the database discovered that another instance
// mounted a database by the same name, but the mount is not
// compatible. Additional errors are reported explaining why.
// *Action: See accompanying errors.

$ oerr ora 1606
01606, 00000, "parameter not identical to that of another mounted instance"
// *Cause: A parameter was different on two instances.
// *Action: Modify the initialization parameter and restart.

查詢gc_隱含參數

    set linesize 333
    col name for a35
    col description for a66
    col value for a30
    SELECT   i.ksppinm name,  
       i.ksppdesc description,  
       CV.ksppstvl VALUE
    FROM   sys.x$ksppi i, sys.x$ksppcv CV  
       WHERE   i.inst_id = USERENV ('Instance')  
       AND CV.inst_id = USERENV ('Instance')  
       AND i.indx = CV.indx  
       AND i.ksppinm LIKE '/_gc%' ESCAPE '/'  
    ORDER BY   REPLACE (i.ksppinm, '_', '');  

查詢結果如下(部分相同值的參數已省略):

--節點1:
_gc_policy_time how often to make object policy decisions in minutes 0
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking FALSE

--節點2:
_gc_policy_time how often to make object policy decisions in minutes 10
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking TRUE

發現問題,_gc_policy_time隱藏參數,_gc_read_mostly_locking隱藏參數,2個節點值不一致。
解決方法:根據現在正常運行的節點2的值,重新設置這兩個值:

alter system set "_gc_read_mostly_locking"=true scope=spfile sid='';
alter system set "_gc_policy_time"=10 scope=spfile sid='
';
--正常關閉節點1:
shutdown immediate;
--正常啟動節點1:
startup

實際執行過程如下:

SQL> alter system set "_gc_read_mostly_locking"=true scope=spfile sid='*';

System altered.

SQL> alter system set "_gc_policy_time"=10 scope=spfile sid='*';

System altered.

SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 9.4869E+10 bytes
Fixed Size 2264056 bytes
Variable Size 5.1271E+10 bytes
Database Buffers 4.3487E+10 bytes
Redo Buffers 109174784 bytes
Database mounted.
Database opened.

至此RAC節點1啟動成功。

<h1 id="3">3.總結</h1>
猜測故障原因應該是之前有人修改數據庫隱含參數,誤操作只修改了一個實例導致。
當我們操作RAC環境時,一定要注意`sid='*'`這一點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM