Oracle RAC是一個比較複雜的東西,擁有眾多進程和組件,每個進程都會寫入自己的記錄檔。
對於這些記錄檔,有一些開關,可以控制寫入資訊的詳細程度,這些開關,在Oracle文檔光碟片裡面並未提供,要修改這些開關,大致有三種方法:
一、通過設定檔來修改
二、通過環境變數來修改
三、通過為每個組件設定debug等級來修改
以下介紹每一種和第三種方法,附件的指令碼,是將第三種方法做了自動化,只需要按照以下方法使用,即可完成debug開關的修改:
perl crs_debug_level.pl level=1
要禁用debug模式,則設定level為0:
perl crs_debug_level.pl level=0
推薦將level設定為1,最高可設定為5,但是設定得太高,輸出的資訊太多,而且基本上我們也看不懂,只有ORACLE專門做研發和測試的部門才能看懂。
因此,在診斷RAC問題時,建議使用附件的工具,來設定記錄檔的debug等級,這樣,我們能夠看到更詳細的日誌,更加有利於快速定位問題。
以下是方法介紹:
方法一:通過設定檔來修改
1、vi $ CRS_HOME/bin/racgvip
將
# _USR_ORA_DEBUG=1
修改為
_USR_ORA_DEBUG=1
2、vi $CRS_HOME/bin/racgwrap
將
#_USR_ORA_DEBUG=1 && export _USR_ORA_DEBUG
修改為
_USR_ORA_DEBUG=1 && export _USR_ORA_DEBUG
3、修改$ORACLE _HOME/bin/racgwrap
將
#_USR_ORA_DEBUG=1 && export _USR_ORA_DEBUG
修改為
_USR_ORA_DEBUG=1 && export _USR_ORA_DEBUG
方法三:為每個組件設定debug 等級
1、crsctl lsmodules css
CSSD
COMMCRS
COMMNS
2、crsctl lsmodules crs
CRSUI
CRSCOMM
CRSRTI
CRSMAIN
CRSPLACE
CRSAPP
CRSRES
CRSOCR
CRSTIMER
CRSEVT
CRSD
CLUCLS
CSSCLNT
COMMCRS
COMMNS
3、crsctl lsmodules evm
EVMD
EVMDMAIN
EVMDCOMM
EVMEVT
EVMAPP
EVMAGENT
CRSOCR
CLUCLS
CSSCLNT
COMMCRS
COMMNS
4、對以上輸出,分別執行命令:
crsctl debug log <component> <module>:<level>{,<module>:<level>]
如:crsctl debug log crs "CRSCOMM:2"
由於以上操作有規律可循,因此用附件的指令碼,可以輕易完成這項工作。