日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

利用Oracle CRS搭建應(yīng)用的高可用集群

系統(tǒng) 1962 0

前言:CRS的簡(jiǎn)介和由來(lái)

從Oracle 10gR1 RAC 開(kāi)始,Oracle推出了自身的集群軟件,這個(gè)軟件的名稱(chēng)叫做Oracle Cluster Ready Service(Oracle集群就緒服務(wù)),簡(jiǎn)稱(chēng)CRS。從Oracle 10gR2開(kāi)始,包括最新的11g,Oracle將其更名為Clusterware(集群件),但通常意義上我們認(rèn)為CRS = Clusterware = Oracle Cluster Ready Service = Oracle Cluster Software.

CRS一般用來(lái)搭建Oracle的并行數(shù)據(jù)庫(kù),即RAC,但除了與RAC的接口之外,CRS還提供了一組高可用性的應(yīng)用程序接口(API),用來(lái)搭建一般應(yīng)用程序的高可用集群,即一般我們常說(shuō)的雙機(jī)熱備,比如使用CRS實(shí)現(xiàn)MySQL的雙機(jī)熱備。
這種主備模式的雙機(jī)熱備還可以包括許多第三方的應(yīng)用程序,比如虛擬IP、磁盤(pán)組、文件系統(tǒng)、MySQL數(shù)據(jù)庫(kù)、Apache,或者單節(jié)點(diǎn)的Oracle實(shí)例,或者單節(jié)點(diǎn)的ASM,等等,都可以作為資源注冊(cè)到CRS中去,由CRS來(lái)啟動(dòng),關(guān)閉,監(jiān)測(cè)應(yīng)用程序的狀態(tài),還可以設(shè)置應(yīng)用程序相互的依賴(lài)關(guān)系,保證多組資源正確的啟動(dòng)順序。

本文就以保護(hù)單節(jié)點(diǎn)oracle實(shí)例為例,演示如何使用CRS來(lái)實(shí)現(xiàn)上述功能。使用的主要的軟件有:Solaris 10u4, Oracle CRS 10.2.0.2 , Oracle RDMBS 10.2.0.3, VxVM 5.0 ,磁盤(pán)陣列型號(hào)是AMS1000。

系統(tǒng)拓?fù)鋱D大致如下:
利用Oracle CRS搭建應(yīng)用的高可用集群

主要操作步驟如下:

一、準(zhǔn)備工作:軟件安裝,數(shù)據(jù)庫(kù)創(chuàng)建

1.安裝Solaris 10, Veritas Volume Manager ,安裝過(guò)程略
2.創(chuàng)建用戶組dba/oinstall,oracle用戶,并修改相應(yīng)profile和/etc/hosts文件
修改rhosts文件,配置oracle用戶的對(duì)等連接;
連接心跳網(wǎng)線;
如果生產(chǎn)環(huán)境中推薦心跳網(wǎng)絡(luò)使用千兆,推薦每臺(tái)機(jī)器有兩塊網(wǎng)卡分別連接兩個(gè)網(wǎng)絡(luò)交換機(jī);
在操作系統(tǒng)中啟動(dòng)心跳網(wǎng)卡;
準(zhǔn)備共享磁盤(pán),這里使用的是SAN環(huán)境下的共享盤(pán)ams_wms0_0098,大小為20G;

3.下面使用靜默方式來(lái)安裝Oracle集群軟件、數(shù)據(jù)庫(kù)軟件
這種安裝創(chuàng)建方式的優(yōu)點(diǎn)是創(chuàng)建速度比較快,并且不需要運(yùn)行圖形界面,適合遠(yuǎn)程安裝和建庫(kù);
缺點(diǎn)是不直觀,需要手工編寫(xiě)響應(yīng)文件;
這一步CRS的安裝只需要在一個(gè)節(jié)點(diǎn)上做:
oracle@rac01$. ./clusterware/runInstaller -silent -responsefile /tmp/shahand/crs.rsp
crs.rsp 文件內(nèi)容參考“五-7”部分

