溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

oracle11g rac的體系結(jié)構(gòu)是什么

發(fā)布時間:2021-11-04 09:20:16 來源:億速云 閱讀:142 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

本篇內(nèi)容介紹了“oracle11g rac的體系結(jié)構(gòu)是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

1. oracle rac的幾大組件

1.OHAS ---OHAS是oracle11gr2推出的一個重要組件,是集群啟動的唯一起始點,其他的守護進程和集群管理的資源同一定義為資源,同時,集群管理軟件使用代理進程(agent)來同一實現(xiàn)對對所有資源的管理

1.ocr和olr

OCR是保存CRSD所有管理資源的注冊表,但是在crsd啟動之前,還有很多初始化資源沒有啟動,所以11g版本中推出了OLR

OLR是保存在本地的集群注冊表 ,作用是為ohasd提供集群的配置信息和初始化資源的信息--(當OHAS啟動的時候,從/etc/oracle/olr.loc文件中讀取olr文件)

OLR 可以通過ocrconfig -local -manualbackup進行備份

./ocrconfig -local -restore進行恢復

./ocrcheck -local進行一致性檢查

2.ohasd啟動的代理進程

1.oraagent-------這個進程以O(shè)racle或者grid用戶啟動,負責管理oralce或者grid用戶的資源       

其中ohasd只會啟動oraagent_grid  --包括資源為  ora.gipcd   ora.gpnpd  ora.mdnsd  ora.evmd  ora.asm  

mdns  -- 和dns的功能類似,提供主機名到ip的映射(基本特性:小型私有網(wǎng)絡(luò)提供民稱解析服務(wù),使用多播發(fā)送信息,UDP協(xié)議,主機名以.local結(jié)尾),在rac中主要為gpnpd和Ohasd提供resource discovery(資源發(fā)現(xiàn)服務(wù))

gpnpd -- grid plug and play ,將集群的基本信息保存在本地,并通過和mdnsd通訊,靈活識別集群中的其他節(jié)點。gpnp分為gpnp wallet(訪問profile的客戶簽名)  gpnp profile(保存啟動集群節(jié)點的必須信息)   gpnp守護進程 (gpnp主線程,push線程,派遣線程,ocr線程),當集群重要配置信息發(fā)生變化時:本地派遣線程通知遠程節(jié)點派遣進程--> 本地push進程推送gpnp profile給遠程進程--> 遠程派遣進程接收新版本gpnp pfofile   當集群啟動時:gpnp主線程訪問gpnp profile,并加載到cache中打開,如丟失,則從olr中恢復---> 派遣線程向所有遠程節(jié)點發(fā)送信息確認最新版本gpnp profile位置 --> 擁有最新版本的節(jié)點向該節(jié)點發(fā)送gpnp profile --->本地節(jié)點收到gpnp profile后開始提供服務(wù)

gipcd --確保集群網(wǎng)卡的一致性,不負責傳遞的信息--HAIP負責傳遞信息(1.當集群啟動時,發(fā)現(xiàn)私網(wǎng)網(wǎng)卡 2. 通過集群私網(wǎng)發(fā)現(xiàn)其他節(jié)點并建立聯(lián)系 3. 如果有多塊網(wǎng)卡,當其中一塊有問題,離線他并通知其他幾點,反之恢復亦然)

啟動過程--》 gipcd守護進程啟動--》嘗試訪問gpnpd 獲取遠程節(jié)點信息并與其通訊 --》發(fā)現(xiàn)本地私網(wǎng)信息--》發(fā)現(xiàn)遠程節(jié)點 -->連接建立 

2.orarootagent-------以root用戶啟動,管理root用戶的資源

ohasd啟動的資源為 ora.diskmon  ora.ctssd  ora.crsd  ora.driver.acfs  ora.cluster_interconnect.haip  ora.crf 

ctssd  --> cluster time synchronize service 同步節(jié)點之間時間 (老版本使用ntp后者wts容易出現(xiàn)問題),工作方式(選擇一個參考節(jié)點,其他節(jié)點參考這個節(jié)點的時間)(如果有其他時間同步工具如ntp(注意如果有配置文件也會認為存在同步工具),則使用觀察模式工作,觀察模式下不會修改系統(tǒng)時間,如果沒有其他時間同步工具,則以active模式工作,會緩慢自動同步節(jié)點之間時間信息) 

3.cssdagent----負責啟動ocssd.bin進程,之后負責監(jiān)控ocssd.bin守護進程

ocssd守護進程每秒鐘都向 cssdagent和cssdmonitor注冊自己的狀態(tài)信息同時如果有異常會進行異常處理

