引言:筆者單位部署了基于ORACLE RAC集群的集中存儲(chǔ)平臺(tái),結(jié)合幾年來的運(yùn)行經(jīng)驗(yàn),就維護(hù)過程中常見的三例ORACLE RAC集群的故障作簡要介紹和排除方法。
故障排除:
筆者首先確保服務(wù)器所有服務(wù)啟動(dòng)。需在數(shù)據(jù)庫服務(wù)器端(可在集群的任意節(jié)點(diǎn)上)進(jìn)行,執(zhí)行命令:crs_stat t,檢查所有服務(wù)的啟動(dòng)狀態(tài),然后用lsnrctl stat查看監(jiān)聽中是否有要連接的服務(wù)。如果沒有需要連接的服務(wù),使用sqlplus本地連接數(shù)據(jù)庫,啟動(dòng)數(shù)據(jù)庫,使需要連接的數(shù)據(jù)庫處于OPEN狀態(tài)。
其次配置客戶端hosts文件。這里以安裝在Windows XP操作系統(tǒng)的客戶端為例,使用記事本程序編輯hosts文件,文件位于 C:windowssystem32driversetc目錄下,在末行添加ORACLE服務(wù)器的主機(jī)名和IP信息,內(nèi)容如下:
然后使用記事本程序配置客戶端tnsnames.ora文件。該文件位于(D:Oracleproduct10.1.0Client_1)NETWORKADMIN目錄下,括號(hào)里的內(nèi)容以oracle安裝位置為準(zhǔn)。需在tnsnames.ora文件內(nèi)添加監(jiān)聽的ORACLE服務(wù)器的主機(jī)VIP IP和監(jiān)聽端口信息,內(nèi)容如下:
最后進(jìn)行測試。使用客戶機(jī)ping集群服務(wù)器的各個(gè)節(jié)點(diǎn)。執(zhí)行命令C:>Ping rac1-vip,C:>ping rac2-vip,ping通之后,執(zhí)行命令C:>tnsping orcl,如果返回時(shí)間,表示客戶端連接正常。
故障排除:
筆者首先檢查小型機(jī)的共享存儲(chǔ)狀況。以root用戶權(quán)限查看能否看到磁盤陣列劃過來的磁盤:#lspv。
其次確認(rèn)磁盤陣列和光纖交換機(jī)是否開機(jī)加電。如果沒有看到從磁盤陣列劃分的磁盤,需確認(rèn)磁盤陣列和光纖交換機(jī)是否開機(jī)加電。按照先磁盤陣列后光纖交換機(jī)的順序加電、開機(jī)。狀態(tài)穩(wěn)定后,使用:#shutdown
Fr now命令重新啟動(dòng)所有小型機(jī):。
然后確認(rèn)小型機(jī)之間的心跳網(wǎng)線的連接狀況。如果在第一步中已經(jīng)查看到從磁盤陣列劃分的磁盤,那現(xiàn)在需要確認(rèn)小型機(jī)之間的心跳網(wǎng)線的連接狀況。并從rac1上 ping rac2-priv,從 rac2上 ping rac1-priv,如果有丟包,則需更換心跳網(wǎng)線。
最后再次啟動(dòng)HACMP。
故障排除:
首先需停止所有小型機(jī)的HACMP。在停止HACMP之前,要先停止數(shù)據(jù)庫服務(wù)(使用以下命令:$srvctl stop database d orcl)和 CRS集群(使用以下命令:#crsctl stop crs),然后在所有節(jié)點(diǎn)以root用戶權(quán)限執(zhí)行:#smit clstop命令停止所有小型機(jī)的HACMP。
其次在小型機(jī)2上使用#lsvg查看ORACLE數(shù)據(jù)卷組(oravg)的名稱。查看該卷組的major number。使用
#lvgenmajor oravg
進(jìn)行查詢并記錄。在小型機(jī)2上執(zhí)行#smitty vg后選擇exportvg將oravg導(dǎo)出,同時(shí)選擇importvg將oravg導(dǎo)入,導(dǎo)入時(shí)輸入vg name后點(diǎn)選oravg中的任意一個(gè)pv(系統(tǒng)指定的pv名 一 般 為 hdisk*)。oravg導(dǎo)入成功后,從小型機(jī)1向小型機(jī)2同步。在小型機(jī)1上以root用戶權(quán)限執(zhí)行
#smitty hacmp
選擇Extend Configura tion →Extend Verification and Synchronization→Automatically correct errors found during verification,按F4進(jìn)入后,選擇Yes并回車。
最后在所有小型機(jī)上查看裸設(shè)備權(quán)限。
#ls l /dev/r*,
如果權(quán)限不一致,使用:
#chmod 775 /dev/rhdisk*
進(jìn)行修改。在裸設(shè)備權(quán)限一致后再次啟動(dòng)HACMP。