Oracle RAC OCR 與健忘症

來源:互聯網
上載者:User

標籤:

 OCR就好比Windows的一個註冊表,儲存了所有與叢集,RAC資料庫相關的配置資訊。而且是公用的配置,也就是說多個節點共用相同的配置資訊。因此該配置應當儲存於共用磁碟。本文主要基於Oracle 10g RAC描述了叢集的OCR以及OCR產生的健忘問題。

 

一、OCR的特點
   類似於Windows註冊表,用於儲存所有與叢集,RAC資料庫相關的配置資訊
   被多個節點所共用,因此,只能儲存於共用磁碟。支援單disk以及鏡像方式來存放。大小通常100MB-1GB。
   在Oracle 10g中,只能儲存於裸裝置或者ocfs檔案系統,以及nfs,gfs檔案系統。Oracle 11g中可以直接存放在asm中。
   整個叢集及RAC資料庫配置需要在OCR中來進行維護。換句話說,就像windows註冊表的匯入匯出,修改、更新索引值等。
   通常情況下,OCR中的配置資訊會隨著使用工具對其進行自動更新。如SRVCTL,DBCA,OEM,NETCA等。
   而OCR的配置與維護則通常包括OCR的校正,備份,查看OCR的內容,添加移出OCR檔案,重定位,修複OCR檔案。
   OCR磁碟最多隻能有兩個,一個Primary OCR 和一個Mirror OCR,兩個OCR 磁碟互為鏡像,以防止OCR 磁碟的單點故障。
   註:叢集,我們通常指的是clusterware,而RAC資料庫,即是基於叢集之上的資料庫。

 

二、OCR包含的內容 
   OCR中通常包含下列內容
   節點成員資訊
   資料庫執行個體,節點,以及其他的映射關係
   ASM
   資源配置資訊(vip,services等等)
   服務特性(Service characteristics)
   Oracle叢集中相關進程的資訊
   CRS控制的第三方應用程式資訊

 

三、OCR的工作過程
        由於OCR存放於共用儲存,因此在Cluster中的每個節點都通過本地OCR進程訪問OCR緩衝在其記憶體中維護著的一個副本。同時由於對OCR
    的所有操作必須確保OCR內容完整性,所以在ORACLE Clusterware運行過程中,並不是所有結點都能操作OCR Disk。 只有一個OCR進程對共
    享儲存中的OCR進行讀寫操作。這個節點叫作OCR Master結點。此進程負責重新整理(refresh)其自己擁有的本機快取以及Cluster中其他節點
    的OCR cache。也就是說,OCR用戶端查詢都是通過本地OCR進程來查詢本地的一個OCR副本,而當用戶端需要更新OCR時,它們將通過本地OCR
    進程與那個扮演讀寫OCR檔案的進程OCR Master進行互動。
    
    #下面是一個兩節點的RAC,可以看出ocr master節點起初在第一個節點,後來轉移到第二個節點,再後來又到第一個節點。
    #這是由於節點一關閉或節點一上的叢集處於不可用狀態導致ocr master節點發生了轉移。
    [email protected]:/u01/oracle/crs/log/bo2dbp/cssd> cat ocssd.log | grep "master node"
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 2
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [email protected]:~> grep -i "master node" $ORA_CRS_HOME/log/bo2dbp/cssd/ocssd.log | tail -1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
  
    OCR用戶端應用有:Oracle通用安裝器(OUI)、SRVCTL、企業管理器(EM)、DBCA、DBUA、NetCA和虛擬網路協議助理(VIPCA)。
    此外,OCR維護管理著CRS內部中定義的各種應用程式的資源的依賴和狀態資訊,特別是Database、Instance、Services和節點的應用程式。

    OCR設定檔的名字是ocr.loc,Linux下位於/etc/oracle/ocr.loc。
    後附OCR結構圖

 

四、OCR儲存內容的表現形式
   同樣地與Windows註冊表來類比,OCR其儲存內容的表現形式與其相同,是採用索引值對的方式來展現。
   整個OCR 的資訊是樹形結構,有3個大分支。分別是SYSTEM,DATABASE 和CRS。
   每個分支下面又有許多小分支。這些記錄的資訊只能由root使用者修改。
   可以使用ocrdump命令將其內容全部匯出或者按分支進行匯出。
  
五、健忘症
   健忘是由於某個節點更新了OCR中的內容,而叢集中的另外一些節點此時處於關閉,維護或重啟階段,OCR Master進程來不及將其資訊更新
   到這些異常節點緩衝而導致的不一致。譬如,在A節點發出了添加ocr鏡像的命令,在這個時候B節點處於重啟階段。重啟後A已經更新完畢,
   而此時B並不知道已經為ocr增加了一個新的鏡像磁碟,健忘由此而生。
  
   如下例,節點bo2dbp添加了新的ocr之後,設定檔發生了變化,此時節點bo2dbs的ocr.loc會被更新,如果bo2dbs處於關閉或重啟階段,則
   該檔案得不到該更新,此即位健忘一例。
  
   [email protected]:~> more /etc/oracle/ocr.loc
    #Device/file  getting replaced by device /dev/raw/raw11 
    ocrconfig_loc=/dev/raw/raw1
    ocrmirrorconfig_loc=/dev/raw/raw11  #可以看到增加了ocrmirror位置
    local_only=false
  
   Author : Robinson Cheng
   Blog   : http://blog.csdn.net/robinson_0612
  
六、OCR結構圖

轉:http://blog.csdn.net/leshami/article/details/8572625

 

Oracle RAC OCR 與健忘症

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.