【原創】Oracle RAC原理和安裝

quanshengaa發表於2014-06-27

1.說一下RAC和單節點資料庫的區別有哪些?你認為RAC最有用的功能是說什麼?

區別

1RAC2個以上的例項,單節點只有1個例項

2RAC具有例項級別的高可用

3)例項與例項之間通過內聯網路交換資料,單節點不可

4RAC每個節點都有自己套SGA、後臺程式、redo logundo file

5RAC可以增減節點

RAC最有用的功能

答:我認為RAC最有用的功能就是例項級的failover,它可以保證在其中有節點crash的時候,其他節點可以迅速接管。保證系統持續可用。往往人們會認為RAC2個節點效能就會提升2倍,這是一個誤區,由於要保證資料的一致性往往效能會消耗在記憶體間的資料塊相互拷貝和交叉上,因此不一定效能會好於單節點,而且節點越多效能曲線就會下降越快。

 

2.ps命令查到屬於crs叢集軟體的程式名稱,貼出輸出結果。

CRS叢集程式是屬於Clusterware叢集軟體自己的程式,不同於RAC例項後臺程式

下面分別說明一下Clusterware叢集軟體自己的程式功能

1.crs叢集資源程式:全稱cluster ready services,作用為管理叢集中所有資源的程式,資源例如 資料庫 監聽 例項 記憶體 程式

VIP 應用程式 叢集 ASM

 crs程式是根據儲存於OCR中的資源配置資訊來管理這些資源的。

 

2.css 叢集同步程式:全稱 cluster synchronization service,作用為管理叢集節點成員的程式,在增減叢集節點時收集節點最新狀態並同步到所有節點上。這個程式發生故障會導致叢集重啟

 

3.EVM 事件管理程式:全稱 Event Management,作用為釋出和記錄事件的程式,釋出CRS建立事件的後臺程式,只要哪個程式發生問題,EVMD就會把事件寫入trace檔案。

EVMD稱作事件管理守護程式

 

4.ONS 事件釋出及訂閱程式:全稱 Oracle Notification Service,作用為快速通知事件的釋出及訂閱服務

 

3.說一下在RAC環境下,資料庫例項會多出哪些後臺程式,用ps命令查詢,給出輸出結果,並說明它們的作用。

RAC模式下Oracle資料庫比單節點要多出許多後臺程式,這些後臺程式都是用於叢集管理和監控的,下面我們簡單介紹一下它們的作用。

 

1.LMSn  - gobal cache service process 全域性快取服務程式    n從零開始分配

1RAC提供了10LMS程式,會隨著節點間訊息傳遞的資料量的增加而增加,預設至少有2LMS程式

2LMS程式主要管理叢集內資料塊的訪問,並在不同例項的buffer cache傳遞資料塊映象

3LMS程式保證了每一時刻只允許一個例項去修改資料塊

4)當一個例項請求資料塊時,擁有該資源的例項的LMS程式會建立一個資料塊映象的一致性讀。然後把該資料塊傳遞到請求資源的例項的buffer cache中。

 

2.LMON  - Global Enqueue Service Monitor 全域性佇列服務監控程式

1)監控整個叢集的記憶體結構

2)處理異常終止的程式和例項

3)當有例項加入叢集和離開叢集時,全域性鎖定和資源的重新分配

4)提供全域性鎖資源的恢復操作

5)監控全域性的鎖資源處理死鎖和阻塞

 

3.LCK  - LOCK  Process

1LCK程式主要用來管理例項間資源請求和跨例項呼叫操作,呼叫操作包括資料字典等物件的訪問

2)處理非cache fusion cache資源請求,像 dictionary cacherow cache

 

4.LMD – Global Enqueue Service Daemon 全域性佇列服務守護程式

1LMD程式主要管理對全域性佇列和資源的訪問,並更新相應佇列的狀態,處理來自於其他例項的資源請求。

2)每一個全域性佇列的當前狀態儲存在相應的例項共享記憶體中,該狀態表明該例項具有相應的權利使用該資源。

3LMD程式還負責佇列的死鎖問題

 

5.DIAG – Diagnostic Daemon 診斷守護程式

1Oracle10g新的後臺程式

2)主要用來捕獲例項中失敗程式的診斷資訊,並生成相應的trace檔案

3)此程式不需要配置,自動啟動無需調整

4)如果該程式失敗則自動重啟

具體程式結構請參考下面的圖示

【原創】Oracle RAC原理和安裝


我們使用ps命令輸出10g11gRAC例項後臺程式

10g RAC特有程式:
$ ps -ef|grep ora_
oracle    4721     1  0 Feb26 ?        00:00:00 ora_diag_ONEPIECE1
oracle    4725     1  0 Feb26 ?        00:02:26 ora_lmon_ONEPIECE1
oracle    4727     1  0 Feb26 ?        00:00:02 ora_lmd0_ONEPIECE1
oracle    4729     1  0 Feb26 ?        00:00:01 ora_lms0_ONEPIECE1
oracle    4733     1  0 Feb26 ?        00:00:01 ora_lms1_ONEPIECE1
oracle    4761     1  0 Feb26 ?        00:00:07 ora_lck0_ONEPIECE1
oracle    4772     1  0 Feb26 ?        00:00:00 ora_asmb_ONEPIECE1
oracle    4776     1  0 Feb26 ?        00:00:00 ora_rbal_ONEPIECE1
oracle    4840     1  0 Feb26 ?        00:00:00 ora_o001_ONEPIECE1

11g RAC
特有程式:
$ ps -ef|grep ora_
oracle     426     1  0 Feb27 ?        00:00:08 ora_o000_RAC11G21
oracle    9082     1  0 Feb25 ?        00:01:09 ora_diag_RAC11G21
oracle    9086     1  0 Feb25 ?        00:00:27 ora_ping_RAC11G21
oracle    9088     1  0 Feb25 ?        00:00:06 ora_acms_RAC11G21
oracle    9092     1  0 Feb25 ?        00:05:27 ora_lmon_RAC11G21
oracle    9094     1  0 Feb25 ?        00:01:32 ora_lmd0_RAC11G21
oracle    9096     1  0 Feb25 ?        00:02:07 ora_lms0_RAC11G21
oracle    9100     1  0 Feb25 ?        00:00:06 ora_rms0_RAC11G21
oracle    9102     1  0 Feb25 ?        00:00:14 ora_lmhb_RAC11G21
oracle    9116     1  0 Feb25 ?        00:00:09 ora_rbal_RAC11G21
oracle    9118     1  0 Feb25 ?        00:00:05 ora_asmb_RAC11G21
oracle    9136     1  0 Feb25 ?        00:04:25 ora_lck0_RAC11G21
oracle    9138     1  0 Feb25 ?        00:00:14 ora_rsmn_RAC11G21
oracle    9295     1  0 Feb25 ?        00:00:07 ora_gtx0_RAC11G21
oracle    9297     1  0 Feb25 ?        00:00:07 ora_rcbg_RAC11G21

4.畫圖說明,當RAC中的一個例項down掉之後,其它例項是如何接管這個例項上的事務的?

如圖所示:我們現在擁有2個節點,我們在這2個節點上部署RAC叢集,每個節點上建立一個例項,這2個節點使用內聯網傳輸資料和資訊,同時共享一個儲存磁陣。介紹完了RAC架構,下面敘述一下RAC的例項級容錯。

【原創】Oracle RAC原理和安裝


場景:在生產使用中,突然instance1  shutdown,那麼在其上面沒有完成的事物如何處理呢。

1)當例項1 crash後,例項2通過VIP就可以知道例項1已經down了。

2)此時需要處理的有2部分資料,一部分是commit的資料,一部分非commit資料

3)對於已經commit寫入redo日誌但是還沒有來得及寫入資料檔案的記錄,例項2可以訪問例項1redo log並從最後一次check point之後的資訊開始例項恢復。把資料同步到最新狀態。

4)對於沒有commit的資料利用undo舊映像進行回滾事物。

 

RAC   CRS   叢集  failover  後臺程式

 

Leonarding

2013.06.26

北京&summer

分享技術~成就夢想

Blogwww.leonarding.com


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1432467/,如需轉載,請註明出處,否則將追究法律責任。

相關文章