使用 CRS 在同一集群上配置 Oracle9i RAC 和 Oracle RAC 10g
作者:Ashok Singh,F(xiàn)astenal Corp 的數(shù)據(jù)庫(kù)管理員。
發(fā)布日期:2005 年 3 月
Oracle 數(shù)據(jù)庫(kù) 10g 包含許多增強(qiáng)功能,但最值得注意的功能之一是 Oracle 集群就緒服務(wù) (CRS) 的引入,它是 Oracle 的整套集群件。
Oracle CRS 是 Oracle 自身的集群件,它與 Oracle 真正應(yīng)用程序集群 (RAC) 緊密互補(bǔ)。必須在安裝 RAC 之前安裝 CRS。它還可以在任何第三方集群軟件上工作,但已經(jīng)不再要求購(gòu)買(mǎi)和部署這些軟件。
簡(jiǎn)而言之,Oracle CRS 用途為通過(guò)集群就緒服務(wù)后臺(tái)程序 (CRSD)、Oracle集群同步服務(wù)器后臺(tái)程序 (OCSSD) 和事件管理器后臺(tái)程序 (EVMD) 來(lái)管理 Oracle RAC 的高可用性 (HA)體系結(jié)構(gòu)。CRSD 通過(guò)啟動(dòng)、停止和故障切換應(yīng)用程序資源以及在 Oracle 集群注冊(cè)表 (OCR) 中維護(hù)配置文件和當(dāng)前狀態(tài)來(lái)管理 HA功能,而 OCSSD 通過(guò)使用表決磁盤(pán)來(lái)管理參與的節(jié)點(diǎn)。OCSSD 還通過(guò)強(qiáng)制性計(jì)算機(jī)重啟來(lái)防止由“裂腦”而導(dǎo)致的可能的數(shù)據(jù)損壞。
盡管 Oracle CRS 取代了 Oracle9i RAC 中的 Oracle 集群管理器 (ORACM),但它仍然支持全局服務(wù)后臺(tái)程序 (GSD),后者在 Oracle9i 中用于與 RAC 數(shù)據(jù)庫(kù)進(jìn)行通信。在 Oracle 10g 中,GSD 的唯一用途是為 Oracle9i 客戶端(如 SRVCTL、數(shù)據(jù)庫(kù)配置助手以及 Oracle 企業(yè)管理器)提供服務(wù)。從經(jīng)濟(jì)的角度來(lái)看,這是非常好的,因?yàn)槟槐卦儋?gòu)買(mǎi)新的客戶端許可證和硬件來(lái)支持 Oracle10g 數(shù)據(jù)庫(kù)。
本文要介紹的重要好處是 Oracle9i (9.2.0.4) RAC 客戶可以使用他們現(xiàn)有的開(kāi)發(fā)實(shí)例在相同的集群節(jié)點(diǎn)組上安裝和評(píng)估 Oracle RAC 10g—這將有助于進(jìn)行移植工程。
在本技術(shù)說(shuō)明中,我將逐步介紹如何使用 Oracle 集群文件系統(tǒng) (OCFS) 版本 1 以及用于Oracle 集群注冊(cè)表 (OCR) 和表決磁盤(pán)的原始設(shè)備在雙節(jié)點(diǎn) Linux (Red Hat Enterprise Linux 3 U2)集群上實(shí)現(xiàn)這樣一個(gè)配置。(注意,Oracle 建議您實(shí)施配置時(shí)采用順序?yàn)?Oracle 自動(dòng)存儲(chǔ)管理、OCFS、NFS 和原始設(shè)備。)
還需要指出的是,此實(shí)現(xiàn)對(duì)于 Linux 和 Windows 平臺(tái)的適用性要高于 Unix 平臺(tái),這是因?yàn)楹笳卟⒉皇芤嬗?Oracle9i 中的 ORACM。只有在使用 Oracle CRS 時(shí),才不需要供應(yīng)商特定的集群件。
第 1 步:?jiǎn)?dòng) ORACM
應(yīng)在所有節(jié)點(diǎn)上啟動(dòng)并運(yùn)行 ORACM,但為了便于安裝,最好關(guān)閉所有節(jié)點(diǎn)上的所有數(shù)據(jù)庫(kù)和監(jiān)聽(tīng)器。請(qǐng)注意,如果您忘記在所有節(jié)點(diǎn)上啟動(dòng) ORACM 進(jìn)程,則必須取消安裝 CRS 并在啟動(dòng) ORACM 后重新安裝。
第 2 步:創(chuàng)建一個(gè)新的 VIP 和 CRS 根目錄
配置中所需的唯一更改是為 CRS 安裝添加一個(gè)虛擬 IP 地址 (VIP) 和新的根目錄。VIP 在 /etc/hosts 文件或DNS(建議使用它)中配置,并使用邏輯公共 IP 地址。CRS 使用它來(lái)管理故障切換。(有關(guān) RAC 中的 VIP 配置的更多信息,請(qǐng)參閱MetaLink 注釋 264847。)
環(huán)境變量 $ORA_CRS_HOME 應(yīng)指向 ORACLE_HOME 以外的目錄。安裝程序?qū)?CRS 的所有二進(jìn)制文件安裝到此目錄中??梢园慈缦滤緦?duì)它進(jìn)行設(shè)置:
export ORACLE_HOME==/oracle/app/oracle/product/10g
export ORA_CRS_HOME=/oracle/app/orausr/product/10g/crs
安裝 CRS 時(shí)請(qǐng)務(wù)必將安裝程序中的根目錄位置更改為指向 $ORA_CRS_HOME!
第 3 步:為 OCR 和表決磁盤(pán)創(chuàng)建原始設(shè)備
開(kāi)始安裝 CRS 之前,需要為 OCR 和表決磁盤(pán)創(chuàng)建原始設(shè)備。這些原始設(shè)備必須位于集群的所有節(jié)點(diǎn)都可以訪問(wèn)的共享設(shè)備上。
OCR 和表決磁盤(pán)的建議大小分別為 100MB 和 20MB。如果決定使用原始設(shè)備,則在執(zhí)行下列命令創(chuàng)建和初始化原始設(shè)備之前,請(qǐng)將它們的所有權(quán)由 root 更改為 oracle。
% dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=25600
% dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=2560
% ln -s /dev/raw/raw1 /usr01/oradata/WMST/ocr.dbf
% ln -s /dev/raw/raw2 /usr01/oradata/WMST/voting.dbf
如果選擇直接在 OCFS 而非原始設(shè)備上安裝 CRS(這是 Oracle 的建議做法),則此過(guò)程甚至更為簡(jiǎn)單。當(dāng)安裝程序提示您提供 OCR 和 voting 磁盤(pán)的詳細(xì)信息時(shí),您只需提供共享文件位置(假設(shè)已經(jīng)安裝并配置了 OCFS):
Eg Specify OCR location :/usr01/oradata/WMST/ocr.dbf
(when prompted by the installer )
在分區(qū)上創(chuàng)建文件系統(tǒng)并將它安裝到 /usr01 上之后,從集群的所有參與節(jié)點(diǎn)上,使用同一設(shè)備通過(guò) ocfstool 將此分區(qū)安裝到相同的安裝點(diǎn)上。
第 4 步:安裝 CRS
我們現(xiàn)在可以開(kāi)始進(jìn)行安裝了。如果正確完成了上述配置,則安裝過(guò)程將非??焖?,10 分鐘內(nèi)就可在所有節(jié)點(diǎn)上完成。
安裝完成后,在所有節(jié)點(diǎn)上執(zhí)行 root.sh;此過(guò)程將顯示 CRS所需的所有后臺(tái)程序(crsd、ocssd、evmd 等)。它還將運(yùn)行虛擬 IP 配置助手,虛擬 IP 配置助手只在第一個(gè)需要 VIP的集群節(jié)點(diǎn)上作為 GUI 執(zhí)行。此腳本還將在 /etc/inittab 中生成條目,以便 CRS 在系統(tǒng)每次重新啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
此時(shí),CRS 已經(jīng)完全安裝并可以正常工作。以下每個(gè)命令將輸出 10 行以上信息,用于確認(rèn) CRS 正在正常運(yùn)行。還將自動(dòng)啟動(dòng) GSD(它只由 Oracle9i RAC 使用)。
% ps -ef --cols 500 |grep ocssd.bin
% ps -ef --cols 500 |grep crsd.bin
% ps -ef --cols 500 |grep evmd.bin
由于了解 CRS的內(nèi)部機(jī)制需要很深的概念知識(shí),因此有關(guān)所有這些后臺(tái)程序的功能的詳細(xì)信息超出了本文討論范疇。請(qǐng)不要終止這些后臺(tái)程序,因?yàn)檫@樣做將自動(dòng)重新啟動(dòng)計(jì)算機(jī),這一點(diǎn)不用多說(shuō),您也會(huì)清楚。建議的 CRS 啟動(dòng)方法是重新啟動(dòng)計(jì)算機(jī),但您還可以使用以下命令停止和啟動(dòng)所有服務(wù):
% crs_stop -all (as oracle)
% init.crs stop (as root)
% init.crs start
% crs_start -all
如果必須重新安裝 CRS,請(qǐng)執(zhí)行 MetaLink 注釋 239998.1 中描述的步驟。
第 5 步:安裝二進(jìn)制文件
現(xiàn)在,請(qǐng)準(zhǔn)備安裝用于創(chuàng)建 Oracle 10g 數(shù)據(jù)庫(kù)的二進(jìn)制文件。Oracle 10g DBCA 的執(zhí)行毫無(wú)差錯(cuò);如果數(shù)據(jù)庫(kù)是使用 DBCA 創(chuàng)建的,則安裝程序?qū)⒃?OCR 中注冊(cè)數(shù)據(jù)庫(kù)。(否則,您將必須使用 srvctl 手動(dòng)在 OCR 中注冊(cè)服務(wù)。)由于在安裝 CRS 之前我們已經(jīng)停止了監(jiān)聽(tīng)器在 Oracle9i 根目錄中的運(yùn)行,因此還將使用缺省 1521 端口自動(dòng)配置監(jiān)聽(tīng)器。
此時(shí),如果您執(zhí)行 crs_stat,它將提輸出以下內(nèi)容:
NAME=ora.WMST.WMST1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1
NAME=ora.WMST.WMST2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
NAME=ora.WMST.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
NAME=ora.racnode1.LISTENER_RACNODE1.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1
NAME=ora.racnode1.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1
NAME=ora.racnode1.ons
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE
NAME=ora.racnode1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1
NAME=ora.racnode2.LISTENER_RACNODE2.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
NAME=ora.racnode2.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
NAME=ora.racnode2.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
NAME=ora.racnode2.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2
在執(zhí)行進(jìn)一步操作之前,state 和 target 應(yīng)匹配。如果要停止和啟動(dòng)這些資源,請(qǐng)分別使用 crs_stop -all 和 crs_start -all。從一個(gè)節(jié)點(diǎn)執(zhí)行它們將影響到所有節(jié)點(diǎn)。
第 6 步:配置 OCR
接下來(lái),請(qǐng)將環(huán)境更改為 Oracle9i RAC。我們現(xiàn)在準(zhǔn)備使用 srvctl 在 OCR 中注冊(cè) Oracle9i 數(shù)據(jù)庫(kù)。
% srvctl -V
srvctl version: 9.2.0.1.0
% srvctl config
WMST ?10g instance
% srvctl add database -d WMSN -o $ORACLE_HOME
% srvctl add instance -d WMSN -i WMSN1 -n racnode1
% srvctl add instance -d WMSN -i WMSN2 -n racnode2
% srvctl config
WMST ?10g Database
WMSN ?9i Database
要將環(huán)境更改為 Oracle 10g,請(qǐng)執(zhí)行以下命令:
% srvctl -V
srvctl version: 10.1.0.2.0
% srvctl config
WMST
WMSN
請(qǐng)注意,盡管在 OCR 中注冊(cè)了不同的數(shù)據(jù)庫(kù),但要使用 srvctl 管理它們,您必須移動(dòng)到它們各自的根目錄。
第 7 步:了解 OCR
請(qǐng)執(zhí)行以下命令以獲取 OCR 的詳細(xì)信息。
% ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 200660
Used space (kbytes) : 3608
Available space (kbytes) : 197052
Cluster registry integrity check succeeded
或者,可以 root 的身份使用 ocrdump 命令轉(zhuǎn)儲(chǔ) OCR 的內(nèi)容。
% cd $ORA_CRS_HOME/bin
% ocrdump ${HOST}_OCRDUMP
轉(zhuǎn)儲(chǔ)文件是用 ocrdump 所在的同一目錄中的數(shù)千行代碼編寫(xiě)的。隨后,您可以使用任何文本編輯器打開(kāi)此文件并搜索所需的字符串。還可以對(duì)此文件執(zhí)行 grep 命令,以確認(rèn) srvctl 是否將所請(qǐng)求的有關(guān)任何資源的信息寫(xiě)入到注冊(cè)表中。
% cat racnode1.dump |grep WMST |wc -l
179
此命令確認(rèn) srvctl 已經(jīng)寫(xiě)入與 WMST 相關(guān)的 OCR 信息。
配置現(xiàn)已完成。至此,您可能已經(jīng)體驗(yàn)了 OCR 的某些特性。例如,CRSD 后臺(tái)程序定期備份 OCR(時(shí)間間隔為四個(gè)小時(shí)),您可以使用這些備份恢復(fù)丟失的 OCR(它是一個(gè)重要文件,必須防止其出現(xiàn)介質(zhì)故障)。要查找備份,請(qǐng)使用以下命令:
% ocrconfig -showbackup
racnode1x 2005/02/17 13:21:47 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/17 09:21:45 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/17 05:21:44 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/15 21:21:40 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/04 13:21:01 /oracle/app/orausr/product/10g/crs/cdata/crs
備份的位置為 $ORA_CRS_HOME/cdata/<集群名稱(chēng)>;集群名稱(chēng)在安裝時(shí)提供。備份只在當(dāng)前為主節(jié)點(diǎn)的節(jié)點(diǎn)上執(zhí)行。它在給定時(shí)間段中保留多個(gè)備份副本(如以下輸出所示)。
% ls -alt /oracle/app/orausr/product/10g/crs/cdata/crs
-rw-r----- 1 root root 5664768 Feb 17 13:21 backup00.ocr
-rw-r----- 1 root root 5664768 Feb 17 09:21 backup01.ocr
-rw-r----- 1 root root 5664768 Feb 17 05:21 backup02.ocr
-rw-r----- 1 root root 5664768 Feb 16 21:21 day_.ocr
-rw-r----- 1 root root 5664768 Feb 15 21:21 day.ocr
-rw-r----- 1 root root 5664768 Feb 11 13:21 week_.ocr
-rw-r----- 1 root root 5566464 Feb 4 13:21 week.ocr
恭喜您!您已經(jīng)使用 Oracle CRS 在同一集群上安裝了 Oracle9i RAC 和 Oracle RAC 10g。
聯(lián)系客服