4.cssdmonitor------只負責監(jiān)控Ocssd.bin守護進程

ocssd守護進程每秒鐘都向 cssdagent和cssdmonitor注冊自己的狀態(tài)信息同時如果有異常會進行異常處理

3.HAIP和CHM

1.HAIP

對于Oracle數(shù)據(jù)庫集群,私網(wǎng)之間的通訊是十分十分重要的,私網(wǎng)之前的通訊主要分為集群之前和數(shù)據(jù)庫實例之前的通訊,集群之間的通訊十分簡單,使用簡單的tcp/ip協(xié)議即可,但是數(shù)據(jù)庫實例之間的通訊十分龐大,而且數(shù)據(jù)實時性要求也很高,單純的tcp/ip不能滿足,需要UDP或者RDS,同時需要配置高可用和負載均衡。

HAIP出現(xiàn)是因為原先的數(shù)據(jù)庫對私網(wǎng)的高可用和負載均衡處理大多數(shù)依賴于操作系統(tǒng)層面配置的linux bonding等,oracle數(shù)據(jù)庫為了解決這個問題,于是提出了HAIP

什么是HAIP,HAIP是數(shù)據(jù)庫自動在每一個私網(wǎng)網(wǎng)卡上綁定一個169.254.*.*的IP地址,這個IP地址被稱為HAIP,而Oracle數(shù)據(jù)庫實例之間的通訊則會通過這個Ip地址進行通訊,,當某一個私有網(wǎng)卡出現(xiàn)問題時,則會將這個私網(wǎng)的ip地址自動漂移到正常的私網(wǎng)網(wǎng)卡上,這樣,實現(xiàn)了私網(wǎng)的高可用

2.CHM

chm是oracle提供的一個工具,用來收集操作系統(tǒng)資源(cpu mem swap proc i/o network)的統(tǒng)計信息,chm會以ora.crf進程存在于每一個節(jié)點上。chm主要用來收集和預(yù)防一些由于系統(tǒng)異常導致的rac節(jié)點問題

chm和oswatcher的對比----實時性更強,但是保留時間沒有oswatcher強,同時功能也比不上oswatcher。

chm組成

1.chm repository----一個berkeley數(shù)據(jù)庫,存儲各個節(jié)點收集到的操作系統(tǒng)統(tǒng)計信息,存放在/gi_home/crf/db/節(jié)點名下,默認大小為1G,最大保留時間為3天

2.system monitor service -- 以osysmond.bin形式存在于每個節(jié)點,負責收集每個節(jié)點信息并將信息發(fā)送到主節(jié)點服務(wù)器

3.cluster logger service ----以守護進程 ologgerd的形式存在于主節(jié)點和副節(jié)點上,主節(jié)點負責接收所有節(jié)點的信息,并記錄到主節(jié)點的chm repository 中,副節(jié)點的ologgerd則接收來自于主節(jié)點的信息,記錄到副節(jié)點的chm repostiory中

2.css 部分

負責構(gòu)建集群和維護集群的一致性

CSS啟動過程--構(gòu)建集群

1.ohasd守護進程啟動,并啟動對應(yīng)的代理進程(包括css的oracssdagent_root)--> 2. oracssdagent_root啟動 ocssd.bin進程  --> 3. ocssd.bin訪問gpnpd.bin,獲取構(gòu)建集群的基本信息,訪問gipcd.bin獲取遠程節(jié)點的信息 --> 4. 和遠程節(jié)點通訊,并通過訪問VF和租借快獲取本地節(jié)點的編號,加入集群

集群心跳機制---維護集群一致性

1. 如何維護集群的一致性-->1.確認節(jié)點間的聯(lián)通性 2.共享位置保存節(jié)點連通信息 3.本地節(jié)點自我監(jiān)控  

2.維護集群的三種心跳   

3.常用術(shù)語   

VD/VF 保存每個節(jié)點的磁盤心跳信息,以及每個節(jié)點能看到的節(jié)點列表,在腦裂時判斷節(jié)點的狀態(tài)以及判斷節(jié)點應(yīng)該離開集群還是alive,同時VF中還保留了下面的信息 1.租借塊 lease block  2.kill block 

OCR oracle cluster register 記錄crsd相關(guān)的信息 

misscount  網(wǎng)絡(luò)心跳超時時間,默認是30s,也是本地心跳的超時時間

LIOT long i/o timeout 磁盤心跳的超時時間,默認是200s,

SIOT short i/o timeout 節(jié)點在重新配置時對VF的i/o超時時間,默認是misscount-reboottime=30-3=27s

