ORACLE 11.2 RAC修改資料庫靜態引數

lhrbest發表於2016-05-09

作業系統:HP UNIX 11.31

資料庫:oracle 11.2 rac

今天對一套ORACLE 11.2 RAC資料庫進行引數調整,修改db_files為3000,系統預設為200。順便修改了作業系統的核心引數:fs_async,伺服器也需要重啟。

操作計劃:

1、引數在兩個節點都修改完畢,不重啟機器和資料。

2、先重啟節點1,節點2先不動,等節點1起來之後,再重啟節點2.

故障:

可是在節點1啟動之後,例項怎麼都起不來,然後手工用srvctl啟動例項報錯:

racdb1:/home/grid> srvctl start instance -d racdb -n racdb1
PRCR-1013 : Failed to start resource ora.racdb.db
PRCR-1064 : Failed to start resource ora.racdb.db on node racdb1
CRS-5017: The resource action "ora.racdb.db start" encountered the following error:
ORA-01105: mount is incompatible with mounts by other instances
ORA-01174: DB_FILES is 3000 buts needs to be 200 to be compatible
. For details refer to "(:CLSN00107:)" in "/oracle/app/grid11.2.0/log/racdb1/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.nims.db' on 'racdb1' failed

檢視alert日誌,發現:

ORA-1105 signalled during: ALTER DATABASE MOUNT /* db agent *//* {1:56904:2} */...

問題解決:

原來修改完db_files引數後,資料庫都沒有重啟,節點2上db_files的引數為:200,而節點1重啟後新引數為:3000。所以兩個節點引數才會不相容。

找到了原因,趕緊想辦法解決。

在節點2進入sqlplus裡,直接把資料庫shutdown後,然後重新啟動。因為這個時候例項1還沒起來,而且引數為新引數,例項2重啟後也是新引數3000,這樣兩邊就一直了。

節點2上重啟例項:

racdbC2:/home/oracle> sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Fri Sep 27 15:18:10 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 5.4784E+10 bytes
Fixed Size                  2195616 bytes
Variable Size            2.6172E+10 bytes
Database Buffers         2.8588E+10 bytes
Redo Buffers               20557824 bytes
Database mounted.
Database opened.
SQL> exit

節點1上:

racdb1:/home/grid>  srvctl start instance -d racdb -n racdb1

檢查服務,例項1成功啟動。

總結:

ORACLE RAC資料庫修改靜態引數,不能使用輪流啟動的方式,必須把兩個節點的例項全部停掉,然後再啟動例項。否則會提示資料庫引數不相容,例項將無法啟動。

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

相關文章