Oracle 12c 備份恢復OCR(Oracle Cluster Registry)

feelpurple發表於2016-08-29
有兩種方法來備份OCR的內容:

自動備份    Oracle叢集每4個小時會自動備份OCR,並保留最新的3份備份。CRSD程式負責建立和維護OCR的備份。目前不可以定製OCR自動備份的頻率和備份的保留份數。

手動備份    在叢集的一個節點上,執行ocrconfig -manualbackup命令來執行OCR的手動備份。OLR只支援手動備份。

顯示OCR備份檔案
ocrconfig -showbackup

檢查指定OCR備份檔案的內容並驗證備份的完整性
ocrdump -backupfile backup_file_name

變OCR備份檔案的儲存
ocrconfig -backuploc Grid_home/cdata/cluster3

恢復OCR

1.顯示節點
olsnodes

2.停止Oracle叢集

如果OCR存放在Oracle ASM磁碟組中,使用下面命令來停止叢集
crsctl stop crs

如果執行上面的命令返回關於OCR損壞的任何錯誤,透過下面命令,使用root使用者來強制停止叢集
crsctl stop crs -f

3.恢復OCR到叢集檔案系統或網路檔案系統,使用root使用者來執行下面命令
ocrconfig -restore file_name

如果這個操作執行完成,調到步驟11.
如果沒有恢復OCR到叢集檔案系統或網路檔案系統中,繼續執行下面步驟。
如果OCR備份檔案是存放到Oracle ASM磁碟組中,確保指定的磁碟組存在並被掛載。

4.透過root使用者,啟動Oracle Clusterware stack
crsctl start crs -excl -nocrs

-nocrs引數確保CRSD程式和OCR不啟動Oracle Clusterware stack其他餘下的部分
忽略任何顯示的報錯

5.檢查CRSD是否執行
crsctl status resource ora.crsd -init

如果CRSD在執行,透過root使用者,執行下面命令來關閉它
crsctl stop resource ora.crsd -init

6.想將OCR恢復到一個Oracle ASM磁碟組,需要首先使用SQL*Plus建立一個磁碟組,這個磁碟組的名稱和恢復的磁碟組名稱相同,然後將它掛載到本地節點
如果不能將這個磁碟組掛載到本地,執行下面命令
SQL> drop diskgroup disk_group_name force including contents;

7.恢復OCR
# ocrconfig -restore file_name

如果OCR的原始路徑不存在,在執行恢復前,需要手動建立一個空的OCR路徑
確保指定的OCR裝置存在於OCR配置中並且OCR裝置是有效的
如果將OCR配置在ASM磁碟組中,確保Oracle ASM磁碟組存在並已掛載
如果OCR備份檔案存在於Oracle ASM磁碟組中,確保Oracle ASM磁碟組存在並已掛載

8.驗證OCR的完整性
# ocrcheck

9.在執行exclusive模式的叢集節點上,停止Oracle叢集
# crsctl stop crs -f

10.使用root使用者,在沒有執行ocrconfig -restore命令的叢集節點上,執行下面命令
ocrconfig -repair -replace

例如,有一個4節點的叢集,在節點1上執行了ocrconfig -restore命令,在節點2、3、4上則需要執行ocrconfig -repair -replace命令

11.啟動Oracle叢集
# crsctl start crs

12.在叢集所有節點上,驗證OCR的完整性
$ cluvfy comp ocr -n all -verbose

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

相關文章