CRS的runInstaller運(yùn)行完畢以后,要手工在兩個(gè)節(jié)點(diǎn)上運(yùn)行root.sh,
并要手工運(yùn)行$CRS_HOME/cfgtoollogs/configToolAllCommands

檢查CRS安裝配置正確:

    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> root @rac01 #crs_stat - t Name Type Target State Host -- ---------------------------------------------------------- ora....c01.gsd application ONLINE ONLINE rac01 ora....c01.ons application ONLINE ONLINE rac01 ora....c01.vip application ONLINE ONLINE rac01 ora....c02.gsd application ONLINE ONLINE rac02 ora....c02.ons application ONLINE ONLINE rac02 ora....c02.vip application ONLINE ONLINE rac02

檢查設(shè)置了正確的心跳網(wǎng)絡(luò):
root@rac01 # $CRS_HOME/bin/oifcfg getif
e1000g0 10.198.88.0 global public
e1000g1 192.168.2.0 global cluster_interconnect

使用靜默方式安裝Oracle 數(shù)據(jù)庫(kù)軟件,這一步兩個(gè)節(jié)點(diǎn)都要做:
./runInstaller -silent -responsefile /tmp/shahand/db.rsp
db.rsp 文件內(nèi)容參考“五-8”部分

4.創(chuàng)建oracle數(shù)據(jù)庫(kù)文件所需要的盤(pán)組、邏輯卷、文件系統(tǒng)、掛載文件系統(tǒng)并設(shè)置權(quán)限;
只需要在一個(gè)節(jié)點(diǎn)上做;

    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> root @rac01 # vxdisksetup - i ams_wms0_0098 root @rac01 # vxdg init oradata12 ams_wms0_0098 root @rac01 # vxassist - g oradata12 make oradata 18G root @rac01 # vxedit - g oradata12 set user = oracle group = dba mode = 644 oradata root @rac01 # timex mkfs - F vxfs / dev / vx / rdsk / oradata12 / oradata version 7 layout 37748736 sectors, 18874368 blocks of size 1024 , log size 65536 blocks largefiles supported real 10.30 user 0.07 sys 0.04 root @rac01 # mount - F vxfs - o largefiles / dev / vx / dsk / oradata12 / oradata / oradata root @rac01 # chown oracle:dba / oradata root @rac01 # df - h / oradata / Filesystem size used avail capacity Mounted on / dev / vx / dsk / oradata12 / oradata 18G 70M 17G 1 % / oradata

5.靜默方式創(chuàng)建oracle數(shù)據(jù)庫(kù),只需要一個(gè)節(jié)點(diǎn)上做:

    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> oracle @rac01 $ dbca - silent - createDatabase - sid orcl - sysPassword sys - systemPassword sys / - datafileDestination / oradata - gdbName orcl - templateName General_Purpose.dbc Copying database files 1 % complete 3 % complete 11 % complete 18 % complete 26 % complete 37 % complete Creating and starting Oracle instance 40 % complete 45 % complete 50 % complete 55 % complete 56 % complete 60 % complete 62 % complete Completing Database Creation 66 % complete 70 % complete 73 % complete 85 % complete 96 % complete 100 % complete

手工檢查數(shù)據(jù)庫(kù)orcl的狀態(tài),可以登陸數(shù)據(jù)庫(kù)select status from v$instance查看。

二、Oracle 集群軟件資源的手工注冊(cè)

1. 注銷(xiāo)crs本身自帶的ons、gsd、vip資源

root@rac01 # crs_stop -all
Attempting to stop `ora.rac01.gsd` on member `rac01`
Attempting to stop `ora.rac01.ons` on member `rac01`
Attempting to stop `ora.rac02.gsd` on member `rac02`
Attempting to stop `ora.rac02.ons` on member `rac02`
Stop of `ora.rac02.gsd` on member `rac02` succeeded.
Stop of `ora.rac02.ons` on member `rac02` succeeded.
Stop of `ora.rac01.gsd` on member `rac01` succeeded.
Stop of `ora.rac01.ons` on member `rac01` succeeded.
Attempting to stop `ora.rac01.vip` on member `rac01`
Attempting to stop `ora.rac02.vip` on member `rac02`
Stop of `ora.rac02.vip` on member `rac02` succeeded.
Stop of `ora.rac01.vip` on member `rac01` succeeded.