重新配置主節(jié)點 當集群中的節(jié)點數(shù)量發(fā)生變化時,會有一個節(jié)點用于完成這次的重新配置,通常最小的節(jié)點號會作為主節(jié)點

reboot time 集群要求OS完成的重啟時間,默認為3S

diagwait  指定oprocd進程的margin時間,

incarnation 集群的最新狀態(tài),集群每一次重新配置,這個值增加1

1.網(wǎng)絡(luò)心跳(miscount )--> 發(fā)送線程  分析線程(根據(jù)接收的線程信息進行處理,如進行集群重新配置)  集群重新配置線程  派遣線程(接收遠程節(jié)點的信息,根據(jù)信息發(fā)送給其他線程)

用來確認集群之前的連通性     ocssd進程每秒鐘通過私網(wǎng)會向集群的其他節(jié)點發(fā)送網(wǎng)絡(luò)心跳  

丟失網(wǎng)絡(luò)心跳進行重新配置過程  1.當某個節(jié)點連續(xù)一段時間丟失網(wǎng)絡(luò)心跳后,超過集群的miscount值后,分析線程發(fā)起集群重新配置  2. 重新配置線程管理節(jié)點向集群中所有節(jié)點發(fā)送重新配置消息,所有收到此消息的節(jié)點回復自己的狀態(tài)

3.重新配置線程管理節(jié)點根據(jù)狀態(tài)確認是否會有腦裂發(fā)生----如果網(wǎng)絡(luò)心跳異常但是磁盤心跳正常,則判斷會發(fā)生腦裂,會向VD寫入kill block信息,當網(wǎng)絡(luò)心跳異常的節(jié)點讀取到后會對本節(jié)點進行重啟   

2.磁盤心跳 (short I/O timeout)  --> 磁盤心跳線程--發(fā)送磁盤心跳,讀取block kill  磁盤心跳監(jiān)控線程--檢測磁盤心跳,讀取block  kill block線程 --監(jiān)控kill block

當集群腦裂時確認腦裂的解決方案 ,oracle建議設(shè)置奇數(shù)個VF磁盤,當節(jié)點無法訪問某個VD,只要能訪問的磁盤總數(shù)為n/2 + 1 即可

3.本地心跳  -->監(jiān)控cssd.bin進程以及本地節(jié)點的狀態(tài)

oracle發(fā)送網(wǎng)絡(luò)心跳的時候還會向cssdagent和cssdmonitor發(fā)送本地心跳,如果本地心跳沒有問題,則認為cssd.bin正常--oprocd中記錄hang信息

集群的組管理

NM和GM 指得是node management 和 group management ,上面的內(nèi)容都是NM,接下來是GM的主要內(nèi)容

GM的概念  -- >  1.組 group 一組成員和他們的資源組成的整體   2. 成員  member 能夠獨立運行的一個實體(主成員和共享成員-->主成員負責監(jiān)控集群并在變化時進行相應(yīng)的操作,共享成員是他的擴展) 3. GM master 當組成員發(fā)生變化時,由master完成重新配置

1.共享   每個組有若干個成員祖冊,每個組或者組成員還需要向外面共享一些信息----1.集群中的數(shù)據(jù)庫作為一個組注冊到css上,主要成員是LMON進程,當LMON進程啟動時,需要注冊到css上,css才知道這個數(shù)據(jù)庫的具體信息,這個是組內(nèi)共享  2.ASM進程啟動也會注冊到css上,并把信息共享出去供數(shù)據(jù)庫實例發(fā)現(xiàn),這就是組間共享

2.隔離  當組中的某一個成員離開時,gm需要保證這個組的成員在OS級別的離開,既所有進程和io都清理

11G CSS新特性

1. member kill escalation 成員終止升級  

當rac中需要終止某個成員時,例如二節(jié)點的LMON進程(二節(jié)點的數(shù)據(jù)庫實例),步驟如下

rac通過GM去嘗試終止LMON,如果終止完成,則返回終止完成的信息,如果終止失敗,則升級為NM層面,通過NM來重啟節(jié)點保證集群的一致性

2.rebootless restart 

當出現(xiàn)下面情況時,集群不會直接重啟節(jié)點,而是重啟集群管理軟件

1.當節(jié)點丟失網(wǎng)絡(luò)心跳超過misscount   2.當節(jié)點不能訪問大多數(shù)的VD 3.MEMBER KILL 升級為NODE KILL 既發(fā)生上面無法通過GM終止進程

目前先更新到這,后面將會更新crs部分,asm部分及剩余的

“oracle11g rac的體系結(jié)構(gòu)是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI