這篇文章將為大家詳細(xì)講解有關(guān)RHEL 5.5+DRBD+heartbeat+Oracle10R2雙機(jī)安裝的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了通渭免費(fèi)建站歡迎大家使用!
1、操作系統(tǒng)版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
2、Drbd、Heartbeat 文件版本及文件名列表(本人已經(jīng)將以下文件打包為Heartbeat3.0.3.tar.bz2 ):
Cluster-Resource-Agents-agents-1.0.3.tar.bz2
drbd-8.3.8.1.tar.gz
Heartbeat-3-0-STABLE-3.0.3.tar.bz2
Load drbd modules
Pacemaker-1-0-Pacemaker-1.0.9.tar.bz2 Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0.tar.bz2
Reusable-Cluster-Components-glue-1.0.6.tar.bz2
3、網(wǎng)絡(luò)配置(雙網(wǎng)卡采用BOND模式)
RHEL5.5系統(tǒng)安裝完成之后需要修改網(wǎng)絡(luò)配置,首先將各節(jié)點(diǎn)中eth0、eth2分別設(shè)置為靜態(tài)IP。修改節(jié)點(diǎn)hosts文件,內(nèi)容如圖
同時(shí)修改各節(jié)點(diǎn)/etc/sysconfig/network文件,將HOSTNAME一行的內(nèi)容改為節(jié)點(diǎn)對(duì)應(yīng)的主機(jī)名,如圖(以node2為例)
4、節(jié)點(diǎn)名及存儲(chǔ)分配
a、主機(jī)名及IP
====Node2==== Hostname: node2.localdomain Ip:10.109.1.38 ====Node3==== Hostname: node3.localdomain Ip: 10.109.1.39
b、DRBD鏡像分區(qū):
資源名稱(chēng):oradata設(shè)備:/dev/drbd0
掛載點(diǎn):/oradata (存放Oracle實(shí)例)
c、浮動(dòng)主機(jī)名及IP
====Node1==== Hostname: node1.localdomain Ip: 10.109.1.37
5、安裝Heartbeat
進(jìn)入Linux根目錄
cd /
建立HA目錄
mkdir Ha
上傳 Heartbeat3.0.3.tar.bz2文件到HA目錄
進(jìn)入HA目錄
cd /HA/
5.1 解壓Heartbeat壓縮包,得到后續(xù)安裝需要的各個(gè)安裝文件
tar -jxvf Heartbeat3.0.3.tar.bz2
編譯的順序是:先Cluster Glue,再Resource Agents,然后才是Heartbeat。
解壓Reusable-Cluster-Components
tar -jxvf Reusable-Cluster-Components-glue-1.0.6.tar.bz2
進(jìn)入Reusable-Cluster-Components-glue-1.0.6目錄
cd Reusable-Cluster-Components-glue-1.0.6
打開(kāi)lib/stonith/main.c文件
vi lib/stonith/main.c
編輯:
找到其64行,將其注釋掉。
找到其76到81行全部注釋掉。
找到其390行,將其注釋
使用以下兩個(gè)進(jìn)行配置
./autogen.sh ./configure LIBS='/lib/libuuid.so.1'
使用如下命令創(chuàng)建Heartbeat管理用戶(hù):
groupadd haclient useradd -g haclient hacluster
使用如下命令編譯并安裝:
make make install
5.2 解壓Cluster-Resource-Agents
tar -jxvf Cluster-Resource-Agents-agents-1.0.3.tar.bz2
進(jìn)入Cluster-Resource-Agents-agents-1.0.3目錄
cd Cluster-Resource-Agents-agents-1.0.3
使用如下命令配置、編譯并安裝
./autogen.sh ./configure make make install
5.3 解壓Heartbeat-3-0-STABLE
tar -jxvf Heartbeat-3-0-STABLE-3.0.3.tar.bz2
進(jìn)入Heartbeat-3-0-STABLE-3.0.3目錄
cd Heartbeat-3-0-STABLE-3.0.3
首先執(zhí)行如下命令進(jìn)行配置
./autogen.sh ./bootstrap ./ConfigureMe configure make
此時(shí)系統(tǒng)會(huì)報(bào)一個(gè)hbaping.lo錯(cuò)誤,我們需要使用如下一組命令對(duì)hbaping.loT文件進(jìn)行改名操作:
cd lib ls cd plugins/ ls cd HBcomm mv hbaping.loT hbaping.lo
之后再次執(zhí)行以下兩條命令進(jìn)行安裝操作,應(yīng)該就不會(huì)報(bào)錯(cuò)了。
make make install
使用cd /usr/etc/命令進(jìn)入/usr/etc/目錄中
使用cp -R ha.d/ /etc/命令將/usr/etc/ha.d全部復(fù)制到/etc/目錄中
使用rm -rfv ha.d刪除/usr/etc/中整個(gè)ha.d目錄
使用cd /etc/命令進(jìn)入/etc/目錄中
使用ln -s /etc/ha.d /usr/etc/ha.d命令創(chuàng)建/etc/ha.d到/usr/etc/ha.d的軟連接文件。
5.4解壓Pacemaker-1-0
tar -jxvf Pacemaker-1-0-Pacemaker-1.0.9.tar.bz2
進(jìn)入Pacemaker-1-0-Pacemaker-1.0.9目錄
cd Pacemaker-1-0-Pacemaker-1.0.9
執(zhí)行如下命令配置、編譯并安裝
./autogen.sh ./ConfigureMe configure make make install
5.5 解壓Pacemaker-Python-GUI
tar -jxvf Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0.tar.bz2
進(jìn)入Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0目錄
cd Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0
首先執(zhí)行如下命令
./bootstrap
使用rpm命令在RHEL5.5安裝光盤(pán)中安裝gettext-devel、intltool包,具體命令如下:
cd /media/RHEL_5.5\ i386\ DVD/Server/ rpm -ivh gettext-devel-0.14.6-4.el5.i386.rpm rpm -ivh intltool-0.35.0-2.i386.rpm
之后再次進(jìn)入Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0目錄
cd Pacemaker-Python-GUI-pacemaker-mgmt-2.0.0
執(zhí)行如下命令:
./ConfigureMe configure autoreconf -ifs ./bootstrap make make install
使用passwd命令設(shè)置 hacluster用戶(hù)口令
將hbmgmtd復(fù)制到/etc/pam.d/目錄
cp /usr/etc/pam.d/hbmgmtd /etc/pam.d/
6、安裝DRBD
使用tar zxvf drbd-8.3.8.1.tar.gz解壓該文件
使用cd /media/RHEL_5.5\ i386\ DVD/Server/進(jìn)入光盤(pán)掛載目錄中
使用rpm依次安裝內(nèi)核相關(guān)的源碼包
rpm -ivh kernel-devel-2.6.18-194.el5.i686.rpm rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm rpm -ivh kernel-doc-2.6.18-194.el5.noarch.rpm
使用cd drbd-8.3.8.1命令進(jìn)入drbd-8.3.8.1目錄中依次執(zhí)行如下命令配置、編譯并安裝
./autogen.sh ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc/ --with-km make make install
使用chkconfig --add drbd命令創(chuàng)建drbd服務(wù)啟動(dòng)腳本
使用chkconfig --add heartbeat命令創(chuàng)建heartbeat服務(wù)啟動(dòng)腳本
使用chkconfig heartbeat off命令關(guān)閉heartbeat服務(wù)
使用chkconfig drbd off命令關(guān)閉drbd服務(wù)
使用cat Load\ drbd\ modules >> /etc/rc.d/rc.sysinit命令將Load drbd modules中的內(nèi)容添加到rc.sysinit系統(tǒng)文件的***部分,以便系統(tǒng)啟動(dòng)時(shí)能自動(dòng)將drbd.ko驅(qū)動(dòng)模塊加載到核心中,正常使用drbd服務(wù)。(該步逐在rhel5.5中需要省略,否則drbd服務(wù)將無(wú)法正常啟動(dòng))。
7、配置DRBD
7.1、修改各節(jié)點(diǎn)主機(jī)DEBD配置文件/etc/drbd.d/global_common.conf中usage-count 的參數(shù)為no,如圖:
完成后存盤(pán)退出。
7.2、在各節(jié)點(diǎn)主機(jī)中創(chuàng)建文件/etc/drbd.d/oradata.res,并在oradata.res文件中添加如下內(nèi)容:
resource oradata { # 資源組的名稱(chēng) protocol C; startup { degr-wfc-timeout 120; # 2 minutes. 啟動(dòng)時(shí)連接其他節(jié)點(diǎn)的超時(shí)時(shí)間 } disk { on-io-error detach; # 當(dāng)磁盤(pán)有錯(cuò)誤時(shí),不連接 } net { } syncer { rate 10M; # 設(shè)置主備節(jié)點(diǎn)同步時(shí)的網(wǎng)絡(luò)速率***值 al-extents 257; } on node2.localdomain{ # 節(jié)點(diǎn)主機(jī)名 device /dev/drbd0; # 今后使用的設(shè)備 disk /dev/vda5; # 該節(jié)點(diǎn)上的用于存放數(shù)據(jù)的分區(qū)號(hào) address 10.109.1.38:7788; # 該節(jié)點(diǎn)的IP地址 meta-disk internal; # meta data信息存放的方式 } on node3.localdomain{ device /dev/drbd0; disk /dev/vda5; address 10.109.1.39:7788; meta-disk internal; } }
如圖例:
7.3、初始化分區(qū)
在各節(jié)點(diǎn)上執(zhí)行drbdadm create-md oradata命令,初始 化分區(qū)(創(chuàng)建meta data信息),這里的oradata即為配置文件中的資源組名稱(chēng)。
7.4、啟動(dòng)服務(wù)在兩臺(tái)節(jié)點(diǎn)服務(wù)器上啟動(dòng)drbd服務(wù)。如圖:
之后用cat /proc/drbd 或 service drbd status 查看當(dāng)前狀態(tài),出現(xiàn)下圖信息說(shuō)明DRBD服務(wù)已經(jīng)正常啟動(dòng)了,如圖:
※ 注意,現(xiàn)在兩機(jī)器都是處于Secondary,即備機(jī)狀態(tài),還進(jìn)行數(shù)據(jù)同步。
7.5、設(shè)置primary主機(jī)
在確認(rèn)作為主數(shù)據(jù)服務(wù)器的機(jī)器上執(zhí)行:
[root@node1 ~]# drbdadm adjust oradata [root@node1 ~]# drbdsetup /dev/drbd0 primary -o
這樣,將把node1作為主機(jī),把vda5中的數(shù)據(jù)以塊的方式同步到node2中。可再次查看狀態(tài):
[root@node1 ~]# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by root@hatest1, 2010-07-07 08:59:44 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---- ns:719756 nr:0 dw:0 dr:720896 al:0 bm:43 lo:0 pe:62 ua:36 ap:0 ep:1 wo:b oos:1378556 [=====>..............] sync'ed: 34.4% (1378556/2096348)K delay_probe: 149 finish: 0:04:59 speed: 4,580 (7,248) K/sec [root@node2 ~]# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by root@hatest1, 2010-07-07 08:59:44 0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r---- ns:0 nr:752096 dw:751584 dr:0 al:0 bm:45 lo:17 pe:49 ua:16 ap:0 ep:1 wo:b oos:1344764 [======>.............] sync'ed: 36.0% (1344764/2096348)K queue_delay: 2.9 ms finish: 0:02:11 speed: 10,224 (10,020) want: 10,240 K/sec
從藍(lán)色比較的 地方,可區(qū)分主機(jī)在DRBD集群中的位置。使用下面的命令也可確認(rèn):
[root@node1 ~]# drbdadm role oradata Primary/Secondary [root@node2 ~]# drbdadm role oradata Secondary/Primary
把 drbd服務(wù)設(shè)置為自啟動(dòng)方式:
[root@node1 ~]# chkconfig --level 235 drbd on [root@node2 ~]# chkconfig --level 235 drbd on
至此,鏡像分區(qū)已創(chuàng)建完成。
最終同步完 成后,兩機(jī)器drbd的狀態(tài)會(huì)變?yōu)椋?/p>
[root@hatest1 ~]# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by root@hatest1, 2010-07-07 08:59:44 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---- ns:2096348 nr:0 dw:0 dr:2096348 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0 [root@hatest2 ~]# cat /proc/drbd version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by root@hatest1, 2010-07-07 08:59:44 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r---- ns:0 nr:2096348 dw:2096348 dr:0 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
7.6、DRBD中的split brain的處理
split brain實(shí)際上是指在某種情況下,造成drbd的兩個(gè)節(jié)點(diǎn)斷開(kāi)了連接,都已Primary狀態(tài)來(lái)運(yùn)行。這通常發(fā)生在主節(jié)點(diǎn)斷開(kāi),而備節(jié)點(diǎn)手動(dòng)修改數(shù)據(jù) 后,因meta data數(shù)據(jù)不一致的情況。當(dāng)drbd某primary節(jié)點(diǎn)連接對(duì)方節(jié)點(diǎn)準(zhǔn) 備發(fā)送信息的時(shí)候如果發(fā)現(xiàn)對(duì)方也是primary狀態(tài),那么會(huì)會(huì)立刻自行斷開(kāi)連接,并認(rèn)定當(dāng)前已經(jīng)發(fā)生split brain了,這時(shí)候他會(huì)在系統(tǒng)日志中記錄以下信息:“Split-Brain detected,dropping connection!”當(dāng)發(fā)生split brain之后,如果查看連接狀態(tài),其中至少會(huì)有一個(gè)是StandAlone狀態(tài),另外一個(gè)可能也是StandAlone(如果是同時(shí)發(fā)現(xiàn)split brain狀態(tài)),也有可能是WFConnection的狀態(tài)。
DRBD可在配置文件中設(shè)定發(fā)生split brain時(shí)的處理機(jī)制,但這可能與實(shí)際情況不一致,不建議使用。若沒(méi)有配置split brain自動(dòng)解決方案,我們可以手動(dòng)來(lái)處理。
首先我們必須要確定哪一邊應(yīng)該作為解決問(wèn)題后的primary(也就是擁有***數(shù)據(jù)的一邊).一旦確定好這一點(diǎn),那么我們同時(shí)也就確定接受 丟失在split brain之后另外一個(gè)節(jié)點(diǎn)上面所做的所有數(shù)據(jù)變更了。當(dāng)這些確定下來(lái)后,我們就可以通過(guò)以下操作來(lái)恢復(fù)了:
(1)首先在確定要作為 secondary的節(jié)點(diǎn)上面切換成secondary并放棄該資源的數(shù)據(jù):
drbdadm disconnect resource_name drbdadm secondary resource_name drbdadm -- --discard-my-data connect resource_name
(2)在要作為primary的節(jié)點(diǎn)重新連 接secondary(如果這個(gè)節(jié)點(diǎn)當(dāng)前的連接狀態(tài)為WFConnection的話,可以省略)
drbdadm connect resource_name
當(dāng)作完這些動(dòng)作之后,從新的primary到secondary的re- synchnorisation會(huì)自動(dòng)開(kāi)始(重新同步)。
7.7、格式化分區(qū)
7.7.1、與軟RAID、LVM等類(lèi)似,要使用DRBD 創(chuàng)建的鏡像分區(qū),不是直接使用/dev/vda5設(shè)備,而是在配置文件中指定的/dev/drbd0。同樣的,不必等待初始化完成后才使用drbd0設(shè) 備。
[root@node1 ~]# drbdadm role oradata Primary/Secondary [root@node1 ~]# mkfs.ext3 /dev/drbd0 [root@node1 ~]# tune2fs -c 0 -i 0 /dev/drbd0
7.7.2注意事項(xiàng)
需要注意,drbd0設(shè)備只能在Primary一端使用,下面的操作都是會(huì)報(bào)錯(cuò)的:
[root@node2 ~]# mount /dev/vda5 /oradata mount: /dev/vda5 already mounted or /oradata busy [root@node2 ~]# drbdadm role oradata Secondary/Primary [root@node2 ~]# mount /dev/drbd0 /oradata/ mount: block device /dev/drbd0 is write-protected, mounting read-only mount: 錯(cuò)誤的介質(zhì)類(lèi)型
另外,為避免誤操作,當(dāng)機(jī)器重啟后,默認(rèn)都處于Secondary狀態(tài),如要使用 drbd設(shè)備,需手動(dòng)把其設(shè)置為Primary。
7.7.3、掛載
先把drbd0設(shè)備掛載到/oradata目錄中:
[root@hatest1 ~]# mount /dev/drbd0 /oradata [root@hatest1 ~]# df -h /oradata 文件系 統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn) /dev/drbd0 2.0G 36M 1.9G 2% /oradata
8、安裝ORACLE10.2
8.1、分別在各節(jié)點(diǎn)配置Linux內(nèi)核參數(shù)。
以root身份登錄后,進(jìn)入etc目錄,打開(kāi)sysctl.conf文件,然后將以下內(nèi)容寫(xiě)入圖中位置:
kernel.shmall = 2097152kernel.shmmax = 1717986918kernel.shmmni= 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144
這些參數(shù)都可按照該列表填寫(xiě),在這些參數(shù)中的shmmax(紅色標(biāo)注)則有自己的計(jì)算方法:內(nèi)存以G為單位,將其換算成Byte單位在乘以80%,例如;2G內(nèi)存,換算公式為
2*1024*1024*1024*80%=1717986918
8.2、創(chuàng)建oracle安裝要求的用戶(hù)名和用戶(hù)組,并修改oracle用戶(hù)環(huán)境變量(即修改oracle用戶(hù)目錄下的.bash_profile文件)
8.2.1、在兩個(gè)節(jié)點(diǎn)中分別執(zhí)行如下groupadd oinstall、groupadd dba、useradd -m -g oinstall -G dba oracle命令,創(chuàng)建oracle用戶(hù),如圖
8.2.2、在各節(jié)點(diǎn)修改oracle環(huán)境變量, 以oracle用戶(hù)身份,打開(kāi).bash_profile文件將如下內(nèi)容添加到環(huán)境變量中,如圖
export ORACLE_BASE=/oradata export ORACLE_HOSTNAME=node1.localdomain export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=orcl export ORACLE_TERM=xterm export NLS_LANG=american_america.ZHS16GBK; export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH export PATH=$PATH:$ORACLE_HOME/bin
8.3、創(chuàng)建ORACLE安裝掛載點(diǎn)
在各oracle 安裝節(jié)點(diǎn)使用如下命令創(chuàng)建DRBD資源掛載點(diǎn),并修改掛載點(diǎn)屬組
[root@node1 ~]# cd / [root@node1 /]# mkdir oradata [root@node1 /]# chown -R oracle:oinstall oradata
8.4修改IP地址為浮動(dòng)IP并設(shè)置DEBD資源為primary
在安裝oracle10G2的機(jī)器上首先需要將IP地址及主機(jī)名修改為未來(lái)浮動(dòng)IP及主機(jī)名(這樣主要是為了未來(lái)雙機(jī)應(yīng)用時(shí)oracle能順利切換,并正常啟動(dòng)),執(zhí)行drbdadm primary oradata命令 設(shè)置DRBD資源為primary如圖:
執(zhí)行drbdadm role oradata查看狀態(tài),如圖:
8.5、掛載DRBD資源并修改資源屬組
執(zhí)行mount /dev/drbd0 /oradata命令掛載DRBD資源,如圖:
之后執(zhí)行mount命令查看信息,如圖
信息中出現(xiàn)/dev/drbd0 on /oradata type ext3 (rw)行,說(shuō)明資源掛載正常,之后執(zhí)行
chown -R oracle:oinstall oradata
命令修改oradata屬組,并使用ls -l查看信息,如圖:
8.6、安裝oracle10G2數(shù)據(jù)庫(kù)
具體可以查看其他文檔。
8.7、***配置
8.7.1、修改listenter.ora文件,添加如下內(nèi)容,解決雙機(jī)切換報(bào)監(jiān)聽(tīng)ORA-12514錯(cuò)誤問(wèn)題。
(SID_DESC = (GLOBAL_DBNAME =orcl) (ORACLE_HOME = /oradata/product/10.2.0/db_1) (SID_NAME = orcl)
如圖:
8.7.2、修改主機(jī)名為原節(jié)點(diǎn)主機(jī)名及IP。
8.7.3、終止在用oracle節(jié)點(diǎn)的各oracle進(jìn)程,并卸載掉oracle資源;
在另一節(jié)點(diǎn)中掛載資源并啟動(dòng)oracle應(yīng)用進(jìn)程并進(jìn)行測(cè)試。如果沒(méi)有問(wèn)題可進(jìn)行HA的配置。
9、heartbeat的配置
9.1、配置authkeys
這里我用隨機(jī)數(shù)來(lái)獲得密鑰,命令如下:
# (echo -ne "auth 1\n1 sha1 ";dd if=/dev/urandom bs=512 count=1 | openssl md5) > /etc/ha.d/authkeys # cat authkeys # chmod 600 /etc/ha.d/authkeys
效果如圖:
9.2、配置ha.cf
使用命令vi /etc/ha.d/ha.cf編輯配置文件,修改為如下內(nèi)容:
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 auto_failback none mcast eth0 239.0.0.43 694 1 0 udpport 694 bcast eth0 deadtime 30 initdead 30 keepalive 2 node node2.localdomain node node3.localdomain compression bz2 compression_threshold 2 crm respawn apiauth mgmtd uid=root respawn root /usr/lib/heartbeat/mgmtd -v
之后存盤(pán)退出。如圖
9.3、同步節(jié)點(diǎn)HA配置文件
執(zhí)行# /usr/share/heartbeat/ha_propagate命令,并安提示輸入同步節(jié)點(diǎn)主機(jī)root賬戶(hù)密碼,如圖
9.4、啟動(dòng)heartbeat
使用如下命令在兩節(jié)點(diǎn)上啟動(dòng)heartbeat :
#service heartbeat start
如圖:
9.5、配置DRBD+Oracle的HA資源。
9.5.1、執(zhí)行命令
# crm_attribute -t crm_config -n stonith-enabled -v false
或者
# crm configure property stonith-enabled="false"
關(guān)閉heartbeat的STONITH支持,避免啟用了stonith而集群中又沒(méi)有stonith資源時(shí),集群中的資源都是無(wú)法啟動(dòng)的問(wèn)題。
9.5.2、清空舊配置文件,以crm 交互方式提交如下命令:
# crm crm(live)# configure crm(live)configure# erase crm(live)configure# commit crm(live)configure# exit
清空舊配置文件。
9.5.3、關(guān)閉quorum
HA中有quorum的概念,即集群中必須有一半的節(jié)點(diǎn)處于online的狀態(tài),則集群被認(rèn)為是have quorum(可以認(rèn)為是達(dá)到合法節(jié)點(diǎn)數(shù)要求)。如果少于一半的節(jié)點(diǎn)在線,那么HA認(rèn)為集群達(dá)不到節(jié)點(diǎn)數(shù)要求,從而拒絕啟動(dòng)集群中的資源。 但是這種策略對(duì)于2個(gè)節(jié)點(diǎn)的集群明顯是不合理的,所以就會(huì)發(fā)生當(dāng)2個(gè)節(jié)點(diǎn)的集群其中一個(gè)節(jié)點(diǎn)失效時(shí)所有的集群都無(wú)法啟動(dòng)的情況。
同樣的,也關(guān)閉 STONITH,執(zhí)行以下兩條命令即可關(guān)閉quorun及STONITH支持
# crm configure property no-quorum-policy=ignore # crm configure property stonith-enabled="false"
9.5.3、使用pacemaker進(jìn)行HA資源配置
把DRBD設(shè)置為主備資源,其他oracle資源放在同一個(gè)組里面,并通過(guò)“順序”、“協(xié)同”等限制條件讓兩資源配合運(yùn)行。根據(jù)監(jiān)控的情況,加入 start 超時(shí)、monitor 間隔時(shí)間等操作。
進(jìn)入crm 交互模式:
# crm configure crm(live)configure#
然 后在configure狀態(tài)下輸入以下內(nèi)容:
primitive drbd_oracle ocf:linbit:drbd \ params drbd_resource="oradata" \ op monitor interval="15s" primitive fs_oracle ocf:heartbeat:Filesystem \ params device="/dev/drbd/by-res/oradata" directory="/oradata" fstype="ext3" primitive ip_oracle ocf:heartbeat:IPaddr2 \ params ip="10.109.1.37" nic="bond0" cidr_netmask="24" primitive oracle_instant ocf:heartbeat:oracle \ op monitor interval="120" timeout="30" \ op start interval="0" timeout="120" \ params sid="orcl" primitive oracle_lsnrctl ocf:heartbeat:oralsnr \ params sid="orcl" \ operations $id="oracle_lsnrctl-operations" \ op monitor interval="10" timeout="30" primitive route_oracle ocf:heartbeat:Route \ operations $id="route_oracle-operations" \ params destination="0.0.0.0/0" gateway="10.109.1.1" group group_oracle ip_oracle route_oracle fs_oracle oracle_lsnrctl oracle_instant \ meta target-role="Started" is-managed="true" ms ms_drbd_oracle drbd_oracle \ meta master-max="1" master-node-max="1" \ clone-max="2" clone-node-max="1" notify="true" colocation oracle_on_drbd inf: group_oracle ms_drbd_oracle:Master order oracle_after_drbd inf: ms_drbd_oracle:promote group_oracle:start
***用commit 提交即可。
※說(shuō)明:
a、根據(jù)DRBD官網(wǎng)的資料,ocf:heartbeat:drbd 已經(jīng)被丟棄,不建議使用,故用ocf:linbit:drbd 代替;
b、IP的設(shè)定RA,用ocf:heartbeat:IPaddr2,其用 ip 命令設(shè)定虛擬IP,虛擬IP生效后,用ifconfig命令看不到,可用ip addr 查看;
c、輸入上述命令時(shí),可能會(huì)提示警 告,start、stop的超時(shí)時(shí)間少于建議值等,這可根據(jù)應(yīng)用啟動(dòng)、停止的實(shí)際環(huán)境在“操作”中加入(可參考o(jì)racle_instant 資源);
d、 ms 是設(shè)置“主備資源”;
e、colocation 是設(shè)置“協(xié)同”限制,即group_oracle和ms_drbd_oracle必須在同一臺(tái)機(jī)器上運(yùn)行,并且若ms_drbd_oracle不能作為 Master運(yùn)行時(shí),不會(huì)運(yùn)行g(shù)roup_oracle,相反group_oracle的狀態(tài)不會(huì)影響ms_drbd_oracle;
g、 order 是設(shè)置“順序”限制,即先激活ms_drbd_oracle資源(把drbd設(shè)備設(shè)置為primary狀態(tài)),然后再啟動(dòng)group_oracle組資 源;
f、掛載操作中,/dev/drbd/by-res/oradata是為了方便使用,由drbd創(chuàng)建的一個(gè)指向/dev/drbd0的鏈接;
h、 如果您輸入的命令比較長(zhǎng),可以用“\”調(diào)到下一行繼續(xù),但是必須注意,下一行前面的空白只能用空格,不能用Tab等字符。
配置提交后,兩資源會(huì)自動(dòng)運(yùn)行(根據(jù)全局配置,有延遲),也可手動(dòng)使用如下命令啟動(dòng)資源:
# crm resource start group_oracle
9.6、HA的管理命令
9.6.1、查看HA狀態(tài),執(zhí)行如下命令:
# crm status
執(zhí)行效果如圖:
9.6.2、手動(dòng)切換,執(zhí)行如下命令
# crm resource migrate group_oracle node2.localdomain
如圖
切機(jī)前資源均在node3.localdomain上,執(zhí)行命令后再次執(zhí)行crm status命令可以看到資源已經(jīng)全部被node2.localdomain接管。如圖
9.7、維護(hù)
有時(shí)候,我們需要對(duì)當(dāng)前主機(jī)進(jìn)行維護(hù),這時(shí),可先把資源遷移到備機(jī)上,然后把主機(jī)設(shè)置為“非管理”的 standby狀態(tài),如圖:
使用鼠標(biāo)點(diǎn)擊圖中standby即可將選中主機(jī)設(shè)置為“非管理”狀態(tài),如圖:
之后,就可以把主機(jī)上的heartbeat服務(wù)關(guān)掉,甚至關(guān)閉該機(jī)器或進(jìn)行維護(hù)的工作。
關(guān)于“RHEL 5.5+DRBD+heartbeat+Oracle10R2雙機(jī)安裝的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
新聞名稱(chēng):RHEL5.5+DRBD+heartbeat+Oracle10R2雙機(jī)安裝的示例分析
瀏覽路徑:http://aaarwkj.com/article26/goosjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、域名注冊(cè)、服務(wù)器托管、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)