root@rac01 # crs_unregister ora.rac01.gsd
root@rac01 # crs_unregister ora.rac01.ons
root@rac01 # crs_unregister ora.rac01.vip
root@rac01 # crs_unregister ora.rac02.vip
root@rac01 # crs_unregister ora.rac02.ons
root@rac01 # crs_unregister ora.rac02.gsd
root@rac01 # crs_stat -t
CRS-0202: No resources are registered.

2.創(chuàng)建虛擬IP資源:

root@rac01 # crs_profile -create havip -t application -a /oracle/crs/bin/usrvip /
-o oi=e1000g0,ov=10.198.94.139,on=255.255.248.0
root@rac01 # crs_register havip
root@rac01 # crs_setperm havip -o root
root@rac01 # crs_setperm havip -u user:oracle:r-x
root@rac01 # crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ha_vip application 0/1 0/0 OFFLINE OFFLINE
root@rac01 # crs_start havip
root@rac01 # crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
havip application 0/1 0/0 ONLINE ONLINE rac01


3.準(zhǔn)備控制其他資源啟動(dòng)、關(guān)閉、檢查的腳本文件dg.sh/fs.sh/db.sh/lsnr.sh
這四個(gè)腳本文件內(nèi)容參考“五-3/4/5/6”部分

對(duì)crs_profile命令中的選項(xiàng)和參數(shù)做簡(jiǎn)單說(shuō)明:
(1) 選項(xiàng)-r定義了該資源所依賴(lài)的資源,在下面的例子中,資源oradata_mount啟動(dòng)時(shí)依賴(lài)于
disk_group先 啟動(dòng),需要停止disk_group的時(shí)候必須先停止資源oradata_mount,
資源orcl_db的啟動(dòng)則同時(shí)依賴(lài)于oradata_mount/disk_group/havip/listener;
(2) 參數(shù)-o 包括:ci的意思是crs對(duì)資源狀態(tài)的監(jiān)測(cè)間隔(check interval),單位為秒;
ra : crs重啟資源的嘗試次數(shù),RESTART_ATTEMPTS,次數(shù)到達(dá)以后將重新分配;
fi : 資源狀態(tài)出現(xiàn)錯(cuò)誤以后,crs的嘗試間隔,F(xiàn)AILURE_INTERVAL,單位是秒;
ft : 資源狀態(tài)出現(xiàn)錯(cuò)誤以后,crs的嘗試次數(shù),F(xiàn)AILURE_THRESHOLD;
這些參數(shù)可以使用默認(rèn)值,分別是60秒/1/0秒/0。
(3) 參數(shù)-a 是指ACTION_SCRIPT,參數(shù)值為資源啟動(dòng)、關(guān)閉、監(jiān)測(cè)的腳本,腳本固定的三個(gè)參數(shù)為
start/stop/check;

管理數(shù)據(jù)庫(kù)監(jiān)聽(tīng)的部分:

修改$ORACLE_HOME/network/admin/listener.ora文件,
將其中(HOST = rac01 )部分修改成(HOST = 10.198.94.139 ) (虛擬IP地址)

crs_profile -create listener -t application -a /oracle/crs/crs/public/lsnr.sh -r havip -o /
ci=180,ra=6,ft=2,fi=12
crs_register listener
crs_setperm listener -o root
crs_setperm listener -u user:oracle:r-x
crs_start listener

管理磁盤(pán)組和邏輯卷的部分:

crs_profile -create disk_group -t application -a /oracle/crs/crs/public/dg.sh -r havip -o /
ci=180,ra=6,ft=2,fi=12
crs_register disk_group
crs_setperm disk_group -o root
crs_setperm disk_group -u user:oracle:r-x

注:本身磁盤(pán)組的啟動(dòng)并不依賴(lài)于虛擬IP的啟動(dòng),這里之所以設(shè)置兩者的依賴(lài)關(guān)系,
是為了防止虛擬IP在一個(gè)節(jié)點(diǎn)啟動(dòng),而磁盤(pán)組在另外一個(gè)節(jié)點(diǎn)啟動(dòng),造成資源不一致的情況出現(xiàn)。

管理文件系統(tǒng)的部分:

crs_profile -create oradata_mount -t application -a /oracle/crs/crs/public/fs.sh -r disk_group -o /
ci=180,ra=6,ft=2,fi=12
crs_register oradata_mount
crs_setperm oradata_mount -o root
crs_setperm oradata_mount -u user:oracle:r-x

管理數(shù)據(jù)庫(kù)實(shí)例的部分:

crs_profile -create orcl_db -t application -a /oracle/crs/crs/public/db.sh -r /
"oradata_mount listener" -o ci=180,ra=6,ft=2,fi=12
crs_register orcl_db
crs_setperm orcl_db -o root
crs_setperm orcl_db -u user:oracle:r-x
crs_start orcl_db

4.確保腳本具有執(zhí)行屬性,并把public 和profile的內(nèi)容拷到第二個(gè)節(jié)點(diǎn)上。
# chmod +x /oracle/crs/crs/public/*
# rcp -r -p /oracle/crs/crs/public/* rac02:/oracle/crs/crs/public/

5.啟動(dòng)所有的資源
下面可以看到,在crs啟動(dòng)和關(guān)閉資源的過(guò)程中,其順序是按照前面定義的資源依賴(lài)關(guān)系進(jìn)行的:

root@rac01 # crs_stop -all
Attempting to stop `orcl_db` on member `rac01`
Stop of `orcl_db` on member `rac01` succeeded.
Attempting to stop `oradata_mount` on member `rac01`
Stop of `oradata_mount` on member `rac01` succeeded.
Attempting to stop `disk_group` on member `rac01`
Stop of `disk_group` on member `rac01` succeeded.
Attempting to stop `listener` on member `rac01`
Stop of `listener` on member `rac01` succeeded.
Attempting to stop `havip` on member `rac01`
Stop of `havip` on member `rac01` succeeded.

root@rac01 # crs_start -all
Attempting to start `havip` on member `rac01`
Start of `havip` on member `rac01` succeeded.
Attempting to start `listener` on member `rac01`
Start of `listener` on member `rac01` succeeded.
Attempting to start `disk_group` on member `rac01`
Start of `disk_group` on member `rac01` succeeded.
Attempting to start `oradata_mount` on member `rac01`
Start of `oradata_mount` on member `rac01` succeeded.
Attempting to start `orcl_db` on member `rac01`
Start of `orcl_db` on member `rac01` succeeded.

檢查資源狀態(tài)是否正常:

oracle@rac01 $ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
disk_group application ONLINE ONLINE rac01
havip application ONLINE ONLINE rac01
listener application ONLINE ONLINE rac01
oradata_mount application ONLINE ONLINE rac01
orcl_db application ONLINE ONLINE rac01

三、Oracle 集群軟件的資源的管理

1.如果需要修改資源的屬性,使用crs_profile -update 選項(xiàng);具體例子可以參見(jiàn)五-1的錯(cuò)誤二;
2.如果資源的狀態(tài)為UNKNOWN,要對(duì)該資源進(jìn)行關(guān)閉,使用crs_stop的命令的時(shí)候需要加入-f參數(shù);
3.使用crs_profile -print <resource_name> 來(lái)查看資源的屬性情況,包括依賴(lài)關(guān)系等等,
同樣也可以使用crs_stat -p <resource_name> 來(lái)實(shí)現(xiàn);
4.關(guān)于CRS的日志:主要在$CRS_HOME/log/node_name目錄下,但需要提醒的是,系統(tǒng)日志中也會(huì)有
比較重要的日志信息,比如Solaris下的/var/adm/messages、linux一般在/var/log/messages ,
HPUX則是/var/adm/syslog/syslog.log文件;
5.啟動(dòng)、關(guān)閉、和查看crs資源的命令分別為crs_start 和crs_stop 和crs_stat,
每個(gè)命令都可以使用-H參數(shù)得到相應(yīng)語(yǔ)法;
也可以使用stvctl start nodeapps -n rac1命令;

