




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、雙機(jī)應(yīng)用實(shí)戰(zhàn):高手教你用Veritas Cluster Server for DB2雙機(jī)-入門【IT168 專稿】雙機(jī)熱備這一概念有兩種不太相同的意義:從廣義上來(lái)說(shuō)也稱為雙機(jī)互備,指的是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器協(xié)同工作,共同執(zhí)行同一個(gè)服務(wù)。當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),可以由另一臺(tái)服務(wù)器暫時(shí)相應(yīng)原有的兩個(gè)機(jī)器的所有服務(wù),等待故障機(jī)的恢復(fù)和重新加入集群,從而在不需要人工干預(yù)的情況下,自動(dòng)保證系統(tǒng)能持續(xù)提供服務(wù)。這種集群一般被稱為高性能集群(High performance cluster. HPC)。 從狹義上講,雙機(jī)熱備特指基于active/standby方式的服務(wù)器熱備,這也是雙機(jī)熱備最常用
2、的含義,服務(wù)器數(shù)據(jù)包括數(shù)據(jù)庫(kù)數(shù)據(jù)同時(shí)往兩臺(tái)或多臺(tái)服務(wù)器寫,或者使用一個(gè)共享的存儲(chǔ)設(shè)備,但在同一時(shí)間內(nèi)只有一臺(tái)服務(wù)器運(yùn)行。當(dāng)其中運(yùn)行著的一臺(tái)服務(wù)器出現(xiàn)故障無(wú)法啟動(dòng)時(shí),另一臺(tái)備份服務(wù)器會(huì)被集群軟件激活,保證應(yīng)用在短時(shí)間內(nèi)完全恢復(fù)正常使用。這種集群一般被稱為高可用集群(High Availability cluster. HAC)。 雙機(jī)熱備由備用的服務(wù)器解決了在主服務(wù)器故障時(shí)服務(wù)不中斷的問(wèn)題。但在實(shí)際應(yīng)用中,可能會(huì)出現(xiàn)多臺(tái)服務(wù)器的情況,即服務(wù)器集群。在廣義的雙機(jī)互備中,N臺(tái)服務(wù)器同時(shí)工作,硬件資源的利用率最高;在狹義的雙機(jī)熱備中,需要m臺(tái)機(jī)器(m不小于1)作為后備服務(wù)器,那么至多只能用(N-m)臺(tái)
3、機(jī)器工作,資源的利用率低于雙機(jī)互備。(一般軟件公司都會(huì)將多機(jī)同時(shí)工作作為一個(gè)特殊的功能來(lái)賣,價(jià)格比兩臺(tái)機(jī)器的總和可能還要高,所有一般中小企業(yè)用戶都會(huì)選擇后一種熱備方式,犧牲一些可用性)。 在IBM的DB2數(shù)據(jù)庫(kù)產(chǎn)品中,包括了上述的兩種熱備方式:均衡多處理模式(Symmetric Multiprocessing, SMP)和大數(shù)據(jù)并行處理模式(Massively Parallel Processing, MPP)。 SMP是指一臺(tái)數(shù)據(jù)庫(kù)工作,另一臺(tái)數(shù)據(jù)庫(kù)作為后備,當(dāng)工作的數(shù)據(jù)庫(kù)發(fā)生故障的時(shí)候,集群會(huì)將數(shù)據(jù)庫(kù)服務(wù)所需的所有服務(wù)轉(zhuǎn)移到后備的服務(wù)器上面。MPP是指多臺(tái)數(shù)據(jù)庫(kù)同時(shí)工作,一旦某一臺(tái)數(shù)據(jù)庫(kù)服
4、務(wù)器發(fā)生故障,其他的服務(wù)器就會(huì)接管其服務(wù),直到故障機(jī)重新加入到集群中。 作為一款專業(yè)的集群管理軟件,Veritas Cluster Server(VCS)能夠針對(duì)不同的情況進(jìn)行不同的管理。由于DB2的雙機(jī)熱備(狹義)模式配置比較簡(jiǎn)單,也相對(duì)容易理解。所以本文講述如何利用VCS去管理DB2雙機(jī)熱備的高可用集群。而在下一講中會(huì)講述如何利用VCS去配置和管理雙機(jī)互備的高性能集群。在本文中,做了如下假設(shè):用戶希望將system1和system2配置成雙機(jī)環(huán)境,IP地址分別是(, )操作系統(tǒng)是Solaris,利用Symantec的Storage foundat
5、ion作為文件系統(tǒng)管理工具,DB2的程序在兩個(gè)系統(tǒng)中分別安裝,而數(shù)據(jù)庫(kù)文件存放在共享磁盤上面,共享磁盤組是DB2DG,卷名DB2Vol,文件系統(tǒng)掛載在/home/db2下面,訪問(wèn)DB2的虛擬主機(jī)名為db2server,IP是。其部署如下圖所示:1.配置 a)創(chuàng)建數(shù)據(jù)文件使用的共享存儲(chǔ)(在system1上面執(zhí)行下列5個(gè)命令): i.# vxdg init DB2DG c0t0d0; 創(chuàng)建磁盤組DB2DG,使用c0t0d0這個(gè)硬盤; ii.# vxassist -g DB2DG make DB2Vol 5g; 在磁盤組上創(chuàng)建5G大小的卷DB2Vol; iii.# mkfs -
6、F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol; 創(chuàng)建文件系統(tǒng); iv.# mkdir /home/db2; 創(chuàng)建mount點(diǎn),共享磁盤將mount到這里; v.# mount -F vxfs /dev/vx/dsk/DB2DG/DB2Vol /home/db2; 將共享盤mount到本機(jī); b)使兩個(gè)系統(tǒng)可以通過(guò)RSH方式互相訪問(wèn),在system1上面做如下操作: i.echo “system2” /etc/hosts; 將對(duì)方加入的自己的主機(jī)列表; ii.echo “system2 db2inst1” $HOME/.rhosts; 使得對(duì)方主機(jī)
7、可以通過(guò)RSH以db2inst1的身份登陸本機(jī); iii.echo “db2server” /etc/hosts; 將虛擬主機(jī)加入的自己的主機(jī)列表; c)在system2上面做類型的操作,將system2改為system1,IP也作相應(yīng)的改變,虛擬主機(jī)不變。 d)在兩臺(tái)機(jī)器上面分別執(zhí)行下列命令,創(chuàng)建相同的用戶組。 i.# groupadd -g 999 db2iadm1; 創(chuàng)建DB2實(shí)例管理組; ii.# groupadd -g 998 db2fadm1; 創(chuàng)建DB2 fencing管理組; iii.# groupadd -g 997 db2asgrp; 創(chuàng)建DB2數(shù)據(jù)庫(kù)管理組; iv.# u
8、seradd -g db2iadm1 -u 1004 -d /home/db2 -m db2inst1; 創(chuàng)建DB2實(shí)例管理用戶; v.# useradd -g db2fadm1 -u 1003 -d /home/ db2fenc1 -m db2fenc1; 創(chuàng)建DB2 fencing 管理用戶; vi.# useradd -g db2asgrp -u 1002 -d /home/ db2as -m db2as; 創(chuàng)建DB2數(shù)據(jù)庫(kù)管理員帳戶; 注意:上述組或者用戶的ID可以是任意的尚未被使用的數(shù)字,但是一定要保證兩臺(tái)機(jī)器上面的用戶ID是一致的,否則數(shù)據(jù)庫(kù)切換的操作會(huì)失敗;數(shù)據(jù)庫(kù)實(shí)例管理員的帳戶
9、存放在共享盤上面。 e)在兩臺(tái)機(jī)器上面分別安裝DB2數(shù)據(jù)庫(kù)程序: 注意:在oracle中,可以將oracle數(shù)據(jù)庫(kù)程序裝在共享盤上,則只需要安裝一份即可; 另外DB2的安裝有兩個(gè)命令:db2setup和install。db2setup是圖形化工具,會(huì)將數(shù)據(jù)庫(kù)程序和一個(gè)實(shí)例文件同時(shí)創(chuàng)建,而我們?cè)陔p機(jī)上只需分別安裝數(shù)據(jù)庫(kù)程序而維護(hù)同一份實(shí)例文件,所有推薦使用install安裝DB2,這樣只會(huì)安裝程序在系統(tǒng)上,實(shí)例文件稍后自己安裝即可。 f)在兩臺(tái)機(jī)器安裝DB2的序列號(hào): i.# /opt/IBM/db2/V8.1/adm/db2licm -a db2ese.lic g)檢查兩臺(tái)機(jī)器下面的/etc/
10、service文件,確保都有如下的條目并且兩邊的端口是相同的: DB2_db2inst1 60000/tcp # DB2_db2inst1_1 60001/tcp # DB2_db2inst1_2 60002/tcp # DB2_db2inst1_END 60003/tcp # db2c_db2inst1 50000/tcp # h)在system1上面創(chuàng)建實(shí)例(存放在共享盤) i.cd /usr/opt/db2_08_01/instance ii./db2icrt -u db2fenc1 db2inst1 i)修改DB2節(jié)點(diǎn)文件/home/db2/sqllib/db2nodes.cfg i.
11、將其內(nèi)容改為: 0 db2server 0 1 db2server 1 或者 0 system1 0 1 system2 1 注意:第一種方式配置的是以虛擬主機(jī)的方式進(jìn)行熱備,第二種使用真是主機(jī)的方式進(jìn)行切換的。如果是多機(jī)環(huán)境,第一種方式方便管理,第二種方式更顯得直觀。2.測(cè)試 此時(shí),雙機(jī)環(huán)境就已經(jīng)配好了,我們來(lái)測(cè)試一下它是否能正常工作 a)創(chuàng)建數(shù)據(jù)庫(kù)testdb: # su - db2inst1 ;切換的數(shù)據(jù)庫(kù)實(shí)例管理用戶; # db2start 啟動(dòng)數(shù)據(jù)庫(kù); # db2 create database testdb 創(chuàng)建新的數(shù)據(jù)庫(kù)tdstdb; # db2 terminate 將創(chuàng)建寫入到
12、磁盤; # db2stop停止數(shù)據(jù)庫(kù)。 b)將共享盤從system1下載下來(lái)(在system1執(zhí)行): i.# umount /home/deb; 卸載文件系統(tǒng); ii.# vxvol g DB2DG stopall; 將DB2DG的所有卷停止活動(dòng); iii.# vxdg deport DB2DB; 將磁盤組DB2DG導(dǎo)出; c)將共享盤掛載到system2(在system2執(zhí)行): i.# vxdg import DB2DB; 將磁盤組DB2DG導(dǎo)入; ii.# vxvol g DB2DG startall; 將DB2DG的所有卷啟動(dòng); iii.# mount F vxfs /dev/vx/
13、dsk/DB2DG/DB2Vol /home/deb; 掛載文件系統(tǒng); d)在system2啟動(dòng)原來(lái)在system1創(chuàng)建的數(shù)據(jù)庫(kù)testdb: i.# su - db2inst1 ii.# db2start iii.# db2 connect to testdb 如果能夠連接成功,則數(shù)據(jù)庫(kù)雙機(jī)配置成功,如果數(shù)據(jù)庫(kù)在某系統(tǒng)上損壞后,它可以被VCS切換到另外一臺(tái)機(jī)器并運(yùn)行。3.配置VCS管理雙機(jī)熱備 a)拷貝DB2代理配置文件到VCS的配置目錄: i.cp /etc/VRTSvcs/conf/Db2udbTypes.cf 、/etc/VRTSvcs/conf/config/Db2udbTypes.
14、cf b)打開VCS圖形工具 i.# /opt/VRTSvcs/bin/hagui & c)創(chuàng)建服務(wù)組(service group),起名為db2; d)導(dǎo)入DB2代理配置文件: 文件導(dǎo)入-確定; e)創(chuàng)建六個(gè)資源: i.磁盤組:指明DB2DG; ii.卷:DB2Vol iii.掛載點(diǎn):/home/db2 iv.網(wǎng)卡:公網(wǎng)網(wǎng)卡(例如bge0) v.IP地址:可以是虛擬IP地址(),如果前面的cfgnode文件中寫的是虛擬IP,否則就在system1寫入(),在system2寫入()。 vi.DB2 aent:這個(gè)資源會(huì)監(jiān)控db2
15、在集群中的運(yùn)行情況。 f)為這六個(gè)資源創(chuàng)建依賴關(guān)系(右鍵點(diǎn)擊資源,選擇link): i.IP依賴NIC網(wǎng)卡的工作正常; ii.卷的存在依賴于磁盤組的狀態(tài);文件系統(tǒng)依賴卷; iii.db2代理的狀態(tài)要同時(shí)依賴于IP地址的存在和文件系統(tǒng)的存在。 iv.資源依賴關(guān)系如圖所示: g)右鍵點(diǎn)擊db2服務(wù)組,選擇online,讓db2在system1上線; h)右鍵點(diǎn)擊db2服務(wù)組,選擇switch to,讓db2切換到system2。 i)如果切換正常,則VCS配置成功。 總結(jié): 雙機(jī)配置是現(xiàn)在市場(chǎng)上比較認(rèn)可的一種維護(hù)系統(tǒng)高可用的配置方案,該方法有簡(jiǎn)單操作,方便管理,花費(fèi)比較小等諸多優(yōu)點(diǎn)。而利用syma
16、ntec的VCS和SF來(lái)組成這套管理DB2的方法,更是有著直觀,可靠的優(yōu)點(diǎn)。是用戶選擇雙機(jī)熱備的一個(gè)主要考慮的方案。今天的講述,就是一個(gè)標(biāo)準(zhǔn)的雙機(jī)熱備的配置方法。對(duì)于DB2大書籍并行處理數(shù)據(jù)庫(kù)(MPP)的講述,以及對(duì)于其他的數(shù)據(jù)庫(kù)(oracle,sybase)雙機(jī)配置的方法,將會(huì)在稍后的文章講述。實(shí)戰(zhàn):高手教你用VCS配置DB2雙機(jī)-高級(jí)【IT168 專稿】前面我們通過(guò)Veritas Cluster Server for DB2雙機(jī)-入門一文已經(jīng)向大家介紹了DB2雙機(jī)的基本原理和配置方法,本文將接續(xù)上文,繼續(xù)介紹DB2的高級(jí)需求大規(guī)模并行處理(Massively Parallel Proces
17、sing, MPP)環(huán)境下,用戶如何利用VCS配置雙機(jī)互備環(huán)境。 需要強(qiáng)調(diào)的是,本文是接續(xù)上文Veritas Cluster Server for DB2雙機(jī)-入門,繼續(xù)進(jìn)行雙機(jī)介紹,因此在看本文之前,最好先看看本文上篇Veritas Cluster Server for DB2雙機(jī)-入門。 此外,Veritas Storage Foundation系列文章還包括:用Storage Foundation管好存儲(chǔ)系統(tǒng)-安裝用Storage Foundation管好存儲(chǔ)系統(tǒng)-入門 用Storage Foundation管好存儲(chǔ)系統(tǒng)-進(jìn)階用Storage Foundation管好存儲(chǔ)系統(tǒng)-高級(jí)用St
18、orage Foundation管好存儲(chǔ)系統(tǒng)-文件系統(tǒng)MPP簡(jiǎn)介 首先介紹一下DB2的大規(guī)模并行處理(MPP)的含義。MPP其實(shí)就是多臺(tái)計(jì)算機(jī)協(xié)同工作,共同完成同一個(gè)任務(wù),目的就是為了能夠使用一些比較廉價(jià)的服務(wù)器一起工作,提供給用戶單機(jī)無(wú)法完成的服務(wù)。而雙機(jī)互備就是指當(dāng)這些機(jī)器中的某一天出現(xiàn)故障的時(shí)候,其他的服務(wù)器可以接管運(yùn)行在其上的服務(wù)請(qǐng)求,保證服務(wù)的高可用性。 大規(guī)模并行處理有兩種方式:無(wú)共享并行方式和共享磁盤并行方式。 無(wú)共享并行方式是指集群中的數(shù)據(jù)庫(kù)系統(tǒng)各自使用自己的數(shù)據(jù)資源,將協(xié)調(diào)程序發(fā)給自己的數(shù)據(jù)請(qǐng)求在自己的數(shù)據(jù)庫(kù)上面查詢,再將結(jié)果返回,由協(xié)調(diào)程序來(lái)將各個(gè)數(shù)據(jù)庫(kù)發(fā)過(guò)來(lái)的數(shù)據(jù)組合成大
19、的數(shù)據(jù)集并且發(fā)送給用戶。這種工作模式的優(yōu)點(diǎn)是易于部署,結(jié)構(gòu)簡(jiǎn)單清晰;缺點(diǎn)是缺乏高可用性,節(jié)點(diǎn)中任何一個(gè)節(jié)點(diǎn)的損壞都會(huì)導(dǎo)致其數(shù)據(jù)資源不可獲得,破壞了數(shù)據(jù)請(qǐng)求的完整性。其工作模式如下圖所示:圖1 無(wú)共享并行體系結(jié)構(gòu) 共享磁盤共享方式是指多個(gè)數(shù)據(jù)庫(kù)同時(shí)工作,但是他們所讀寫的資源都是在一個(gè)共享的磁盤庫(kù)中。他們之間的訪問(wèn)沖突是通過(guò)鎖機(jī)制來(lái)解決的。它的優(yōu)點(diǎn)是高可用性,任何一個(gè)節(jié)點(diǎn)的故障都不會(huì)對(duì)數(shù)據(jù)訪問(wèn)造成影響,每一個(gè)節(jié)點(diǎn)都可以訪問(wèn)全部的數(shù)據(jù)資源;這種缺點(diǎn)當(dāng)然也是有缺點(diǎn)的:隨著服務(wù)器數(shù)量的增加,鎖的數(shù)量以及數(shù)據(jù)庫(kù)訪問(wèn)失敗的頻率也會(huì)指數(shù)級(jí)的增加,會(huì)成為數(shù)據(jù)庫(kù)訪問(wèn)的瓶頸。然而,在目前的實(shí)際應(yīng)用中,一般集群數(shù)量不
20、會(huì)太多,所有這個(gè)因素可以忽略不記,而其帶來(lái)的高可用性是大多用戶選擇它的主要原因。其工作原理如圖所示: 圖2,共享磁盤并行體系結(jié)構(gòu)Symantec SFCFS簡(jiǎn)介SFCFS的全稱是Storage Foundation Cluster File System;它是symantec旗下SF產(chǎn)品線的一員,其具體的安裝配置過(guò)程稍后會(huì)有仔細(xì)的講解?,F(xiàn)在就讓用戶大概了解一下:SFCFS其實(shí)和SF是非常相似的,都是用來(lái)管理磁盤和文件系統(tǒng)的。對(duì)于磁盤組,卷和文件系統(tǒng)的概念和SF是完全一樣的。它和SF唯一的不同是它支持多個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)一個(gè)文件系統(tǒng)上面的數(shù)據(jù),由SFCFS來(lái)進(jìn)行文件鎖管理,而SF中對(duì)于文件系統(tǒng)的訪問(wèn)
21、是具有獨(dú)占性的。SFCFS允許多個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)的特點(diǎn)就是針對(duì)數(shù)據(jù)庫(kù)的并行操作的需求而來(lái)的,所以它非常適合進(jìn)行數(shù)據(jù)庫(kù)的并行處理模式的管理。DB2的配置 在DB2的配置中,我們先做好如下假設(shè):由system1和system2來(lái)組成集群,其IP分別是 192.168.02,磁盤組名為DB2DG,卷為DB2Vol,文件系統(tǒng)將掛載在/home/db2目錄下。 注意:在配置過(guò)程中將不再說(shuō)明DB2的基礎(chǔ)配置,配置的詳細(xì)信息請(qǐng)看Veritas Cluster Server for DB2雙機(jī)-入門。 1.安裝SFCFS的程序在system1和system2上; 2.創(chuàng)建SFCFS需要使用
22、的共享磁盤和共享文件系統(tǒng)(原理和細(xì)節(jié)稍后會(huì)有專題,這里只是配置): a)在兩臺(tái)機(jī)器上面運(yùn)行下面命令: i.# vxdctl -c mode 得到的結(jié)果可能是下面兩個(gè)中的任意一個(gè): cluster active - MASTER cluster active SLAVE 注意,下述的命令只能在返回是master的那臺(tái)機(jī)器執(zhí)行,因?yàn)樗钦麄€(gè)cluster中的主節(jié)點(diǎn)。 b)創(chuàng)建共享磁盤組 # vxdg -s init DB2DB c0t0d0; s就是共享(share)的意思; c)將新建的磁盤組以共享模式加入到system1和system2: # vxdg deport DB2DG # vxdg
23、-s import DB2DG 注意:如果在這里沒(méi)有用s參數(shù),那么磁盤組將被第一個(gè)執(zhí)行導(dǎo)入的系統(tǒng)使用,其他系統(tǒng)的導(dǎo)入操作將會(huì)失敗。必須以共享模式導(dǎo)入才能被多個(gè)系統(tǒng)使用。 d)創(chuàng)建卷: # vxassist -g DB2DG make DB2Vol 5g e)創(chuàng)建文件系統(tǒng): # mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol f)將新建的文件系統(tǒng)以共享模式加載到兩臺(tái)機(jī)器上面: # mkdir /home/db2 # mount -F vxfs -o cluster /dev/vx/dsk/DB2DG/DB2Vol /home/db2 3.
24、在兩臺(tái)機(jī)器創(chuàng)建相同的數(shù)據(jù)庫(kù)管理組和管理員,并且加上DB2的注冊(cè)碼(配置方法見入門篇): 4.安裝DB2的程序到兩臺(tái)機(jī)器上,將數(shù)據(jù)文件指定到共享盤所在的目錄/home/db2下面; 5.修改db2nodes.cfg文件; 這里我想詳細(xì)的講述一下這個(gè)文件的格式,因?yàn)檫@個(gè)文件的配置正確與否之間關(guān)系到了配置能否成功,而對(duì)于這個(gè)文件的內(nèi)容,即使很多DB2的老用戶也不是很清楚: 這個(gè)文件的一個(gè)常見配置如下所示: 0 sysA 0 1 sysA 1 2 sysB 0 3 sysC 0 4 sysD 0 這個(gè)文件的每一行是一個(gè)節(jié)點(diǎn)的信息,其中第一列數(shù)字是唯一編號(hào),表示后面的系統(tǒng)分區(qū)是一個(gè)集群的成員;第二列是主
25、機(jī)的名稱,一般就是系統(tǒng)的名稱,表示這個(gè)成員是運(yùn)行在哪臺(tái)主機(jī)上的;第三列是端口偏移量,如果某個(gè)系統(tǒng)上面部署了多個(gè)分區(qū)提供數(shù)據(jù)庫(kù)服務(wù)的話,DB2將通過(guò)不同的端口服務(wù)來(lái)區(qū)別不同的分區(qū)。 所以,根據(jù)上述解釋,將該文件修改如下: 0 system1 0 1 system2 1 6.確認(rèn)數(shù)據(jù)庫(kù)安裝配置正常: 在每一臺(tái)機(jī)器執(zhí)行下列命令: # su - db2inst1 $ db2start $ db2stop 如果配置正確,那么下列命令在各個(gè)系統(tǒng)都能工作正常。 這樣,數(shù)據(jù)庫(kù)的配置就已經(jīng)完成了。VCS的配置1.配置集群文件系統(tǒng)服務(wù)組: 在安裝了SFCFS之后,VCS自動(dòng)為集群文件系統(tǒng)創(chuàng)建一個(gè)原始的服務(wù)組,我們
26、只需要稍微改變它一下即可。 a)在該磁盤組下面創(chuàng)建Cluster Disk group資源和Cluster Volume資源;并修改其屬性,讓它們控制DB2DG和DB2Vol的狀態(tài); b)在原有的集群掛載點(diǎn)資源(CFSMount)上設(shè)置依賴屬性,讓其依賴于集群卷;在設(shè)置集群卷依賴與集群磁盤組; c)設(shè)置后的關(guān)系圖如圖所示:圖3,集群文件系統(tǒng)依賴關(guān)系圖 2.配置DB2服務(wù)組: a)創(chuàng)建DB2資源,IP資源和網(wǎng)卡資源,分別設(shè)定其屬性,IP就是各個(gè)系統(tǒng)的主機(jī)IP地址; b)設(shè)置資源間的依賴關(guān)系:DB2數(shù)據(jù)庫(kù)依賴IP資源,IP資源依賴網(wǎng)卡資源; c)設(shè)置好的關(guān)系圖如圖所示:圖4,DB2數(shù)據(jù)庫(kù)的依賴關(guān)系
27、 3.建立集群服務(wù)組和DB2服務(wù)組之間的依賴關(guān)系: a)右鍵點(diǎn)擊VCS界面左側(cè)新建的DB2服務(wù)組; b)選擇“l(fā)ink”,然后選擇CFS服務(wù)組,選擇online local以及soft模式; c)這樣DB2服務(wù)組就依賴與CFS服務(wù)組的狀態(tài)了,如果CFS在某臺(tái)系統(tǒng)故障,則其上的數(shù)據(jù)庫(kù)服務(wù)就會(huì)停止,對(duì)其資源的請(qǐng)求將會(huì)被DB2轉(zhuǎn)移到其他數(shù)據(jù)庫(kù)節(jié)點(diǎn)上面; 4.測(cè)試工作狀態(tài): 讓DB2服務(wù)組在兩臺(tái)機(jī)器同時(shí)上線,如果成功,則說(shuō)明配置已經(jīng)生效,并能正常使用。 數(shù)據(jù)庫(kù)作為現(xiàn)在數(shù)據(jù)管理不可或缺的一個(gè)部分,在生產(chǎn)環(huán)境中有著重要的地位。因此,如何能夠使數(shù)據(jù)庫(kù)能夠穩(wěn)定,高效的工作,成為每一個(gè)數(shù)據(jù)庫(kù)管理員和系統(tǒng)管理員重
28、要的工作。所以配置數(shù)據(jù)庫(kù)雙機(jī)互備和雙機(jī)熱備的配置方法,是每一個(gè)數(shù)據(jù)庫(kù)管理員的基礎(chǔ)。 通過(guò)本文及一些相關(guān)文章大家已經(jīng)了解到DB2數(shù)據(jù)庫(kù)的管理和配置方法,下面我們還將為大家介紹oracle和sybase的集群的配置方法,并可以比較這些主流數(shù)據(jù)庫(kù)的不同之處。實(shí)戰(zhàn):高手教你用Symantec VCS配置Oracle雙機(jī)【IT168 專稿】前期我們通過(guò)一系列文章為大家介紹了Symantec的Veritas Storage Foundation存儲(chǔ)管理軟件,并向大家介紹了Symantec公司專業(yè)的集群管理軟件Veritas Cluster Server(VCS)。參考鏈接:高手教你用Symantec VC
29、S配置DB2雙機(jī)-入門高手教你用Symantec VCS配置DB2雙機(jī)-高級(jí) 將Oracle的雙機(jī)放在DB2雙機(jī)后面講有兩個(gè)原因:一是DB2的配置相對(duì)于oracle的配置來(lái)說(shuō)比較簡(jiǎn)單,數(shù)據(jù)庫(kù)的模式也比較容易理解,而其中相似的地方可以參照DB2的配置;二是DB2雙機(jī)的配置,也只能說(shuō)是oracle雙機(jī)配置的子集,在了解DB2的雙機(jī)配置之后,oracle雙機(jī)配置的很多相似的地方簡(jiǎn)單說(shuō)明一下即可。此外,讀者可以比較一下這兩種模式的異同,有利于讀者選擇更合適自己的雙機(jī)配置模式。 我們隨后還將介紹Sybase雙機(jī)的配置,將Sybase放在最后并不是因?yàn)樗鼜?fù)雜,而是因?yàn)樵谶@三種數(shù)據(jù)庫(kù)之中,Sybase的用
30、戶群相對(duì)比較少,需要的人不多。比較DB2與Oracle數(shù)據(jù)庫(kù) DB2和Oracle有很多的不同,要想了解清楚,那個(gè)不是一朝一夕的功夫了。幸運(yùn)的是,因?yàn)槲覀儸F(xiàn)在只是需要做雙機(jī)配置,所以我們只是在可能會(huì)影響配置的概念上,做一個(gè)簡(jiǎn)單的比較。1.配置結(jié)構(gòu)的不同: DB2數(shù)據(jù)庫(kù)的雙機(jī)熱備只支持一種模式,就是DB2的程序在兩臺(tái)機(jī)器上各有一份,只有數(shù)據(jù)文件存放在共享存儲(chǔ)中,如下圖所示:圖1,DB2雙機(jī)配置結(jié)構(gòu)圖 這種配置模式的優(yōu)點(diǎn)是有利于數(shù)據(jù)庫(kù)的升級(jí),當(dāng)其中systemA需要升級(jí)的時(shí)候,就把服務(wù)切換到systemB上運(yùn)行,升級(jí)A的DB2程序,之后還可以把服務(wù)切換回到A來(lái),然后升級(jí)B的DB2程序。這個(gè)升級(jí)過(guò)程
31、不會(huì)影響用戶的DB2使用,因?yàn)榭傆幸慌_(tái)機(jī)器可以使用DB2程序來(lái)響應(yīng)用戶的服務(wù)請(qǐng)求。 對(duì)于oracle來(lái)說(shuō)不但可以支持這種程序存放在不同機(jī)器上的做法,而且支持把oracle的程序文件也同時(shí)放在共享盤上,其結(jié)構(gòu)圖如下所示:圖2,oracle雙機(jī)結(jié)構(gòu)圖程序在各個(gè)服務(wù)器上圖3,oracle雙機(jī)結(jié)構(gòu)圖程序和數(shù)據(jù)都在共享盤上 將數(shù)據(jù)與程序同時(shí)放在共享盤上的優(yōu)點(diǎn)有兩個(gè):一是節(jié)省磁盤空間,用戶只需要保留一份數(shù)據(jù)庫(kù)備份;二是有利于程序的一致性,不會(huì)因?yàn)閿?shù)據(jù)庫(kù)版本的不同,產(chǎn)生差異,可以避免產(chǎn)生一些莫名的問(wèn)題。2. 數(shù)據(jù)庫(kù)的工作模式不同 DB2數(shù)據(jù)庫(kù)是以實(shí)例為基礎(chǔ)的:多個(gè)硬盤或者服務(wù)器組成一個(gè)實(shí)例,一個(gè)實(shí)例下面可以
32、劃分多個(gè)數(shù)據(jù)庫(kù),一個(gè)數(shù)據(jù)庫(kù)只能屬于一個(gè)實(shí)例。Oracle可以理解為以用戶為基礎(chǔ)的數(shù)據(jù)庫(kù),不同的用戶訪問(wèn)不同的實(shí)例,不同的實(shí)例其實(shí)就是不同的數(shù)據(jù)庫(kù)。配置Oracle雙機(jī)系統(tǒng) 閑話少說(shuō),現(xiàn)在開始介紹一下利用VCS來(lái)配置oracle雙機(jī)的過(guò)程: a)創(chuàng)建數(shù)據(jù)文件使用的共享存儲(chǔ)(在system1上面執(zhí)行下列5個(gè)命令): i.# vxdg init oracleDG c0t0d0; 創(chuàng)建磁盤組oracleDG,使用c0t0d0這個(gè)硬盤; ii.# vxassist -g oracleDG make oracleVol 5g; 在磁盤組上創(chuàng)建5G大小的卷oracleVol; iii.# mkfs -F v
33、xfs -o largefiles /dev/vx/rdsk/oracleDG/oracleVol; 創(chuàng)建文件系統(tǒng); iv.# mkdir /oracle; 創(chuàng)建mount點(diǎn),共享磁盤將mount到這里; v.# mount -F vxfs /dev/vx/dsk/oracleDG/oracleVol /oracle; 將共享盤mount到本機(jī); b)在兩臺(tái)機(jī)器上面分別執(zhí)行下列命令,創(chuàng)建相同的用戶組和用戶: vi.# groupadd -g 500 dba; 創(chuàng)建oracle管理組; vii.# useradd -g dba -u 500 -d /home/oracle -m oracle;
34、創(chuàng)建oracle管理用戶;注意:組ID或者用戶ID可以是任意尚未被使用的數(shù)值,但是一定要保證多臺(tái)機(jī)器必須一致。 c)安裝oracle程序 到oracle安裝文件的目錄下,運(yùn)行下列命令安裝oracle程序 #. /runInstaller 在安裝過(guò)程中,指定oracle用戶為“oracle”。注意:如果需要在多臺(tái)機(jī)器安裝oracle,則需要在多臺(tái)機(jī)器運(yùn)行該程序;如果僅僅想把程序安裝在共享盤上面,則僅僅需要在一臺(tái)機(jī)器安裝。注意:安裝過(guò)程中有一步會(huì)問(wèn)用戶是否需要配置數(shù)據(jù)庫(kù),我們選擇“僅僅安裝軟件”,我們會(huì)在稍后配置數(shù)據(jù)庫(kù)文件到共享磁盤。 d)配置數(shù)據(jù)庫(kù): oracle程序安裝完畢后,我們需要配置數(shù)據(jù)
35、庫(kù)到共享磁盤上,這樣多臺(tái)機(jī)器才能夠共享其數(shù)據(jù)資源; # dbca 運(yùn)行數(shù)據(jù)庫(kù)配置助手來(lái)幫助用戶安裝數(shù)據(jù)庫(kù),注意需要將路徑指明到共享磁盤中。 e)設(shè)置環(huán)境變量 在各個(gè)機(jī)器的/home/oracle/.profile文件中,設(shè)置兩個(gè)全局變量: $ORACLE_HOME=/oracle該變量指明數(shù)據(jù)庫(kù)的安裝位置; $ORACLE_SID=oracle該變量指明訪問(wèn)哪個(gè)數(shù)據(jù)庫(kù)實(shí)例; f)安裝VCS的oracle代理軟件:(以redhat為例) # rpm -ivh VRTSvcsor # rpm -ivh VRTScsocw 這樣,oracle的安裝就完成了。測(cè)試Oracle雙機(jī)配置 在安裝結(jié)束之后,
36、我們需要測(cè)試一下oracle能否在多臺(tái)機(jī)器上正常工作。 a)將共享盤mount到第一臺(tái)機(jī)器(步驟可以參考DB2雙機(jī)配置) b)從這臺(tái)機(jī)器登陸數(shù)據(jù)庫(kù)并創(chuàng)建一個(gè)表 i.su oracle將系統(tǒng)用戶切換到oracle用戶; ii.export $ORACLE_HOME=/oracle;導(dǎo)出全局變量; export $ORACLE_SID=oracle; iii.$ORACLE_HOME/bin/sqlplus /nolog進(jìn)入數(shù)據(jù)庫(kù)模式; iv.connect / as sysdba以系統(tǒng)管理員身份登陸數(shù)據(jù)庫(kù); v.create user tester identified by 123456 de
37、fault tablespace USERS temporary tablespace TEMP quota 100K on UERS;創(chuàng)建一個(gè)新用戶tester; vi.grant create session to tester;賦予新用戶tester創(chuàng)建表的權(quán)限; vii.create table tester.mytime ( tstamp date );在tester用戶空間下創(chuàng)建一個(gè)新表; viii.insert into tester.mytime (tstamp) values (SYSDATE); 在新表中插入數(shù)據(jù); ix.disconnect;斷開連接; c)測(cè)試其他集群節(jié)
38、點(diǎn)可以工作: i.connect tester/123456以新用戶身份登陸數(shù)據(jù)庫(kù); ii.update tester.mytime set ( tstamp ) = SYSDATE;更新表的內(nèi)容; iii.select TO_CHAR(tstamp, MON DD, YYYY HH:MI:SS AM) from tester.mytime; 確認(rèn)表的內(nèi)容已經(jīng)被更新; iv.exit推出。 在經(jīng)過(guò)這個(gè)檢查之后,就說(shuō)明數(shù)據(jù)庫(kù)已經(jīng)正確安裝并可以被每個(gè)節(jié)點(diǎn)正常的訪問(wèn),測(cè)試成功。配置VCS的oracle代理 這個(gè)過(guò)程與DB2的非常相似,唯一的不同在于DB2只有一個(gè)主進(jìn)程工作,監(jiān)控DB2是否正常工作只需
39、監(jiān)控這個(gè)進(jìn)程即可。在oracle中有兩個(gè)進(jìn)程,一個(gè)是數(shù)據(jù)庫(kù)運(yùn)行的主進(jìn)程,另一個(gè)是監(jiān)控用戶請(qǐng)求的進(jìn)程,兩個(gè)進(jìn)程同時(shí)工作才能確保oracle的正常運(yùn)行。所以在oracle代理的配置過(guò)程中,需要多添加一個(gè)lsnr的資源,用來(lái)保證oracle監(jiān)控進(jìn)程的正常工作。 配置好的oracle代理結(jié)構(gòu)如圖所示:圖4,oracle代理的配置結(jié)構(gòu) 按照該圖所示,配置oracle代理需要下列資源: NIC:提供oracle相應(yīng)的網(wǎng)卡; IP:提供oracle服務(wù)的IP地址;DiskGroup:共享磁盤組; Volume_data:存放oracle共享數(shù)據(jù)的卷; Volume_binary:存放oracle程序的卷(如
40、果程序不是放在共享磁盤,該資源可以忽略); Mount_data:數(shù)據(jù)庫(kù)共享數(shù)據(jù)的訪問(wèn)路徑; Mount_binary:數(shù)據(jù)庫(kù)程序的訪問(wèn)路徑(如果程序不是放在共享磁盤,該資源可以忽略); Oracle:監(jiān)控oracle進(jìn)程是否正常工作; Netlnsr:監(jiān)控oracle監(jiān)聽進(jìn)程是否工作。 在這些資源都配置好之后,打開VCS的圖形界面,可以讓該服務(wù)組執(zhí)行上線、下線或者切換,這樣,VCS就會(huì)自動(dòng)監(jiān)控oracle的工作情況,并在某臺(tái)機(jī)器發(fā)生故障的時(shí)候,自動(dòng)切換到其他節(jié)點(diǎn)繼續(xù)提供服務(wù)。這樣,oracle的雙機(jī)配置就完成了。實(shí)戰(zhàn):如何用VCS構(gòu)筑雙機(jī)的基礎(chǔ)【IT168 專稿】前面我們通過(guò)系列的文章講述了
41、用Veritas Cluster Server (VCS)配置DB2雙機(jī)入門,DB2雙機(jī)高級(jí)配置,以及用VCS配置Oracle雙機(jī)。通過(guò)以上三篇文章,可以快速的使用VCS進(jìn)行雙機(jī)配置,但是本文將涉及一些VCS雙機(jī)軟件的工作方式和基礎(chǔ)原理,幫助用戶更好地了解VCS的工作原理,在使用中可以更為靈活。 參考鏈接:高手教你用VCS配置DB2雙機(jī)高手教你用VCS DB2雙機(jī)高級(jí)配置 高手教你用Symantec VCS配置Oracle雙機(jī) VCS是一個(gè)機(jī)群管理軟件,最大的特點(diǎn)在于多平臺(tái)和產(chǎn)品的兼容性,同時(shí)也提供了集群環(huán)境的全面的可用性管理,降低計(jì)劃的和非計(jì)劃的停機(jī)時(shí)間。集群軟件的分類 一般來(lái)講,集群軟件分
42、為三種: 高性能集群(High performance cluster,HPC),它是利用一個(gè)集群中的多臺(tái)機(jī)器共同完成同一件任務(wù),使得完成任務(wù)的速度和可靠性都遠(yuǎn)遠(yuǎn)高于單機(jī)運(yùn)行的效果。彌補(bǔ)了單機(jī)性能上的不足。該集群在天氣預(yù)報(bào)、環(huán)境監(jiān)控等數(shù)據(jù)量大,計(jì)算復(fù)雜的環(huán)境中應(yīng)用比較多; 負(fù)載均衡集群(Load balance cluster, LBC),它是利用一個(gè)集群中的多臺(tái)單機(jī),完成許多并行的小的工作。一般情況下,如果一個(gè)應(yīng)用使用的人多了,那么用戶請(qǐng)求的相應(yīng)時(shí)間就會(huì)增大,機(jī)器的性能也會(huì)受到影響,如果使用負(fù)載均衡集群,那么集群中任意一臺(tái)機(jī)器都能相應(yīng)用戶的請(qǐng)求,這樣集群就會(huì)在用戶發(fā)出服務(wù)請(qǐng)求之后,選擇當(dāng)時(shí)負(fù)
43、載最小,能夠提供最好的服務(wù)的這臺(tái)機(jī)器來(lái)接受請(qǐng)求并相應(yīng),這樣就可用用集群來(lái)增加系統(tǒng)的可用性和穩(wěn)定性。這類集群在網(wǎng)站中使用較多; 高可用性集群(High availability cluster,HAC),它是利用集群中系統(tǒng) 的冗余,當(dāng)系統(tǒng)中某臺(tái)機(jī)器發(fā)生損壞的時(shí)候,其他后備的機(jī)器可以迅速的接替它來(lái)啟動(dòng)服務(wù),等待故障機(jī)的維修和返回。最大限度的保證集群中服務(wù)的可用性。這類系統(tǒng)一般在銀行,電信服務(wù)這類對(duì)系統(tǒng)可靠性有高的要求的領(lǐng)域有著廣泛的應(yīng)用。 VCS是屬于其中的高可用性的集群,它能夠在最短的時(shí)間內(nèi)保證服務(wù)的可用性。對(duì)于當(dāng)機(jī)時(shí)間有嚴(yán)格要求的需求來(lái)說(shuō),VCS可以提供良好的服務(wù)保證。VCS環(huán)境的搭建與邏輯結(jié)
44、構(gòu) 與所有的集群軟件一樣,VCS需要內(nèi)部心跳線來(lái)通信,監(jiān)控整個(gè)集群中所有節(jié)點(diǎn)的狀態(tài),為了保證高可用性,一般選擇兩條心跳線,以免某條網(wǎng)線發(fā)生故障影響系統(tǒng)的使用。 心跳線的連接有兩種方法,直連或者通過(guò)通過(guò)交換機(jī)連接。如果使用的是交換機(jī)連接的方式,需要配置兩個(gè)交換機(jī)分別接在不同的心跳上面。這樣可以避免因?yàn)榻粨Q機(jī)故障而破壞系統(tǒng)使用。此外,心跳線使用的網(wǎng)卡最好不是公網(wǎng)網(wǎng)卡,因?yàn)樾奶畔⑹敲繒r(shí)每刻都要往外面發(fā)送數(shù)據(jù),如果用公網(wǎng)網(wǎng)卡作為心跳網(wǎng)卡,第一可能會(huì)影響公網(wǎng)的使用速率;第二是可能在公網(wǎng)網(wǎng)絡(luò)中增加了大量的垃圾信息,增加網(wǎng)絡(luò)負(fù)載。 如果需要連接SAN存儲(chǔ),那么光纖卡也是不可或缺的。雖然一般的光纖卡上面都配
45、置有兩個(gè)光纖口,但是盡快選擇兩塊不同的光纖卡以免單一光纖卡成為了高可用環(huán)境的瓶頸所在。 VCS 使用的心跳協(xié)議叫做LLT(低延遲傳輸協(xié)議,Low Latency Transport),LLT運(yùn)行在IP之下。這個(gè)協(xié)議比IP更快且更可靠。這能確保集群成員保持同步和在集群中能馬上聯(lián)系對(duì)方; 在LLT上方的協(xié)議是GAB(組成員服務(wù)和廣播,Group Membership Services/Atomic Broadcast),它負(fù)責(zé)發(fā)送廣播,接收集群中所有節(jié)點(diǎn)的相應(yīng),得出集群中節(jié)點(diǎn)的狀態(tài)信息;它也能接受上層服務(wù)的注冊(cè),將上層服務(wù)發(fā)出的命令通過(guò)LLT發(fā)送到各個(gè)節(jié)點(diǎn)中去。 HAD(高可用進(jìn)程, hign a
46、vailability daemon)就是VCS的主要進(jìn)程,它在gab上注冊(cè)之后,可以監(jiān)控管理整個(gè)集群中節(jié)點(diǎn)的狀態(tài)。 Agent是veritas提供或者個(gè)人用戶自己實(shí)現(xiàn)的代理,用來(lái)實(shí)現(xiàn)用戶特定的應(yīng)用。舉例來(lái)說(shuō),oracle服務(wù)就可以是一個(gè)代理,該代理可以通過(guò)監(jiān)控oracle數(shù)據(jù)庫(kù)的進(jìn)程來(lái)判斷oracle數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài)。VCS了解到判斷方法后,會(huì)通過(guò)GAB和LLT服務(wù)來(lái)監(jiān)控集群中所有節(jié)點(diǎn)上這些進(jìn)程,從而監(jiān)控oracle數(shù)據(jù)庫(kù)的狀態(tài)以及切換。 從下圖可以看出VCS邏輯結(jié)構(gòu)的關(guān)系圖:VCS邏輯結(jié)構(gòu)圖VCS的使用啟動(dòng)VCS的圖形界面,/opt/VRTSvcs/bin/hagui,默認(rèn)的用戶名和密碼分
47、別是admin、password,在安裝過(guò)程中可以選擇添加其他的用戶。 VCS中有兩個(gè)概念,一個(gè)是服務(wù)組(service group),另外一個(gè)是資源(resource)。資源是監(jiān)控的最小單位,可以監(jiān)控某個(gè)特定的硬件或者軟件的狀態(tài)。多個(gè)資源可以構(gòu)成一個(gè)服務(wù)組,共同監(jiān)控一個(gè)應(yīng)用的運(yùn)行。多個(gè)組也可以組成一個(gè)更大的服務(wù)組。 舉例說(shuō)起來(lái)比較容易,以oracle應(yīng)用為例來(lái)說(shuō)明一下: 首先應(yīng)該創(chuàng)建一個(gè)oracle服務(wù)組,然后在該組里面添加所需的節(jié)點(diǎn),oracle服務(wù)將在這些節(jié)點(diǎn)中進(jìn)行切換,保證服務(wù)的高可用性。 另外,如果需要啟動(dòng)oracle,那么至少需要以下資源能夠正常工作: 網(wǎng)卡:提供oracle服務(wù)所
48、需的IP地址所在的網(wǎng)卡;網(wǎng)卡設(shè)置必須指明設(shè)備名稱;IP地址:提供oracle服務(wù)的IP地址必須在該主機(jī)上時(shí)刻存在;IP地址必須指明IP地址和設(shè)備,掩碼和廣播地址是可選的; 目錄1:$ORACLE_HOME所在的目錄必須存在;目錄必須指明目錄名,如果是共享磁盤,還需要指明設(shè)備地址和文件系統(tǒng)類型; 目錄2:Oracle數(shù)據(jù)做存放的位置必須存在; Oracle代理:監(jiān)控oracle進(jìn)程的存在以及系統(tǒng)表空間可以訪問(wèn);Oracle代理必須指明SID,數(shù)據(jù)庫(kù)的owner,$ORACLE_HOME這些變量; 除此之外,如果oracle數(shù)據(jù)需要放在共享磁盤上面,那么還要添加磁盤組資源和 卷資源。建立各個(gè)資源的
49、依賴關(guān)系添加了resource之后還不夠,VCS無(wú)法了解到用戶的具體的需求,所以不能做出合適的判斷。這時(shí)需要在各個(gè)資源直接建立起依賴關(guān)系。這個(gè)以來(lái)關(guān)系是很好建立的: Oracle服務(wù)的正常使用依賴其他三個(gè)資源:IP地址存在,數(shù)據(jù)庫(kù)程序所在目錄存在和數(shù)據(jù)庫(kù)文件所在目的的存在。所以它有三個(gè)以來(lái)關(guān)系,我們可以在VCS中將oracle資源分別與其他的三個(gè)資源link起來(lái)。 IP資源的存在必須依賴網(wǎng)卡的正常,所以需要將IP資源與網(wǎng)卡資源link起來(lái)。 如果oracle文件目錄或者數(shù)據(jù)目錄是存放在共享磁盤上,那么該文件目錄(mount point)依賴卷,卷依賴與磁盤組,也需要link起來(lái)。 這樣,如下圖
50、所示,所有的資源都有機(jī)的聯(lián)系到一起了,在左邊的oracle服務(wù)組上點(diǎn)擊右鍵,可以選擇oracle online到某一個(gè)節(jié)點(diǎn),然后還可以選擇從該節(jié)點(diǎn)切換(switch to)到其他節(jié)點(diǎn)。這樣,整個(gè)VCS的配置就完成了。實(shí)戰(zhàn):巧用磁盤管理工具給oracle提速【IT168 專稿】今天,數(shù)據(jù)庫(kù)的使用已經(jīng)深入到了各個(gè)行業(yè)的方方面面,隨著大型數(shù)據(jù)庫(kù)應(yīng)用的增加,動(dòng)輒涉及到TB級(jí)數(shù)據(jù)量的存儲(chǔ)與讀取,數(shù)據(jù)庫(kù)的讀寫效率日益成為整體系統(tǒng)的瓶頸所在。越來(lái)越多的系統(tǒng)管理員已經(jīng)意識(shí)到:提高數(shù)據(jù)庫(kù)的讀寫速度,走出海量數(shù)據(jù)和訪問(wèn)量壓力的瓶頸,是提高整體系統(tǒng)的運(yùn)行效率的關(guān)鍵。 在這里,筆者將向大家介紹使用磁盤管理工具給Ora
51、cle提速的一些方法。當(dāng)我們希望給Oracle提速的時(shí)候,我們首先必須了解在oracle運(yùn)行過(guò)程中,瓶頸來(lái)自于哪些方面,我們通過(guò)哪些方面去給Oracle提速。瓶頸來(lái)自于哪里一、操作系統(tǒng)的單寫鎖 首先我們知道,Unix系統(tǒng)是一個(gè)多用戶的操作系統(tǒng),為了保持文件的一致性,操作系統(tǒng)一般會(huì)在某個(gè)用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀寫操作的時(shí)候,為該文件加一個(gè)單寫鎖(single write lock),這樣可以避免其它人繼續(xù)操作這個(gè)文件,可以保證數(shù)據(jù)文件的可靠性。 但是加鎖和解鎖的過(guò)程如此復(fù)雜,在獲得文件一致性和安全性的同時(shí),犧牲掉了大量的系統(tǒng)性能,有什么辦法可以既保證數(shù)據(jù)庫(kù)系統(tǒng)的文件一致性,又不致于浪費(fèi)掉大量的系統(tǒng)性能
52、呢?二、寫緩存和磁盤讀寫 我們知道,在數(shù)據(jù)庫(kù)的數(shù)據(jù)在讀寫的時(shí)候,首先都需要經(jīng)過(guò)緩存,緩存命中率對(duì)于數(shù)據(jù)庫(kù)的讀寫效率起著至關(guān)重要的作用。那么我們?nèi)绾翁岣呔彺娴拿新誓兀?一般數(shù)據(jù)庫(kù)在讀寫的時(shí)候都會(huì)保存一份cache,然而文件系統(tǒng)在讀寫系統(tǒng)文件的時(shí)候也會(huì)生成一份cache,這樣緩存中就會(huì)留有冗余的數(shù)據(jù),影響緩存使用的利用率。我們?cè)鯓酉彺嬷羞@部分冗余的數(shù)據(jù)呢?三、提高磁盤讀寫效率 在Oracle 9i版本以后,Oracle本身都自帶有磁盤管理組件(Oracle disk manager)來(lái)管理數(shù)據(jù)文件,提高I/O吞吐量,不過(guò)本文將為大家介紹另外一種磁盤管理工具,能夠進(jìn)一步優(yōu)化磁盤數(shù)據(jù)結(jié)構(gòu),提高數(shù)
53、據(jù)吞吐量。大家有興趣,可對(duì)兩種系統(tǒng)優(yōu)化工具進(jìn)行一下對(duì)比測(cè)試。優(yōu)化磁盤文件系統(tǒng)和數(shù)據(jù)分布 由于數(shù)據(jù)庫(kù)的讀寫與磁盤文件系統(tǒng)、數(shù)據(jù)分布等等規(guī)則密切相關(guān),我們可以使用一些磁盤管理工具來(lái)優(yōu)化磁盤的文件系統(tǒng)和數(shù)據(jù)分布規(guī)則。 對(duì)于Unix系統(tǒng)的單寫鎖問(wèn)題造成數(shù)據(jù)庫(kù)讀寫效率低下的情況,我們知道,為了提高讀寫速度,Unix操作系統(tǒng)在提供單寫鎖功能的同時(shí),還提供了異步讀寫(asynchronous I/O)和直接讀寫(direct I/O)的API,允許應(yīng)用程序不加鎖的寫入文件。因此,一些磁盤管理工具軟件可以利用這個(gè)特點(diǎn), 讓數(shù)據(jù)庫(kù)文件跳過(guò)這些單寫鎖,按照裸設(shè)備的讀寫方式寫這些文件,從而提高數(shù)據(jù)庫(kù)的讀寫性能。 同
54、時(shí),大多數(shù)磁盤管理工具都能夠自動(dòng)監(jiān)控?cái)?shù)據(jù)讀寫存取的頻度,選擇將一些讀寫頻繁的數(shù)據(jù)文件直接加載到內(nèi)存中,這樣,磁盤管理工具軟件能保證讀出和寫入這些文件,整個(gè)過(guò)程對(duì)于Oracle是完全透明的。 筆者在這里將以2個(gè)2000行的相同的數(shù)據(jù)庫(kù)更新來(lái)進(jìn)行測(cè)試,以Vetitas storage foundation為例,來(lái)測(cè)試Veritas Storage Foundation對(duì)Oracle數(shù)據(jù)庫(kù)的提速效果。Quick I/O系統(tǒng)優(yōu)化實(shí)例介紹 Veritas Storage Foundation本身是一個(gè)管理軟件的套件,其中的Quick I/O與cache I/O功能組件能夠分別解決單寫鎖和緩存命中率問(wèn)題。利用Quick I/O這個(gè)特性來(lái)讀寫文件,需要將VxFS文件系統(tǒng)的文件轉(zhuǎn)換成Quick IO文件,然后storage foundation才能減少這些文件的讀寫的鎖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高職院校內(nèi)部督導(dǎo)體系建設(shè)中的師生互動(dòng)與溝通機(jī)制
- 電動(dòng)交通與綠色能源轉(zhuǎn)型的融合發(fā)展路徑
- 創(chuàng)新性融資方式對(duì)非遺傳承的推動(dòng)作用
- 廣東省寶塔實(shí)驗(yàn)2025屆八上物理期末質(zhì)量檢測(cè)試題含解析
- 云南省蒙自市2024-2025學(xué)年八年級(jí)物理第一學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含解析
- 九江市重點(diǎn)中學(xué)2025屆數(shù)學(xué)七上期末聯(lián)考模擬試題含解析
- 餐飲店轉(zhuǎn)讓及員工激勵(lì)機(jī)制合同范本
- 中國(guó)鐵路運(yùn)輸行業(yè)噪聲控制標(biāo)準(zhǔn)化建設(shè)實(shí)踐經(jīng)驗(yàn)分享
- 電信行業(yè)服務(wù)質(zhì)量提升策略研究
- 中國(guó)信息通信研究院-算力中心服務(wù)商分析報(bào)告(2025年)
- 透析病人營(yíng)養(yǎng)不良的護(hù)理
- 充電樁項(xiàng)目實(shí)施過(guò)程中的質(zhì)量保證措施
- T-CPUMT 025-2024 工業(yè)互聯(lián)網(wǎng)平臺(tái) 服務(wù)通.用要求
- 2025年度地質(zhì)勘探監(jiān)理服務(wù)合同范本
- 保山隆陽(yáng)區(qū)小升初數(shù)學(xué)試卷
- 2025年上半年北京市西城區(qū)教委事業(yè)單位公開招聘考試筆試易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- RoHS知識(shí)培訓(xùn)課件
- 2024-2025學(xué)年北京西城區(qū)高一(上)期末語(yǔ)文試卷(含答案)
- 2025年貴州貴旅集團(tuán)雷山文化旅游產(chǎn)業(yè)發(fā)展有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年初升高數(shù)學(xué)銜接教材講義
- 血小板減少護(hù)理查房課件
評(píng)論
0/150
提交評(píng)論