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