標籤:控制 不能 檔案中 重要 ice 含義 配置 節點 啟動
CGS是Oracle RAC 執行個體管理的實現方法,負責實現如下功能
1)執行個體之間的心跳機制
2)當執行個體離開或者加入叢集時完成資料庫叢集的重新設定
3)解決資料庫層面出現的腦裂
1,網路心跳
資料庫層面的網路心跳是通過LMON進程實現的,每個執行個體的LMON進程會定期通過資料庫的私網與所有遠程執行個體進行通訊,以確認其他執行個體的狀態,如果,某一個執行個體一段時間之內不能夠響應其他節點發送的網路心跳資訊,那麼資料庫叢集就需要進行重新設定,使用者能夠看到的最直觀的資訊就是ora-29740錯誤。
2,磁碟心跳
資料庫層面的磁碟心跳和GI層面的磁碟心跳實現的功能基本相同,但是,由於資料庫層面並沒有VF存在,所以,實現方式會有所不同,對應RAC資料庫,LMON進程會將網路心跳中包含的遠程節點的狀態資訊發送給CKPT進程,CKPT進程預設每3s向資料庫的控制檔案寫入本地執行個體能夠訪問的其他執行個體資訊,從而完成資料庫執行個體的磁碟心跳。如果資料庫執行個體的磁碟心跳出現了問題,使用者能夠看到的最直觀的資訊就是ora-494錯誤。
3,本地心跳
LMHB進程會定期監控LMON,LMS,LMD,LCK0等於cache fusion相關的重要後台進程,如果LMHB進程發送某一個重要的後台進程在一段時間之內沒有更新自己的狀態資訊,就會進行分析,如果有必要通過重啟本地節點的方式來解決問題
重新設定的階段
階段1:重新設定主節點向所有其他節點發送重新設定訊息,之後凍結每個執行個體的名稱服務和鎖相關資訊。
階段2:決定新的執行個體狀態位元影像(在這個階段,重新設定主節點會持有RR鎖決定新的執行個體狀態位元影像),如果重新設定是由於執行個體離開導致的,進行執行個體恢複,之後,更新資料庫叢集的incarnation。
階段3:如果重新設定的原因是執行個體離開資料庫叢集,則刪除離開資料庫叢集的執行個體的名稱服務中的資料。
階段4:重新發行集資料庫叢集的名稱服務資訊,並恢複之前被凍結的鎖相關的操作。
階段5:之前凍結的資源被解凍,並通知GCS和GES開始進行記憶體融合相關的重新設定。
重新設定的類型
類型1:由於資料庫啟動或關閉導致的重新設定
類型2:由於某一個執行個體丟失網路心跳導致的重新設定
類型3:由於某一個執行個體丟失磁碟心跳導致的重新設定
類型4:由於某一個記憶體融合相關的重要後台進程丟失本地心跳導致的重新設定
類型2-4的重新設定的結果是有問題的執行個體被重新啟動
資料庫層面的腦裂
1)兩個執行個體之間的私人網路出現問題,在一段時間之後(預設300s),兩個執行個體都發現無法和對方進行通訊。
2)每個執行個體都嘗試獲得RR鎖,獲得了RR鎖的執行個體存取控制檔案中的執行個體狀態,並決定新的叢集執行個體列表,獲得了RR鎖的執行個體會存活,另外一個執行個體被驅逐。
資料庫層面的腦裂和GI層面的含義是一致的,但是處理方式存在差別:GI層面的腦裂是基於節點編號,而資料庫層面的腦裂需要競爭RR鎖。
Oracle RAC 執行個體管理(Cluster Group Service)