四、對(duì)集群軟件進(jìn)行測(cè)試
1.手工切換節(jié)點(diǎn):
在任意節(jié)點(diǎn)上依次使用下面的命令,以oracle或者root執(zhí)行均可,只要配置正確的$PATH環(huán)境變量
crs_stop -all;
crs_start havip -c rac02;
crs_start listener -c rac02;
crs_start disk_group -c rac02;
crs_start oradata_mount -c rac02;
crs_start orcl_db -c rac02;
然后,登陸到rac02(現(xiàn)在為主節(jié)點(diǎn))使用df -h /oradata 檢查共享盤(pán)是否掛載,
使用ps -ef|grep ora_檢查到oracle啟動(dòng),檢查后臺(tái)報(bào)警日志中沒(méi)有錯(cuò)誤信息,

2.自動(dòng)切換:

手工模擬主節(jié)點(diǎn)的故障情況:使用reboot命令
root@rac01 # reboot

Jan 8 14:53:57 rac01 reboot: [ID 662345 auth.crit] rebooted by root

從日志中看到備用節(jié)點(diǎn)rac02上的crs感應(yīng)到了主節(jié)點(diǎn)的失敗,并接管相關(guān)服務(wù):

2008-01-08 14:30:33.929: [ CRSMAIN][1] Starting Threads
2008-01-08 14:30:33.929: [ CRSMAIN][1] CRS Daemon Started.
2008-01-08 14:52:18.777: [ CRSEVT][71] Processing member leave for rac01, incarnation: 2
2008-01-08 14:52:18.878: [ CRSEVT][71] Do failover for: rac01
2008-01-08 14:52:42.180: [ CRSRES][73] startRunnable: setting CLI values
2008-01-08 14:52:42.193: [ CRSRES][73] Attempting to start `disk_group` on member `rac02`
2008-01-08 14:52:45.722: [ CRSRES][73] Start of `disk_group` on member `rac02` succeeded.
2008-01-08 14:52:45.731: [ CRSRES][73] startRunnable: setting CLI values
2008-01-08 14:52:45.732: [ CRSRES][73] Attempting to start `oradata_mount` on member `rac02`
2008-01-08 14:52:45.986: [ CRSRES][73] Start of `oradata_mount` on member `rac02` succeeded.
2008-01-08 14:52:46.013: [ CRSRES][73] startRunnable: setting CLI values
2008-01-08 14:52:46.015: [ CRSRES][73] Attempting to start `orcl_db` on member `rac02`
2008-01-08 14:53:31.486: [ CRSRES][73] Start of `orcl_db` on member `rac02` succeeded.
2008-01-08 14:53:31.487: [ CRSEVT][71] Post recovery done evmd event for: rac01
2008-01-08 14:53:31.603: [ CRSEVT][75] Processing RecoveryDone

然后再登陸rac02,查看文件系統(tǒng)是否掛載,確認(rèn)數(shù)據(jù)狀態(tài)正常。

from:【IT168】

http://tech.it168.com/d/2008-01-31/200801311012828.shtml

利用Oracle CRS搭建應(yīng)用的高可用集群


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 彩票| 二手房| 温州市| 福泉市| 汕尾市| 皋兰县| 清河县| 余姚市| 宜丰县| 杭州市| 静海县| 胶南市| 当阳市| 宾阳县| 祁阳县| 晋宁县| 睢宁县| 乌鲁木齐县| 全南县| 西峡县| 榆中县| 兴文县| 凤翔县| 合水县| 罗甸县| 揭阳市| 台北县| 固安县| 广汉市| 柞水县| 凌源市| 澄城县| 万州区| 邢台县| 岚皋县| 康定县| 武定县| 金门县| 蓬溪县| 余干县| 如皋市|