前言:本站為你精心整理了Oracle RAC在圖書(shū)館的運(yùn)用研究范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
匯文文獻(xiàn)信息服務(wù)系統(tǒng)是江蘇匯文軟件有限公司自1999年起向全國(guó)范圍推廣的,到目前為止已為國(guó)內(nèi)近600多家知名高校和公共圖書(shū)館所選用,其中包括教育部公布的39所“985”學(xué)校中的13所,116所“211”學(xué)校中的46所大學(xué)[1]??梢?jiàn)其擁有著技術(shù)過(guò)硬的開(kāi)發(fā)團(tuán)隊(duì)以及信譽(yù)保證的售后服務(wù)質(zhì)量。最關(guān)鍵是匯文相對(duì)于國(guó)內(nèi)其他圖書(shū)信息系統(tǒng)有著一定的技術(shù)優(yōu)勢(shì)。比如:科圖公司的產(chǎn)品在ILASⅢ的時(shí)候才采用了通用型的數(shù)據(jù)庫(kù),丹誠(chéng)的系統(tǒng)更是使用文件系統(tǒng)存儲(chǔ)數(shù)據(jù),而匯文系統(tǒng)使用的是大型的關(guān)系型數(shù)據(jù)庫(kù)Oracle作為數(shù)據(jù)庫(kù)服務(wù)平臺(tái)。此外,匯文系統(tǒng)可以部署在多種操作系統(tǒng)上,如:Windows2003,各種Linux版本,Solaris,AIX,HP-UNIX,SCOUnixWare等。所以,根據(jù)實(shí)際情況,圖書(shū)信息系統(tǒng)選擇了匯文公司的產(chǎn)品,相應(yīng)的數(shù)據(jù)庫(kù)集群也選擇了Oracle公司的技術(shù)。
OracleRAC體系結(jié)構(gòu)OracleRAC(OracleRealApplicationCluster)即Oracle真正應(yīng)用集群。它是由若干個(gè)物理計(jì)算機(jī)組成,每個(gè)叫作一個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)間通過(guò)私有網(wǎng)絡(luò)連接。各個(gè)節(jié)點(diǎn)通過(guò)HBA卡或光纖線連接到共享存儲(chǔ)上,形成“shared-disk”的體系結(jié)構(gòu)模式。RAC的共享磁盤(pán)結(jié)構(gòu)模式不但有著更高的可用性,同時(shí)也擁有更佳的易擴(kuò)展性。RAC的軟件架構(gòu)是在底層的操作系統(tǒng)之上布置集群件(Clusterware)層,也就是集群管理軟件層,在Clusterware層之上是Oracle數(shù)據(jù)庫(kù)層。Oracle是在10g時(shí),提出了集群管理層的集群就緒服務(wù)(ClusterReadyServices,CRS)[2],CRS能夠?qū)⑺兄С值钠脚_(tái)上的節(jié)點(diǎn)聚集在一起,支持的平臺(tái)包括Sun、HP、AIX、Windows、Linux等(位于同一集群中的所有節(jié)點(diǎn)必須具有相同的操作系統(tǒng))。這樣在RAC中,位于Oracle和OSKernel之間的集群件層(Clusterware),它會(huì)在OSKernel之前截獲請(qǐng)求,然后和其他節(jié)點(diǎn)上Clusterware協(xié)商,提供ClusterReadyService(CRS)服務(wù),最終完成上層的請(qǐng)求。而且CRS還提供了公共的API接口,這也就是說(shuō)CRS可以為其他軟件也提供集群服務(wù),構(gòu)成相應(yīng)的集群系統(tǒng)。
OracleRAC的自身特點(diǎn)OracleRAC是集高可用性、負(fù)載均衡、高性價(jià)比和可伸縮性強(qiáng)以及單一系統(tǒng)映像的數(shù)據(jù)庫(kù)集群技術(shù)??捎眯允且韵到y(tǒng)運(yùn)行和可用時(shí)間的百分比來(lái)衡量的,OracleRAC的高可用性可以達(dá)到5個(gè)9的水平,即99.999%,年平均停機(jī)時(shí)間只有5.3min。負(fù)載均衡的作用就是使大量的并發(fā)訪問(wèn)或數(shù)據(jù)流量分?jǐn)偟蕉鄠€(gè)節(jié)點(diǎn)設(shè)備上分別處理,這樣便減輕了單個(gè)節(jié)點(diǎn)的壓力,同時(shí)減少了用戶等待響應(yīng)的時(shí)間。OracleRAC數(shù)據(jù)庫(kù)集群使用了兩種方式實(shí)現(xiàn)負(fù)載均衡。第一種是ConnectionBalancing,這種負(fù)載均衡是在用戶連接這個(gè)層次進(jìn)行的,也就是在用戶建立連接時(shí),根據(jù)每個(gè)節(jié)點(diǎn)的負(fù)載均衡決定把連接分配給哪個(gè)實(shí)例上。第二種是Server方式,它是根據(jù)RAC的特點(diǎn),從盡量減少CacheFusion的流量,減少實(shí)例間互相依賴的思路發(fā)展而來(lái)的。OracleRAC采用共享磁盤(pán)技術(shù),當(dāng)需要更新增加服務(wù)器時(shí),只需要將新的設(shè)備加入集群中即可,對(duì)于用戶來(lái)看,服務(wù)連續(xù)性幾乎沒(méi)有變化,好像系統(tǒng)在不知不覺(jué)中完成了升級(jí)。而且升級(jí)、擴(kuò)展的成本相對(duì)低廉,舊有的系統(tǒng)還可以使用,不構(gòu)成浪費(fèi)。單一系統(tǒng)映像(SingleSystemImage,SSI)是集群技術(shù)中十分重要和基本的特性,由KaiHuang提出[3]。如果一群互連的計(jì)算機(jī)被設(shè)計(jì)成看起來(lái)好像統(tǒng)一的資源,就說(shuō)明它實(shí)現(xiàn)了SSI。OracleRAC擁有下面3個(gè)特性:①單一入口;②單一管理入口;③資源訪問(wèn)透明。
其他數(shù)據(jù)庫(kù)集群技術(shù)的特點(diǎn)現(xiàn)階段的數(shù)據(jù)庫(kù)集群大部分是國(guó)外的產(chǎn)品,比較流行的有:OracleRAC、MicrosoftMSCS、MySQLCluster、IBMDB2UDB等。而由于研發(fā)資金和力量的相對(duì)欠缺,國(guó)內(nèi)的數(shù)據(jù)庫(kù)集群產(chǎn)品僅在一些高??蒲袉挝粌?nèi)有些雛形產(chǎn)品,如:黑龍江大學(xué)的HPDB數(shù)據(jù)庫(kù)管理系統(tǒng)、華中科技大學(xué)的PARO和中國(guó)人民大學(xué)的PBASE等系統(tǒng)。其中,MicrosoftMSCS的用戶界面熟悉,類(lèi)似于Windows,但只支持16個(gè)節(jié)點(diǎn)。MySQLCluster的價(jià)錢(qián)便宜,數(shù)據(jù)庫(kù)體系小巧方便,但被Oracle吞并,前途渺茫。IBMDB2UDB雖是老牌數(shù)據(jù)庫(kù),但采用無(wú)共享存儲(chǔ)體系,可用性上有待進(jìn)一步提高。而Ora-cleRAC雖然價(jià)格昂貴,但性能強(qiáng)勁,功能豐富,通過(guò)市場(chǎng)占有率也可看出是數(shù)據(jù)庫(kù)領(lǐng)域的老大。
OracleRAC是一個(gè)多實(shí)例、單數(shù)據(jù)庫(kù)的共享存儲(chǔ)結(jié)構(gòu)體系。圖2是一個(gè)兩節(jié)點(diǎn)的RAC環(huán)境拓?fù)鋱D,其中涉及的硬件(hardware)用Hn表示,涉及的軟件(software)用Sn表示,其中數(shù)字n代表種類(lèi)[2]。
在本方案中,整個(gè)RAC的硬件環(huán)境包括兩臺(tái)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)共享存儲(chǔ)、兩臺(tái)交換機(jī)。兩臺(tái)服務(wù)器分別為rac1和rac2,其中每個(gè)服務(wù)器上至少有兩塊網(wǎng)卡,一個(gè)網(wǎng)卡用于對(duì)外提供服務(wù),比如供用戶查詢數(shù)據(jù),另一個(gè)網(wǎng)卡用于集群內(nèi)部的私有通信。每個(gè)節(jié)點(diǎn)還要有一個(gè)HBA卡,通過(guò)光纖線連接到存儲(chǔ)設(shè)備。兩臺(tái)交換機(jī),其中一臺(tái)用于連接其他需要訪問(wèn)數(shù)據(jù)庫(kù)的計(jì)算機(jī),也就是數(shù)據(jù)庫(kù)服務(wù)的客戶端。另一臺(tái)交換機(jī)所組成的網(wǎng)絡(luò)是一個(gè)完全隔離的網(wǎng)絡(luò),其上傳遞的數(shù)據(jù)只有RAC節(jié)點(diǎn)間的心跳數(shù)據(jù)和CacheFusion數(shù)據(jù)。
部署RAC環(huán)境需要4種軟件,包括操作系統(tǒng)、集群件、集群文件系統(tǒng)和數(shù)據(jù)庫(kù)。其中安裝在每個(gè)節(jié)點(diǎn)上的操作系統(tǒng)必須相同,而且版本也必須相同,包括小版本、補(bǔ)丁包也必須一樣??紤]到linux在性能價(jià)格比上的絕對(duì)優(yōu)勢(shì),決定把圖書(shū)館數(shù)據(jù)庫(kù)集群部署到linux系統(tǒng)上,具體使用RedHatEnterpriseLinuxAdvancedServer4Update6。集群件是安裝在操作系統(tǒng)之上的一個(gè)特殊軟件,負(fù)責(zé)管理整個(gè)集群環(huán)境中的硬件資源,并為上層的RAC集群提供基礎(chǔ)服務(wù)。集群件使用Cluster-ware10gforlinux(10.2.0.1)集群文件系統(tǒng),在RAC中的數(shù)據(jù)文件、聯(lián)機(jī)日志文件、控制文件、參數(shù)文件都必須放在共享存儲(chǔ)中,保證所有節(jié)點(diǎn)都能訪問(wèn)。這時(shí)就需要對(duì)節(jié)點(diǎn)的訪問(wèn)進(jìn)行控制,普通的文件系統(tǒng)并不支持集群功能,因此必須采用特殊的存儲(chǔ)策略,比如采用裸設(shè)備或某種集群文件系統(tǒng)。筆者選擇Oracle推薦的首選方案asm,使用以下3個(gè)包oracleasm-2.6.9-67、oracleasmlib-2.0.4-1.el4、oracleasm-support-2.1.3-1。數(shù)據(jù)庫(kù)軟件為Oracle10gforlinux(10.2.0.1)。
在rac1上安裝配置Linux系統(tǒng)啟動(dòng)之后,修改host文件。#vi/etc/hosts127.0.0.1rac1localhost.localdomainlocalhost192.168.44.150rac1192.168.44.151rac2192.168.44.160rac1-vip192.168.44.161rac2-vip192.168.174.150rac1-priv192.168.174.151rac2-priv接著修改,#vi/etc/sysconfig/networkNETWORKING=yesHOSTNAME=rac1GATEWAY=192.168.44.2接下來(lái)創(chuàng)建組oinstall、dba和用戶oracle,并設(shè)置oracle用戶密碼。同時(shí),創(chuàng)建/opt/ora10g目錄,修改目錄屬組,并且根據(jù)硬件情況配置內(nèi)核參數(shù)。下面為asm1、asm2、OCR、VotingDisk4個(gè)磁盤(pán)建立新的分區(qū),即分別對(duì)/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde4個(gè)磁盤(pán)文件執(zhí)行fdisk命令。用rpm命令安裝Oracledb所需要的4個(gè)安裝包,compat-gcc-7.3-2.96.128.i386.rpm、compat-libstdc++-7.3-2.96.128.i386.rpm、compat-libstdc++-devel-7.3-2.96.128.i386.rpm、com-pat-gcc-c++-7.3-2.96.128.i386.rpm,且安裝順序不能改變。再安裝ASMLib包3個(gè),oracleasm-support-2.1.3-1.el4.i386.rpm、oracleasm-2.6.9-67.ELsmp-2.0.3-1.i686.rpm、oracleasmlib-2.0.4-1.el4.i386.rpm,且安裝順序不能改變。安裝RAC所需的安裝包1個(gè),sysstat-5.0.5-19.el4.i386.rpm。配置裸設(shè)備,執(zhí)行如下命令:vi/etc/sysconfig/rawdevices添加下列內(nèi)容:/dev/raw/raw1/dev/sdb1/dev/raw/raw2/dev/sdc1/dev/raw/raw3/dev/sdd1/dev/raw/raw4/dev/sde1
在rac2上安裝配置Linux#vi/etc/sysconfig/networkNETWORKING=yesHOSTNAME=rac2GATEWAY=192.168.44.2接著修改hosts文件:#vi/etc/hosts修改成:127.0.0.1rac2localhost.localdomainlocalhost修改rac2的ORACLESID:#vi/home/oracle/.bashprofile修改ORACLESID這個(gè)環(huán)境變量為RACDB2,其他配置與rac1相同
配置Clusterware所需環(huán)境要配置Clusterware所需的環(huán)境,首先就要配置ssh用戶等價(jià)。所謂用戶等價(jià),就是以oracle用戶從一個(gè)節(jié)點(diǎn)連接到另一個(gè)節(jié)點(diǎn)時(shí),不需要輸入密碼。Clusterware和Database的安裝過(guò)程都是先在一個(gè)節(jié)點(diǎn)安裝,然后安裝程序自動(dòng)把本地安裝好的內(nèi)容復(fù)制到遠(yuǎn)程相同目錄,這是一個(gè)后臺(tái)拷貝過(guò)程,安裝人員沒(méi)有機(jī)會(huì)輸入密碼進(jìn)行身份驗(yàn)證,因此,必須配置用戶等價(jià)。有一點(diǎn)需要特別注意的是,在配置用戶等價(jià)時(shí),不論是rac1節(jié)點(diǎn)還是rac2節(jié)點(diǎn),都要以or-acle用戶身份登錄執(zhí)行,因?yàn)樵诎惭bClusterware和Database時(shí),也要求是oracle用戶。接下來(lái)創(chuàng)建asm磁盤(pán),在rac1和rac2上分別運(yùn)行/etc/init.d/ora-cleasmconfigure,用戶為oracle,組為dba,并同意在asm磁盤(pán)的boot區(qū)開(kāi)始掃描。然后在rac1上創(chuàng)建卷組VOL1/VOL2,分別對(duì)應(yīng)/dev/sdd和/dev/sde,命令為/etc/init.d/oracleasmcreatdisk/dev/sdd1,最后分別在rac1、rac2運(yùn)行/etc/init.d/oracleasmscan-disks和/ect/init.d/oracleasmlistdisks,列出VOL1和VOL2,表示創(chuàng)建的兩個(gè)asm卷成功。
安裝配置Clusterware在安裝中途,彈出ExecuteConfigurationscripts對(duì)話框。要求以root用戶分別先后在rac1和rac2執(zhí)行/opt/ora10g/oraInvenetory/orainstRoot.sh和/opt/ora10g/product/10.2.0/crs1/root.sh。在rac2運(yùn)行完/opt/ora10g/product/10.2.0/crs1/root.sh之后,提示運(yùn)行vipca,則在rac2上接著運(yùn)行vipca。第一步選擇eth0,第二步在rac1的IPAliasName中輸入rac1-vip,然后按Tab鍵,其他信息自動(dòng)填入。最后點(diǎn)擊finish,開(kāi)始在兩個(gè)節(jié)點(diǎn)創(chuàng)建和啟動(dòng)VIP、GSD、ONS。最終完成Clusterware的安裝??捎孟旅娴姆椒z測(cè)Clusterware的安裝是否成功。分別在兩個(gè)節(jié)點(diǎn)執(zhí)行$./crsstat-t-v。如果ora.rac1.gsd、ora.rac1.ons、ora.rac1.vip、ora.rac2.gsd、ora.rac2.ons、ora.rac2.vip6個(gè)服務(wù)運(yùn)行都正常,則說(shuō)明安裝成功。
安裝配置Database在安裝Database后需要配置netca,在節(jié)點(diǎn)選擇時(shí),把rac1和rac2都選上。再選擇監(jiān)聽(tīng)器配置Lis-tenerConfiguration,選擇Add。之后按默認(rèn)配置選項(xiàng)就可以了。為了檢測(cè)database是否安裝成功,分別在兩個(gè)節(jié)點(diǎn)執(zhí)行$./crs_stat-t-v。如果ora.rac1.LISTENERRAC1.lsnr、ora.rac1.gsd、ora.rac1.ons、ora.rac1.vip、ora.rac2.LISTENERRAC2.lsnr、ora.rac2.gsd、ora.rac2.ons、ora.rac2.vip8個(gè)服務(wù)運(yùn)行都正常,則說(shuō)明安裝成功。
創(chuàng)建ASM和數(shù)據(jù)庫(kù)因?yàn)镽AC的數(shù)據(jù)庫(kù)是存儲(chǔ)在ASM文件系統(tǒng)上的,所以在創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程中先創(chuàng)建ASM。在創(chuàng)建配置過(guò)程中,把GlobalDatabaseName和SIDPrefix都設(shè)置為RACDB。選擇AutomaticStorageManagement(ASM),并為ASM管理用戶設(shè)置密碼,之后點(diǎn)擊CreateNew建立新asm磁盤(pán)組,磁盤(pán)組名設(shè)為rac_disk,Redundancy設(shè)置為External。之后確保磁盤(pán)都掛載成功,顯示狀態(tài)為MOUNTED(2/2)。為了檢測(cè)database是否創(chuàng)建成功,分別在兩個(gè)節(jié)點(diǎn)執(zhí)行$./crsstat-t-v。如果如圖3所示的13個(gè)服務(wù)運(yùn)行都正常,則說(shuō)明RAC創(chuàng)建成功。手工宕掉一個(gè)節(jié)點(diǎn)進(jìn)行測(cè)試后,發(fā)現(xiàn)服務(wù)依然可以正常服務(wù),而且宕機(jī)節(jié)點(diǎn)正常啟動(dòng)時(shí),也不影響服務(wù)的運(yùn)行。
通過(guò)使用OracleRAC的高可用性數(shù)據(jù)庫(kù)集群后,如果一個(gè)數(shù)據(jù)庫(kù)服務(wù)器宕機(jī),集群件會(huì)自動(dòng)啟動(dòng)宕掉的服務(wù)器,而且能夠給維護(hù)人員更多的時(shí)間發(fā)現(xiàn)、解決問(wèn)題,并且在整個(gè)維護(hù)、重啟期間不會(huì)影響到對(duì)讀者的服務(wù),大大地提高了圖書(shū)館信息系統(tǒng)持續(xù)服務(wù)的有效時(shí)間。
作者:周琳單位:內(nèi)蒙古師范大學(xué)圖書(shū)館