本篇內(nèi)容介紹了“oracle11g rac的體系結(jié)構(gòu)是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)制作、做網(wǎng)站、建網(wǎng)站。成都創(chuàng)新互聯(lián)公司擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺設(shè)計(jì)專才。
OCR是保存CRSD所有管理資源的注冊(cè)表,但是在crsd啟動(dòng)之前,還有很多初始化資源沒有啟動(dòng),所以11g版本中推出了OLR
OLR是保存在本地的集群注冊(cè)表 ,作用是為ohasd提供集群的配置信息和初始化資源的信息--(當(dāng)OHAS啟動(dòng)的時(shí)候,從/etc/oracle/olr.loc文件中讀取olr文件)
OLR 可以通過ocrconfig -local -manualbackup進(jìn)行備份
./ocrconfig -local -restore進(jìn)行恢復(fù)
./ocrcheck -local進(jìn)行一致性檢查
1.oraagent-------這個(gè)進(jìn)程以O(shè)racle或者grid用戶啟動(dòng),負(fù)責(zé)管理oralce或者grid用戶的資源
其中ohasd只會(huì)啟動(dòng)oraagent_grid --包括資源為 ora.gipcd ora.gpnpd ora.mDNSd ora.evmd ora.asm
mdns -- 和dns的功能類似,提供主機(jī)名到ip的映射(基本特性:小型私有網(wǎng)絡(luò)提供民稱解析服務(wù),使用多播發(fā)送信息,UDP協(xié)議,主機(jī)名以.local結(jié)尾),在rac中主要為gpnpd和Ohasd提供resource discovery(資源發(fā)現(xiàn)服務(wù))
gpnpd -- grid plug and play ,將集群的基本信息保存在本地,并通過和mdnsd通訊,靈活識(shí)別集群中的其他節(jié)點(diǎn)。gpnp分為gpnp wallet(訪問profile的客戶簽名) gpnp profile(保存啟動(dòng)集群節(jié)點(diǎn)的必須信息) gpnp守護(hù)進(jìn)程 (gpnp主線程,push線程,派遣線程,ocr線程),當(dāng)集群重要配置信息發(fā)生變化時(shí):本地派遣線程通知遠(yuǎn)程節(jié)點(diǎn)派遣進(jìn)程--> 本地push進(jìn)程推送gpnp profile給遠(yuǎn)程進(jìn)程--> 遠(yuǎn)程派遣進(jìn)程接收新版本gpnp pfofile 當(dāng)集群?jiǎn)?dòng)時(shí):gpnp主線程訪問gpnp profile,并加載到cache中打開,如丟失,則從olr中恢復(fù)---> 派遣線程向所有遠(yuǎn)程節(jié)點(diǎn)發(fā)送信息確認(rèn)最新版本gpnp profile位置 --> 擁有最新版本的節(jié)點(diǎn)向該節(jié)點(diǎn)發(fā)送gpnp profile --->本地節(jié)點(diǎn)收到gpnp profile后開始提供服務(wù)
gipcd --確保集群網(wǎng)卡的一致性,不負(fù)責(zé)傳遞的信息--HAIP負(fù)責(zé)傳遞信息(1.當(dāng)集群?jiǎn)?dòng)時(shí),發(fā)現(xiàn)私網(wǎng)網(wǎng)卡 2. 通過集群私網(wǎng)發(fā)現(xiàn)其他節(jié)點(diǎn)并建立聯(lián)系 3. 如果有多塊網(wǎng)卡,當(dāng)其中一塊有問題,離線他并通知其他幾點(diǎn),反之恢復(fù)亦然)
啟動(dòng)過程--》 gipcd守護(hù)進(jìn)程啟動(dòng)--》嘗試訪問gpnpd 獲取遠(yuǎn)程節(jié)點(diǎn)信息并與其通訊 --》發(fā)現(xiàn)本地私網(wǎng)信息--》發(fā)現(xiàn)遠(yuǎn)程節(jié)點(diǎn) -->連接建立
2.orarootagent-------以root用戶啟動(dòng),管理root用戶的資源
ohasd啟動(dòng)的資源為 ora.diskmon ora.ctssd ora.crsd ora.driver.acfs ora.cluster_interconnect.haip ora.crf
ctssd --> cluster time synchronize service 同步節(jié)點(diǎn)之間時(shí)間 (老版本使用ntp后者wts容易出現(xiàn)問題),工作方式(選擇一個(gè)參考節(jié)點(diǎn),其他節(jié)點(diǎn)參考這個(gè)節(jié)點(diǎn)的時(shí)間)(如果有其他時(shí)間同步工具如ntp(注意如果有配置文件也會(huì)認(rèn)為存在同步工具),則使用觀察模式工作,觀察模式下不會(huì)修改系統(tǒng)時(shí)間,如果沒有其他時(shí)間同步工具,則以active模式工作,會(huì)緩慢自動(dòng)同步節(jié)點(diǎn)之間時(shí)間信息)
3.cssdagent----負(fù)責(zé)啟動(dòng)ocssd.bin進(jìn)程,之后負(fù)責(zé)監(jiān)控ocssd.bin守護(hù)進(jìn)程
ocssd守護(hù)進(jìn)程每秒鐘都向 cssdagent和cssdmonitor注冊(cè)自己的狀態(tài)信息同時(shí)如果有異常會(huì)進(jìn)行異常處理
4.cssdmonitor------只負(fù)責(zé)監(jiān)控Ocssd.bin守護(hù)進(jìn)程
ocssd守護(hù)進(jìn)程每秒鐘都向 cssdagent和cssdmonitor注冊(cè)自己的狀態(tài)信息同時(shí)如果有異常會(huì)進(jìn)行異常處理
1.HAIP
對(duì)于Oracle數(shù)據(jù)庫(kù)集群,私網(wǎng)之間的通訊是十分十分重要的,私網(wǎng)之前的通訊主要分為集群之前和數(shù)據(jù)庫(kù)實(shí)例之前的通訊,集群之間的通訊十分簡(jiǎn)單,使用簡(jiǎn)單的tcp/ip協(xié)議即可,但是數(shù)據(jù)庫(kù)實(shí)例之間的通訊十分龐大,而且數(shù)據(jù)實(shí)時(shí)性要求也很高,單純的tcp/ip不能滿足,需要UDP或者RDS,同時(shí)需要配置高可用和負(fù)載均衡。
HAIP出現(xiàn)是因?yàn)樵鹊臄?shù)據(jù)庫(kù)對(duì)私網(wǎng)的高可用和負(fù)載均衡處理大多數(shù)依賴于操作系統(tǒng)層面配置的linux bonding等,oracle數(shù)據(jù)庫(kù)為了解決這個(gè)問題,于是提出了HAIP
什么是HAIP,HAIP是數(shù)據(jù)庫(kù)自動(dòng)在每一個(gè)私網(wǎng)網(wǎng)卡上綁定一個(gè)169.254.*.*的IP地址,這個(gè)IP地址被稱為HAIP,而Oracle數(shù)據(jù)庫(kù)實(shí)例之間的通訊則會(huì)通過這個(gè)Ip地址進(jìn)行通訊,,當(dāng)某一個(gè)私有網(wǎng)卡出現(xiàn)問題時(shí),則會(huì)將這個(gè)私網(wǎng)的ip地址自動(dòng)漂移到正常的私網(wǎng)網(wǎng)卡上,這樣,實(shí)現(xiàn)了私網(wǎng)的高可用
2.CHM
chm是oracle提供的一個(gè)工具,用來收集操作系統(tǒng)資源(cpu mem swap proc i/o network)的統(tǒng)計(jì)信息,chm會(huì)以ora.crf進(jìn)程存在于每一個(gè)節(jié)點(diǎn)上。chm主要用來收集和預(yù)防一些由于系統(tǒng)異常導(dǎo)致的rac節(jié)點(diǎn)問題
chm和oswatcher的對(duì)比----實(shí)時(shí)性更強(qiáng),但是保留時(shí)間沒有oswatcher強(qiáng),同時(shí)功能也比不上oswatcher。
chm組成
1.chm repository----一個(gè)berkeley數(shù)據(jù)庫(kù),存儲(chǔ)各個(gè)節(jié)點(diǎn)收集到的操作系統(tǒng)統(tǒng)計(jì)信息,存放在/gi_home/crf/db/節(jié)點(diǎn)名下,默認(rèn)大小為1G,最大保留時(shí)間為3天
2.system monitor service -- 以osysmond.bin形式存在于每個(gè)節(jié)點(diǎn),負(fù)責(zé)收集每個(gè)節(jié)點(diǎn)信息并將信息發(fā)送到主節(jié)點(diǎn)服務(wù)器上
3.cluster logger service ----以守護(hù)進(jìn)程 ologgerd的形式存在于主節(jié)點(diǎn)和副節(jié)點(diǎn)上,主節(jié)點(diǎn)負(fù)責(zé)接收所有節(jié)點(diǎn)的信息,并記錄到主節(jié)點(diǎn)的chm repository 中,副節(jié)點(diǎn)的ologgerd則接收來自于主節(jié)點(diǎn)的信息,記錄到副節(jié)點(diǎn)的chm repostiory中
CSS啟動(dòng)過程--構(gòu)建集群
1.ohasd守護(hù)進(jìn)程啟動(dòng),并啟動(dòng)對(duì)應(yīng)的代理進(jìn)程(包括css的oracssdagent_root)--> 2. oracssdagent_root啟動(dòng) ocssd.bin進(jìn)程 --> 3. ocssd.bin訪問gpnpd.bin,獲取構(gòu)建集群的基本信息,訪問gipcd.bin獲取遠(yuǎn)程節(jié)點(diǎn)的信息 --> 4. 和遠(yuǎn)程節(jié)點(diǎn)通訊,并通過訪問VF和租借快獲取本地節(jié)點(diǎn)的編號(hào),加入集群
集群心跳機(jī)制---維護(hù)集群一致性
1. 如何維護(hù)集群的一致性-->1.確認(rèn)節(jié)點(diǎn)間的聯(lián)通性 2.共享位置保存節(jié)點(diǎn)連通信息 3.本地節(jié)點(diǎn)自我監(jiān)控
2.維護(hù)集群的三種心跳
3.常用術(shù)語
VD/VF 保存每個(gè)節(jié)點(diǎn)的磁盤心跳信息,以及每個(gè)節(jié)點(diǎn)能看到的節(jié)點(diǎn)列表,在腦裂時(shí)判斷節(jié)點(diǎn)的狀態(tài)以及判斷節(jié)點(diǎn)應(yīng)該離開集群還是alive,同時(shí)VF中還保留了下面的信息 1.租借塊 lease block 2.kill block
OCR oracle cluster register 記錄crsd相關(guān)的信息
misscount 網(wǎng)絡(luò)心跳超時(shí)時(shí)間,默認(rèn)是30s,也是本地心跳的超時(shí)時(shí)間
LIOT long i/o timeout 磁盤心跳的超時(shí)時(shí)間,默認(rèn)是200s,
SIOT short i/o timeout 節(jié)點(diǎn)在重新配置時(shí)對(duì)VF的i/o超時(shí)時(shí)間,默認(rèn)是misscount-reboottime=30-3=27s
重新配置主節(jié)點(diǎn) 當(dāng)集群中的節(jié)點(diǎn)數(shù)量發(fā)生變化時(shí),會(huì)有一個(gè)節(jié)點(diǎn)用于完成這次的重新配置,通常最小的節(jié)點(diǎn)號(hào)會(huì)作為主節(jié)點(diǎn)
reboot time 集群要求OS完成的重啟時(shí)間,默認(rèn)為3S
diagwait 指定oprocd進(jìn)程的margin時(shí)間,
incarnation 集群的最新狀態(tài),集群每一次重新配置,這個(gè)值增加1
用來確認(rèn)集群之前的連通性 ocssd進(jìn)程每秒鐘通過私網(wǎng)會(huì)向集群的其他節(jié)點(diǎn)發(fā)送網(wǎng)絡(luò)心跳
丟失網(wǎng)絡(luò)心跳進(jìn)行重新配置過程 1.當(dāng)某個(gè)節(jié)點(diǎn)連續(xù)一段時(shí)間丟失網(wǎng)絡(luò)心跳后,超過集群的miscount值后,分析線程發(fā)起集群重新配置 2. 重新配置線程管理節(jié)點(diǎn)向集群中所有節(jié)點(diǎn)發(fā)送重新配置消息,所有收到此消息的節(jié)點(diǎn)回復(fù)自己的狀態(tài)
3.重新配置線程管理節(jié)點(diǎn)根據(jù)狀態(tài)確認(rèn)是否會(huì)有腦裂發(fā)生----如果網(wǎng)絡(luò)心跳異常但是磁盤心跳正常,則判斷會(huì)發(fā)生腦裂,會(huì)向VD寫入kill block信息,當(dāng)網(wǎng)絡(luò)心跳異常的節(jié)點(diǎn)讀取到后會(huì)對(duì)本節(jié)點(diǎn)進(jìn)行重啟
當(dāng)集群腦裂時(shí)確認(rèn)腦裂的解決方案 ,oracle建議設(shè)置奇數(shù)個(gè)VF磁盤,當(dāng)節(jié)點(diǎn)無法訪問某個(gè)VD,只要能訪問的磁盤總數(shù)為n/2 + 1 即可
oracle發(fā)送網(wǎng)絡(luò)心跳的時(shí)候還會(huì)向cssdagent和cssdmonitor發(fā)送本地心跳,如果本地心跳沒有問題,則認(rèn)為cssd.bin正常--oprocd中記錄hang信息
NM和GM 指得是node management 和 group management ,上面的內(nèi)容都是NM,接下來是GM的主要內(nèi)容
GM的概念 -- > 1.組 group 一組成員和他們的資源組成的整體 2. 成員 member 能夠獨(dú)立運(yùn)行的一個(gè)實(shí)體(主成員和共享成員-->主成員負(fù)責(zé)監(jiān)控集群并在變化時(shí)進(jìn)行相應(yīng)的操作,共享成員是他的擴(kuò)展) 3. GM master 當(dāng)組成員發(fā)生變化時(shí),由master完成重新配置
1.共享 每個(gè)組有若干個(gè)成員祖冊(cè),每個(gè)組或者組成員還需要向外面共享一些信息----1.集群中的數(shù)據(jù)庫(kù)作為一個(gè)組注冊(cè)到css上,主要成員是LMON進(jìn)程,當(dāng)LMON進(jìn)程啟動(dòng)時(shí),需要注冊(cè)到css上,css才知道這個(gè)數(shù)據(jù)庫(kù)的具體信息,這個(gè)是組內(nèi)共享 2.ASM進(jìn)程啟動(dòng)也會(huì)注冊(cè)到css上,并把信息共享出去供數(shù)據(jù)庫(kù)實(shí)例發(fā)現(xiàn),這就是組間共享
2.隔離 當(dāng)組中的某一個(gè)成員離開時(shí),gm需要保證這個(gè)組的成員在OS級(jí)別的離開,既所有進(jìn)程和io都清理
1. member kill escalation 成員終止升級(jí)
當(dāng)rac中需要終止某個(gè)成員時(shí),例如二節(jié)點(diǎn)的LMON進(jìn)程(二節(jié)點(diǎn)的數(shù)據(jù)庫(kù)實(shí)例),步驟如下
rac通過GM去嘗試終止LMON,如果終止完成,則返回終止完成的信息,如果終止失敗,則升級(jí)為NM層面,通過NM來重啟節(jié)點(diǎn)保證集群的一致性
2.rebootless restart
當(dāng)出現(xiàn)下面情況時(shí),集群不會(huì)直接重啟節(jié)點(diǎn),而是重啟集群管理軟件
1.當(dāng)節(jié)點(diǎn)丟失網(wǎng)絡(luò)心跳超過misscount 2.當(dāng)節(jié)點(diǎn)不能訪問大多數(shù)的VD 3.MEMBER KILL 升級(jí)為NODE KILL 既發(fā)生上面無法通過GM終止進(jìn)程
目前先更新到這,后面將會(huì)更新crs部分,asm部分及剩余的
“oracle11g rac的體系結(jié)構(gòu)是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!