董 波
[摘要]從DBA的角度,探討Oracle RAC數(shù)據(jù)庫性能、構(gòu)建方法、性能調(diào)優(yōu)等。
[關(guān)鍵詞]Oracle 數(shù)據(jù)庫ERPDBARAC
中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)1220070-01
在公司ERP的實際應(yīng)用中,ERP的快慢主要由數(shù)據(jù)庫性能來決定,當(dāng)公司擴(kuò)大,ERP用戶數(shù)大量增加時,如何保證快速的數(shù)據(jù)庫性能,保護(hù)當(dāng)前的硬件投資,不改變當(dāng)前ERP系統(tǒng)架構(gòu)呢?Oracle數(shù)據(jù)庫集群可以給我們答案。
一、介紹
Oracle數(shù)據(jù)庫集群(Real Application Clusters 簡稱:RAC)提供了最高級別的可用性,可伸縮性和低成本計算能力,即使集群內(nèi)的一個節(jié)點發(fā)生故障,Oracle數(shù)據(jù)庫也可以繼續(xù)在其余的節(jié)點上運(yùn)行。如果需要更高的處理能力,新的節(jié)點也可輕松加至集群。為了保持低成本,即使最高端的系統(tǒng)也可以從采用標(biāo)準(zhǔn)化商用組件的小型低成本集群開始逐步構(gòu)建而成。
Oracle RAC依賴于一個共享磁盤體系結(jié)構(gòu)。數(shù)據(jù)庫文件、聯(lián)機(jī)重做日志和數(shù)據(jù)庫的控制文件必須都能為集群中的每個節(jié)點所訪問。共享磁盤存儲Oracle Cluster Registry和Voting Disk。配置共享存儲有多種方法,包括直接連接磁盤(通常是使用銅纜或光纖的(SCSI)、存儲區(qū)域網(wǎng)(SAN)和網(wǎng)絡(luò)連接存儲(NAS))。
每個集群節(jié)點通過專用高速網(wǎng)絡(luò)連接到所有其他節(jié)點,這種專用高速網(wǎng)絡(luò)也稱為集群互聯(lián)或高速互聯(lián)(HSI)。Oracle的Cache Fusion技術(shù)使用這種網(wǎng)絡(luò)將每個主機(jī)的物理內(nèi)存(RAM)有效地組合成一個高速緩存。Oracle Cache Fusion通過在專用網(wǎng)絡(luò)上傳輸某個Oracle實例高速緩存中存儲的數(shù)據(jù)允許其他任何實例訪問這些數(shù)據(jù)。它還通過在集群節(jié)點中傳輸鎖定和其他同步信息保持?jǐn)?shù)據(jù)完整性和高速緩存一致性。
專用網(wǎng)絡(luò)通常是用千兆以太網(wǎng)構(gòu)建的。為維持高可用性,為每個集群節(jié)點分配了一個虛擬IP地址(VIP)。如果主機(jī)發(fā)生故障,則可以將故障節(jié)點的IP地址重新分配給一個可用節(jié)點,從而允許應(yīng)用程序通過相同的IP地址繼續(xù)訪問數(shù)據(jù)庫。
Oracle自動存儲管理(ASM)是Oracle數(shù)據(jù)庫10g中的一個新特性,它以一種與平臺無關(guān)的方式提供文件系統(tǒng)服務(wù)、邏輯容量管理器和軟件RAID。Oracle ASM可以條帶化和鏡像磁盤,從而實現(xiàn)了在數(shù)據(jù)庫被加載的情況下添加或移除磁盤以及自動平衡I/O以刪除“熱點”。它還支持直接和異步的I/O。
二、RAC(Oracle數(shù)據(jù)庫集群)實現(xiàn)的詳細(xì)方法
(一)實現(xiàn)Oracle數(shù)據(jù)庫集群(RAC)所需硬件(最少需求)
1.2臺服務(wù)器(每臺服務(wù)器內(nèi)需有兩個千兆網(wǎng)卡)
2.1套光纖存儲設(shè)備(SAN光纖存儲網(wǎng)絡(luò))
(二)實現(xiàn)Oracle數(shù)據(jù)庫集群(RAC)所需軟件
OS:RedHat AS 4.5
DB:Oracle Database 10.2.0.1_x86
Cluster:Oracle 10.2.0.1_clusterware_linux_x86
ASM:oracleasmlib-2.0.2-1.x86.rpm
oracleasm-2.6.9-22.ELsmp-2.0.3-1.x86.rpm
binutils-2.15.92.0.2-13.0.0.0.2.x86.rpm
(三)實現(xiàn)步驟
1.在OS添加oracle用戶和組
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd-g oinstall -G dba oracle
2.在OS網(wǎng)絡(luò)設(shè)置
# vi/etc/hosts
127.0.0.1localhost.localdomainlocalhost
# public address
192.168.0..17 rac1
192.168.0.18 rac2
# private address
172.168.0.17rac1-p
172.168.0.18rac2-p
# virtual address
192.168.0.19rac1-vip
192.168.0.20rac2-vip
3.在OS 設(shè)置用戶等效性SSH (在oracle用戶)
$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh -keygen -t rsa
4.安裝ASM軟件
#rpm Uvh oracleasm-support-2.0.3-1.x86.rpm
oracleasm-2.6.9-22.ELsmp-2.0.3-1.x86.rpm
oracleasmlib-2.0.2-1.x86.rpm
5.配置ASM進(jìn)行
# /etc/init.d/oracleasm configure
6.啟用 ASMLib 驅(qū)動程序
# /etc/init.d/oracleasm enable
7.創(chuàng)建ASM磁盤
# /etc/init.d/oracleasm creatediskVOL1/dev/sdb1
# /etc/init.d/oracleasm creatediskVOL2/dev/sdb2
8.創(chuàng)建CRS安裝路徑和綁定裸設(shè)備
# mkdir -p /u01/crs/oracle/product/10.2.0/crs
# chown -R oracle:oinstall /u01/crs/oracle
# chmod -R 775 /u01/crs/oracle
# mkdir -p /u02/oracrs/
# chown -R oracle:oinstall /u02/oracrs/
# chmod -R 775 /u02/oracrs/
#raw /dev/raw/raw1 /dev/sdb1
#raw /dev/raw/raw2 /dev/sdb2
9.安裝Oracle RAC 軟件
$ ./runInstall
進(jìn)入圖形配置界面
10.創(chuàng)建數(shù)據(jù)庫
以oracle 用戶身份登錄
$ dbca
11.啟動數(shù)據(jù)庫
# srvctl start asm n 主機(jī)名
# srvctl start instance I 例程名 on hostname d數(shù)據(jù)庫名
# srvctl status database d數(shù)據(jù)庫名
三、總結(jié)
從以上分析發(fā)現(xiàn)RAC技術(shù)幾乎完美無缺,但本人在實際應(yīng)用中仍發(fā)現(xiàn)一些需優(yōu)化和注意的細(xì)節(jié):
RAC優(yōu)化最基本的原則是,避免發(fā)生大規(guī)模的、不同節(jié)點頻繁的修改同一個數(shù)據(jù)塊,避免大量的Cache Fusion與全局等待事件出現(xiàn)。讓不同業(yè)務(wù)單獨(dú)運(yùn)行在獨(dú)立的節(jié)點。RAC在數(shù)據(jù)倉庫環(huán)境中很適合。內(nèi)聯(lián)線的帶寬需要足夠的大。各節(jié)點機(jī)器的時間一定要同步。
參考文獻(xiàn):
[1]陳吉平,Oracle高可用環(huán)境——企業(yè)級高可用數(shù)據(jù)庫架構(gòu)、實戰(zhàn)與經(jīng)驗總結(jié)[M].北京:電子工業(yè)出版社,2008.
[2]http://hi.baidu.com/injava/blog/item/44c4154f6ad61e32afc3aba8.html.