管理 Oracle Cluster Registry(OCR)


oracle的clusterware包含兩個重要組件:OCR(包含本地組件OLR)和voting disks
  --OCR管理oracle clusterware和oracle rac數據庫的配置信息
  --OLR位於每個節點本地,管理着本地節點的clusterware配置信息
  --voting disks管理成員關系信息。每個voting disk都必須能被集群中的所有節點訪問。

在12C中,必須將OCR和voting disks中放在asm中(12c不支持塊設備和裸設備;12.2不再支持其他共享文件系統)。

(11g文檔是這么寫的:必須將ocr和voting disk放在asm中,或者放在經過認證的集群文件系統中)

 

11.2中,oracle oui不支持裸設備、塊設備。但是如果是從之前版本升級上來的,可以繼續支持塊設備、裸設備。oracle肯定是建議使用asm。

為了增加可用性,oracle建議配置多個voting disks文件。如果是使用了asm磁盤組。asm會確保voting disks被配置成了normal冗余或high冗余。如果是使用其他共享文件系統,需要手動指定多份設置。

 

不需要停掉集群的情況下,可以動態添加、替換voting disks。


管理OCR和OLR的工具有ocrconfig、ocrdump、ocrcheck
OLR和OCR類似,只是位於集群中節點的本地,包含特定節點的配置信息。OLR包含clusterware的可管理信息,如不同服務之間的依賴關系,OHAS需要使用這些信息。OLR默認存放路徑是grid_home/cdata/host_name.olr。

 

1.遷移OCR到asm

如果是從11.2之前升級到11.2,asm磁盤兼容性必須設置>=11.2;
如果是從12c之前升級到12c,asm磁盤兼容性必須設置>=11.2.0.2。
(1)查看當前運行版本

$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.4.0]

(2)在所有節點上啟動asm
(3)將ocr增加到asm磁盤組

# ocrconfig -add +new_disk_group

OCR會繼承磁盤組的冗余性!

(4)移除之前的存儲配置

# ocrconfig -delete old_storage_location

 

2.從asm遷移到其他共享存儲類型

(1)查看當前運行版本

$ crsctl query crs activeversion

(2)添加新的文件作為ocr存放的位置

# ocrconfig -add file_location

(3)移除原先的asm配置

# ocrconfig -delete +asm_disk_group

 

3.增加一個OCR Location

# ocrconfig -add +asm_disk_group | file_name

 

4.移除一個OCR Location

# ocrconfig -delete +asm_disk_group | file_name

  

5.替換OCR位置

(1)首先檢查一下

$ ocrcheck
$ crsctl check crs

(2)替換OCR位置

# ocrconfig -replace current_ocr_location -replacement new_ocr_location
如果只有一個ocr位置,只有先添加后刪除
# ocrconfig -add new_ocr_location
# ocrconfig -delete current_ocr_location

  

6.本地節點修復OCR

如果集群在節點關閉之后發生了培訓變更,而該節點是集群的唯一節點,在啟動該節點前就要進行OCR修復了。
修復OCR包含增加、刪除、替換OCR。例如:

# ocrconfig -repair -add /dev/sde1
# ocrconfig -repair -replace current_ocr_location -repalcement target_ocr_location

 

7.重載OCR

OCR具有防止數據丟失的機制。如果配置了多份鏡像的OCR,當clusterware無法訪問鏡像OCR位置,也不能確定當前可以訪問的OCR位置是否包含最新的配置信息的時候,clusterware會阻止對當前可以訪問的OCR的修改。
此外,進程也會阻止該節點上的clusterware的啟動。clusterware和數據庫的alert日志都會受到報警信息。如果這個問題只是發生在某個節點,可以從其它節點啟動集群數據庫。
如果集群中的任何節點都沒法啟動,用戶可以選擇修復OCR或者還原OCR。如果修復或還原都不行,還可以選擇重載OCR。重載OCR需要重載所有的OCR,不過這種情況可能會導致部分信息丟失。
修復就用ocrconfig -repair。如果要重載orc,使用命令ocrconfig -overwirte。
在重載OCR之前,應該先進行嘗試OCR修復。

 

8.備份OCR
(1)自動備份
clusterware每隔四小時自動備份OCR文件。且會保留最近的三份OCR。由CRSD進行備份。此外,crsd還會做每天和每周一次備份。備份頻率和保留期限是不可以調整的。
(2)手動備份
ocrconfig -manualbackup執行備份。OLR只是支持手動備份。
(3)查看備份

$ ocrconfig -showbackup
db2     2017/09/03 14:32:04     /u01/app/11.2.0/grid/cdata/oradb-cluster/backup00.ocr
db2     2017/09/03 10:32:03     /u01/app/11.2.0/grid/cdata/oradb-cluster/backup01.ocr
db2     2017/09/03 06:32:03     /u01/app/11.2.0/grid/cdata/oradb-cluster/backup02.ocr
db2     2017/09/02 02:32:00     /u01/app/11.2.0/grid/cdata/oradb-cluster/day.ocr
db2     2017/08/26 06:32:31     /u01/app/11.2.0/grid/cdata/oradb-cluster/week.ocr

(4)修改備份路徑

# ocrconfig -backuploc file_name (指定備份路徑)

  

9.還原OCR
如果沒有放在asm中:
(1)查看列出節點

# olsnodes

(2)關閉clusterware

# crsctl stop crs 
如果關不了,可以強制關閉
# crsctl stop crs -f

(3)(如果是放在集群文件或者網絡文件系統)還原OCR

# ocrconfig -restore file_name

(4)啟動clusterware

# crsctl start crs

  

如果是asm,要完成以下步驟:
(1)查看列出節點

# olsnodes

(2)關閉clusterware

# crsctl stop crs 
如果關不了,可以強制關閉
# crsctl stop crs -f

(3)啟動clusterware
只在某個節點執行,以exclusive模式啟動

# crsctl start crs -excl -nocrs
忽略啟動過程中產生的錯誤信息。

(4)檢查crsd進程是否運行

$ crsclt stat res ora.crsd -init
如果運行,要關閉掉crsd進程
# crsctl stop resource ora.crsd -init

(5)把asm磁盤組mount到本地。如果本地無法mount,先把asm中的磁盤組先drop掉。

SQL> drop diskgroup disk_group_name force including contents;

(6)還原OCR

# ocrconfig -restore file_name

(7)再次檢查OCR

# ocrcheck

(8)關閉clusterware

# crsctl stop crs -f

(9)剩余節點修復OCR

使用ocrconfig -repair -replace命令逐一執行

(10)啟動clusterware

# crsctl start crs

(11)驗證

$ cluvfy comp ocr -n all -verbose

Verifying OCR Integrity ...PASSED

Verification of OCR integrity was successful. 

CVU operation performed:      OCR integrity
Date:                         Sep 3, 2017 3:41:01 PM
CVU home:                     /u01/app/12.2.0/grid/
User:                         grid

  

OCR問題診斷

診斷工具有ocrdump、ocrcheck
除了自動備份的OCR文件,也可以將OCR內容export和import,但是需要關閉才能獲得一致性結果。

ocrconfig -restore和ocrconfig -manualbackup命令使用的ocr文件格式是兼容的;ocrconfig -export和ocrconfig -import命令使用的ocr文件格式是兼容的。但是這前后兩者卻是不兼容的。

 

import OCR(linux平台)

(1)列出所有集群節點

$ olsnodes

(2)停止clusterware

# crsctl stop crs 
如果不能正常關閉,可以強制關閉
# crsctl stop crs -f

(3)在其中一個節點,以排他模式啟動clusterware

# crsctl start crs -excl 
忽略啟動過程中的報錯信息
檢查crsd進程是否運行,如果運行要關閉它
# crsctl stop resource ora.crsd -init

(4)import OCR

# ocrconfig -import file_name
如果導入的是集群文件系統或網絡文件系統,直接到步驟7

(5)驗證OCR的完整性

# ocrcheck

(6)關閉clusterware

# crsctl stop crs -f

(7)再次啟動 clusterware

# crsctl start crs

(8)驗證在集群所有節點上的OCR完整性

$ cluvfy comp ocr -n all -version

  

Oracle Local Registry(OLR)
可以使用ocrcheck、ocrdump、ocrconfig加上參數-local來管理OLR

1.檢查OLR的狀態
# ocrcheck -local
Status of Oracle Local Registry is as follows :
         Version                  :          4
         Total space (kbytes)     :     409568
         Used space (kbytes)      :       1060
         Available space (kbytes) :     408508
         ID                       : 1941521711
         Device/File Name         : /u01/app/12.2.0/grid/cdata/db12c1.olr
                                    Device/File integrity check succeeded

         Local registry integrity check succeeded

         Logical corruption check succeeded

2.dump出OLR的內容
# ocrdump -local

3.導入導出OLR的內容
# ocrconfig –local –export file_name
# ocrconfig –local –import file_name

4.手動備份OLR
# ocrconfig –local –manualbackup

5.還原OLR
# crsctl stop crs
# ocrconfig -local -restore file_name
# ocrcheck -local
# crsctl start crs
$ cluvfy comp olr

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM