Oracle RAC 日常維護

tangyunoracle發表於2010-11-24

鑑於工作中經常會用到一些簡單的RAC日常維護命令,這裡整理一些以便需要的時候檢視。這些命令都是查了AIX環境下的,大部分都在實際環境中試驗過,其他UNIX/LINUX環境也基本一樣。

[@more@]Oracle RAC 日常管理
1. CRS的管理
Crsctl命令控制著本地節點的crs服務(Oracle clusterware processes)
a. 停止crs:
$crsctl stop crs OR $/etc/init.crs stop OR $crs_stop -all
b. 啟動crs:
$crsctl start crs OR $/etc/init.crs start OR $crs_start -all
c. 禁止clusterware在系統重啟時自動啟動的方法:
$/etc/init.crs disable
d. 啟動clusterware在系統重啟時自動啟動的方法:
$/etc/init.crs disable
e. 檢視crs狀態
$crsctl check crs
2. OCR的資源管理
OCR的資源,當RAC cluster啟動併成功執行以後,你可以使用crs_stat檢視crs的內容。
通常的情況下,所有的資源的狀態都是online。另外OCR每四個小時會備份一次,有一些情況你可以透過恢復的OCR的配置檔案來恢復出現問題的OCR。
$ crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
$ crsctl check boot
Failure 4 at procr_open_key with status 4.
PROC-4: The cluster registry key to be operated on does not exist.
$ crsctl check crs
Failure 1 contacting CSS daemon
Cannot communicate with CRS
Cannot communicate with EVM
引起這種錯誤的原因是因為OCR的配置丟了,我們可以使用這些備份來還原以前的配置。
# /etc/init.crs disable
# /etc/init.crs stop
先保證所有的crs程式全部停止。
# su – oracle
$ cd $ORA_CRS_HOME/bin
$./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr
然後切換到root使用者下,重新enable CRS
# /etc/init.crs enable
最後reboot兩個節點。
3. SRVCTL命令介紹
SRVCTL命令可以控制RAC資料庫中的instance,listener以及services。
通常SRVCTL在ORACLE使用者下執行。下面我們來介紹srvctl命令。
a、透過SRVCTL命令來start/stop/check所有的例項:
$ srvctl start|stop|status database -d
b、start/stop指定的例項:
$ srvctl start|stop|status instance -d -i
c、列出當前RAC下所有的
$ srvctl config database -d
d、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n
e、如果你使用ASM,srvctl也可以start/stop ASM例項:
$ srvctl start|stop asm -n [-i ] [-o]
f、可以獲取所有的環境資訊:
$ srvctl getenv database -d [-i ]
g、設定全域性環境和變數:
$ srvctl setenv database -d -t LANG=en
h、從OCR中刪除已有的資料庫:
$ srvctl remove database -d
i、向OCR中新增一個資料庫:
$ srvctl add database -d -o
[-m ] [-p] [-A /netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s ]
j、向OCR中新增一個資料庫的例項:
$ srvctl add instance -d -i -n
$ srvctl add instance -d -i -n
k、向OCR中新增一個ASM例項:
$ srvctl add asm -n -i -o
l、新增一個service
$ srvctl add service -d -s -r
[-a ] [-P ] [-u]
m、修改在其他節點上的service
$ srvctl modify service -d -s -I -t
n、relocate 某個節點的service到其他節點
srvctl relocate service -d -s -I
-t
例子:
1、 登入其中一臺伺服器
#su - oracle
>$ srvctl stop database -d tangyunywk -o immediate ---關閉業務庫
>$ srvctl stop database -d tangyunzyk -o immediate ---關閉資源庫
>$ srvctl stop asm -n tangyunxj1
>$ srvctl stop asm -n tangyunxj2
>$ srvctl stop nodeapps -n tangyunxj1
>$ srvctl stop nodeapps -n tangyunxj2
用crs_stat -t 命令檢視,所有服務全部offline後,可以正常關閉伺服器
>$ crs_stat -t
#halt -p
登入另一小機,直接執行關機命令:
#halt -p
4. SRVCTL相關的選項
SRVCTL START/STOP/STATUS options:
-d database name
-i instance name
-n node name (for nodeapps)
5. 開啟/檢視/關閉OEM服務
$emctl start/status/stop dbconsole
WIN:OracleDBConsole$ORACLE_SID
Oracle Net Manager netmgr
Oracle Net Configuration Assistant netca
$lsnrctl start/stop/status {listener}
解決vip漂移的指令碼。
vip漂移會導致監聽無法啟動,需要網路正常之後,重啟vip程式。
$crs_stop -f ora.node1.vip
$crs_start ora.node1.vip
$srvctl start listener -n node1

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

相關文章