--- Oracle® Clusterware Clusterware Administration and Deployment Guide
6 Managing Oracle Cluster Registry and Voting Filescss
Oracle Clusterware 包括兩個重要的組件,用於管理配置和節點成員關係:Oracle 集羣註冊中心(OCR) ,它還包括本地組件Oracle 本地註冊中心(OLR) 和Voting Files 投票文件。node
•OCR 存儲Oracle 集羣和Oracle RAC 數據庫配置信息數據庫
•OLR 駐留在集羣中的每一個節點上,管理每一個特定節點的Oracle 集羣配置信息網絡
•Voting Files 投票文件存儲關於節點成員資格的信息。要使節點成爲集羣的成員,集羣中的全部節點都必須可以訪問每一個仲裁文件。ide
注意:工具
• Oracle Clusterware 12c 不支持使用原始或塊設備。要從使用原始設備或塊設備的早期 Oracle Clusterware 版本升級到 Oracle Clusterware 12c ,必須在升級以前將 OCR 和投票文件遷移到 Oracle 自動存儲管理( Oracle ASM )或共享文件系統。性能
•您能夠在 Oracle ASM 上存儲 OCR 和投票文件,或在獨立羣集上存儲共享文件系統。flex
在 Oracle 數據庫 12c 版本 2 ( 12.2 )中,不支持直接在共享文件系統上放置 OCR 和投票磁盤文件。ui
從 Oracle Database 19c ( 19.3 )開始,對於獨立的集羣,取消了這個 desupport 。對於 Oracle 域服務羣集,必須繼續將 OCR 和投票磁盤文件放置在由 Oracle ASM 管理的磁盤組中。操作系統
Oracle 建議在安裝Oracle Clusterware 期間配置多個投票文件,以提升可用性。若是選擇將投票文件放入Oracle ASM 磁盤組,則若是使用normal 或high redundancy 高冗餘磁盤組,Oracle ASM 將確保配置多個投票文件。若是選擇將投票文件存儲在共享文件系統上,則選擇配置多個投票文件的選項,在這種狀況下,必須根據不一樣的磁盤指定三個不一樣的文件系統。若有必要,能夠在完成Oracle Clusterware 安裝過程後動態添加或替換投票文件,而無需中止羣集。
本章包括如下主題:
•管理 Oracle 羣集註冊表 (OCR) 和 Oracle 本地註冊表 (OLR)
•管理投票文件 (Voting Files )
一 管理 Oracle 羣集註冊表和 Oracle 本地註冊表
使用OCRCONFIG 、OCRDUMP 和OCRCHECK 管理OCR 和Oracle 本地註冊表(OLR )。
OCR 包含集羣中全部Oracle 資源的信息。
OLR 是一個相似於位於集羣中每一個節點上的OCR 的註冊表,但包含特定於每一個節點的信息。它包含有關Oracle Clusterware 的可管理性信息,包括各類服務之間的依賴關係。Oracle 高可用服務使用此信息。OLR 位於集羣中每一個節點的本地存儲上。其默認位置位於路徑Grid-home/cdatahost-name.olr 中,其中Grid-home 是Oracle Grid Infrastructure home ,host-name 是節點的主機名。
管理OCR 在如下主題中進行了說明:
•將Oracle 羣集註冊表遷移到Oracle 自動存儲管理
•添加/ 替換/ 修復/ 刪除Oracle 羣集註冊表位置
•備份Oracle 羣集註冊表
•恢復Oracle 羣集註冊表
•診斷Oracle 羣集註冊表問題
•使用導出和導入命令管理Oracle 羣集註冊表
•Oracle 本地註冊表
•升級和降級Oracle 羣集註冊表配置
相關主題
•關於 OCRCONFIG
使用 ocrconfig 命令管理 OCR 。使用此實用程序,您能夠導入、導出、添加、刪除、還原、覆蓋、備份、修復、替換、移動、升級或降級 OCR 。
• Oracle 羣集註冊表故障排除
1.1 將 Oracle 羣集註冊表 (OCR) 遷移到 Oracle 自動存儲管理 (ASM)
因爲Oracle Clusterware 存儲位於Oracle ASM 磁盤組中,您可使用Oracle Enterprise Manager 管理數據庫和Clusterware 存儲。
爲了提升Oracle Clusterware 存儲的可管理性,默認狀況下,在Oracle 12c 數據庫中OCR 配置到Oracle ASM 。可是,若是從之前版本的Oracle Clusterware 升級,則能夠將OCR 遷移到Oracle ASM 上,並利用在管理Oracle Clusterware 存儲方面的改進。
注:
若是從 Oracle Clusterware 的早期版本升級到 Oracle Clusterware 12c ,而且要將 OCR 存儲在 Oracle ASM 磁盤組中,則必須將「 ASM 兼容性」屬性設置爲 11.2.0.2 或更高版本。
要使用 OCRCONFIG 將 OCR 遷移到 Oracle ASM ,請執行如下操做:
$ crsctl query crs activeversion
使用Oracle ASM 配置助手(ASMCA )在羣集中的全部節點上配置和啓動Oracle ASM 。
注:
•若是 OCR 存儲在具備外部冗餘的 Oracle ASM 磁盤組中,那麼 Oracle 建議您將另外一個 OCR 位置添加到另外一個磁盤組中,以免在磁盤組中的某個磁盤出現故障時丟失 OCR 。
Oracle 不支持在不一樣的存儲類型上同時存儲 OCR ,例如在 Oracle ASM 和共享文件系統上同時存儲 OCR ,遷移期間除外。
•若是 Oracle ASM 實例在任何節點上失敗,則 OCR 在該特定節點上不可用。
若是受 Oracle ASM 實例故障影響的節點上運行的 CRSD 進程是 OCR 編寫器,則大多數 OCR 位置存儲在 Oracle ASM 中,而且在 Oracle ASM 實例在此節點上關閉期間嘗試對 OCR 進行 I/O 操做,則 CRSD 將中止並變得不可操做。羣集管理如今受此特定節點的影響。
在任何狀況下,一個節點上的一個 Oracle ASM 實例的故障都不會影響整個集羣。
•確保您建立的 Oracle ASM 磁盤組已裝載到羣集中的全部節點上。
若是添加多個OCR 位置,則能夠屢次運行此命令。最多能夠有五個OCR 位置。可是,每次連續運行都必須指向不一樣的磁盤組。
root :
對每一個配置的OCR 運行此命令。
下面的示例演示如何使用OCRCONFIG 將兩個ocr 遷移到Oracle ASM 。
注:
• OCR 繼承磁盤組的冗餘。若是您但願 OCR 具備高冗餘,則必須在建立磁盤組時將其配置爲具備高冗餘。
• Oracle 建議您將 Oracle ASM 的 SPFILE 放在這個新建立的 OCR 位置。
將 Oracle 羣集註冊表從 Oracle ASM 遷移到其餘類型的存儲
要將OCR 從Oracle ASM 遷移到其餘存儲類型,請執行如下操做:
$ crsctl query crs activeversion
注:
至少建立兩個主存儲位置的鏡像,以消除 OCR 的單點故障。 OCR 最多支持五個位置。
確保在掛載分區上至少有500 MB 的空間。
確保您建立的文件在集羣中的全部節點上都是可見的。
若是添加多個OCR 位置,能夠屢次運行此命令。此命令的每次連續運行都必須指向不一樣的文件位置。
要將OCR 備份位置遷移到文件系統,能夠做爲root 用戶運行如下命令:
若是配置了多個OCR 位置,則能夠屢次運行此命令。
下面的示例演示如何使用OCRCONFIG 將OCR 從Oracle ASM 遷移到NAS 。
對於未存儲在Oracle ASM 上的OCR ,Oracle 建議您在不一樣的設備上鏡像OCR 。
1.2 添加、替換、修復和刪除 Oracle 羣集註冊表位置
使用OCRCONFIG 管理OCR 位置。
Oracle Clusterware 的Oracle 安裝過程爲您提供了自動鏡像OCR 的選項。您能夠手動將鏡像的ocr 放在共享網絡文件系統(NFS )或經Oracle 認證的任何羣集文件系統上。或者,您能夠將OCR 放在Oracle ASM 上,並容許它根據您選擇的冗餘選項自動建立鏡像。
若是您:
•升級到Oracle Clusterware 12c ,但在升級過程當中沒有選擇鏡像OCR
•在Oracle Clusterware 安裝期間僅建立了一個OCR 位置Oracle 建議您配置:
•若是OCR 配置在非鏡像或非冗餘存儲上,則至少有三個OCR 位置。若是底層存儲不是RAID ,Oracle 強烈建議您鏡像OCR 。鏡像能夠幫助防止OCR 成爲單一故障點。
•若是在Oracle ASM 磁盤組上配置了OCR ,則至少有兩個OCR 位置。您應該在兩個獨立的磁盤組中配置OCR 。一般這是工做區和恢復區。
•若是OCR 配置在鏡像硬件或第三方鏡像捲上,則至少有兩個OCR 位置。
注:
•若是原始 OCR 位置不存在,則在運行 ocrconfig-add 或 ocrconfig-replace 命令以前,必須使用適當的權限建立一個空的( 0 字節) OCR 位置。
•確保您在 OCR 配置中指定的 OCR 設備存在,而且這些 OCR 設備有效。
•確保指定的 Oracle ASM 磁盤組存在並已裝載。
•新的 OCR 文件、設備或磁盤組必須可從羣集中的全部活動節點訪問。
除了鏡像OCR 位置外,管理OCR 位置還包括:
•添加Oracle 羣集註冊表位置
•刪除Oracle 羣集註冊表位置
•替換Oracle 羣集註冊表位置
•修復本地節點上的Oracle 羣集註冊表配置
•重寫Oracle 羣集註冊表數據丟失保護機制
注:
本節中的操做會影響整個集羣中的 OCR :這些操做會更改 Linux 和 UNIX 系統上 OCR.loc 文件中的 OCR 配置信息以及 Windows 系統上的註冊表項。
可是, ocrconfig 命令沒法修改已關閉節點或未運行 Oracle Clusterware 的節點的 OCR 配置信息。
1.2.1 添加 Oracle 羣集註冊表位置
使用本節中的過程添加OCR 位置。Oracle Clusterware 最多能夠管理五個冗餘的OCR 位置。
注:
若是 OCR 位於羣集文件系統文件或網絡文件系統上,請在執行本節中的過程以前建立一個空的( 0 字節) OCR 位置文件。
做爲root 用戶,運行如下命令將OCR 位置添加到Oracle ASM 或其餘存儲設備:
注:
在 Linux 和 UNIX 系統上,必須是 root 才能運行 ocrconfig 命令。在 Windows 系統上,用戶必須是管理員組的成員。
1.2.2 刪除 Oracle 羣集註冊表位置
若要刪除OCR 位置或失敗的OCR 位置,必須至少有一個其餘OCR 處於聯機狀態。您能夠刪除OCR 位置以減小與OCR 相關的開銷,或者中止鏡像OCR ,由於您已將OCR 移動到冗餘存儲(如RAID )。
以root 用戶身份執行如下過程以從Oracle Clusterware 環境中刪除OCR 位置:
注意:
除非聯機至少有一個其餘活動的 OCR 位置,不然不要執行此 OCR 刪除過程
file_name 變量能夠是設備名,也能夠是文件名。該命令更新運行Oracle 集羣的全部節點上的OCR 配置。
注:
沒法刪除惟一配置的 Oracle ASM OCR 位置,該位置位於與 Oracle ASM OCR 備份位置不一樣的 Oracle ASM 磁盤組中。
1.2.3 替換 Oracle 羣集註冊表位置
若是必須更改現有的OCR 位置,或將失敗的OCR 位置更改成工做位置,則若是全部剩餘的OCR 位置保持聯機,則可使用如下過程。ocrconfig-replace 命令要求至少配置兩個OCR 位置。
要更改Oracle 羣集註冊表位置,請執行如下操做:
完成如下步驟:
$ ocrcheck
OCRCHECK 顯示全部已註冊的OCR 位置以及它們是否可用(聯機)。若是OCR 位置忽然變得不可用,那麼Oracle Clusterware 可能須要很短的時間來顯示狀態的更改。
注:
要替換的 OCR 位置能夠是聯機或脫機。
$ crsctl check crs
若是聯機配置的OCR 位置少於兩個,則前面的命令將失敗。
若是隻配置了一個OCR 位置並聯機,則必須首先添加新位置,而後刪除失敗的位置,以下所示:
注:
若是您的羣集配置在 OCR 所在的節點中止時發生更改,而 Oracle Clusterware 堆棧正在其餘節點上運行,則 OCR 會檢測配置更改,並經過更改 OCR.loc 文件的內容自行更正配置。
1.2.4 修復本地節點上的 Oracle 羣集註冊表配置
若是羣集配置在該節點中止時發生更改,而且該節點是羣集中惟一的成員,則可能須要修復OCR 。
修復OCR 涉及添加、刪除或替換OCR 位置。例如,若是做爲當前Oracle RAC 羣集一部分的任何節點關閉,則必須更新已中止節點上的OCR 配置,以便該節點在從新啓動後從新加入羣集。在從新啓動的節點上已root 用戶使用如下命令,在該節點上,可使用destination_file 或+ASM_disk_group 來指示當前和目標OCR 位置:
注:
•沒法修復運行 Oracle 羣集就緒服務守護程序的節點上的 OCR 配置。
•使用 ocrconfig-repair 修復已中止節點上的 OCR 時,必須提供與其餘節點上的 OCR 文件名相同的 OCR 文件名(應區分大小寫)。
•若是運行 ocrconfig-add |-repair |-replace 命令,則必須能夠訪問要添加的設備、文件或 Oracle ASM 磁盤組。這意味着設備必須存在。必須建立空的( 0 字節) OCR 位置,或者必須存在並裝載 Oracle ASM 磁盤組。
1.2.5 重寫 Oracle 羣集註冊表數據丟失保護機制
OCR 有一種防止意外覆蓋致使數據丟失的機制。若是配置了鏡像OCR ,而且Oracle Clusterware 沒法訪問鏡像OCR 位置,而且也沒法驗證可用OCR 位置是否包含最新配置,則Oracle Clusterware 將阻止對可用OCR 位置進行進一步修改。此外,該過程經過禁止Oracle Clusterware 在只有一個OCR 可用的節點上啓動來防止覆蓋。在這種狀況下,Oracle 數據庫在Oracle 企業管理器、Oracle Clusterware 警報日誌文件或二者中顯示警報消息。若是此問題僅存在於一個節點,則可使用其餘節點啓動羣集數據庫。
可是,若是沒法啓動環境中的任何羣集節點,而且既不能修復OCR ,也不能恢復對全部OCR 位置的訪問,則能夠重寫保護機制。如下列表中描述的過程使您可以使用可用的OCR 位置啓動羣集。可是,重寫保護機制可能會致使丟失在建立上一個已知良好狀態時不可用的數據。
注意:
使用如下過程重寫 OCR 可能會致使從上次對當前可訪問的 OCR 進行已知良好的 OCR 更新到執行重寫之間的 OCR 更新丟失。換句話說,若是用於執行覆蓋的 OCR 位置不包含羣集環境的最新配置更新,則運行 ocrconfig-overwrite 命令可能會致使數據丟失。
若是節點沒法啓動而且警報日誌包含CLSD-1009 和CLSD-1011 消息,請執行如下過程覆蓋OCR 。
將節點的OCR 配置(Linux 和UNIX 系統上的OCR.loc 以及Windows 系統上的註冊表)與運行Oracle Clusterware 的其餘節點進行比較。
•若是配置不匹配,請運行ocrconfig-repair 。
•若是配置匹配,請確保節點能夠經過在Linux 和UNIX 系統上運行ls 命令來訪問全部配置的OCR 。在Windows 上,若是OCR 位置是一個文件,請使用dir 命令,並運行GuiOracleObjectManager.exe 以驗證名稱爲的羣集部分是否存在。
查看ocrdump 命令的輸出並肯定它是否有您的最新更新。
1.3 備份 Oracle 羣集註冊表
本節介紹如何備份OCR 內容並將其用於恢復。第一種方法使用自動生成的OCR 副本,第二種方法容許您手動發出備份命令:
•自動備份 :Oracle Clusterware 每四小時自動建立一次OCR 備份。在任什麼時候候,Oracle 數據庫都會保留OCR 的最後三個備份副本。建立備份的CRSD 過程還爲每一成天和每週以後建立並保留一個OCR 備份。不能自定義備份頻率或Oracle 數據庫保留的文件數。
•手動備份: 在Oracle Clusterware 堆棧所在的節點上運行ocrconfig-Manual backup 命令,以強制Oracle Clusterware 在任什麼時候候執行OCR 備份,而不是等待自動備份。必須以具備管理權限的用戶身份運行該命令。當您想要按需獲取二進制備份(例如在更改OCR 以前)時,-manualbackup 選項特別有用。OLR 只支持手動備份。
當集羣中的全部節點上的clusterware 堆棧都關閉時,ocrconfig-showbackup 命令列出的備份可能因節點而異。
注:
在節點上安裝或升級 Oracle Clusterware 或將節點添加到羣集後,當 root.sh 腳本完成時,它將備份 OLR 。
本節包括如下主題:
•列出備份文件
•更改備份位置
列出備份文件
運行如下命令列出備份文件:
ocrconfig -showbackup
ocrconfig -showbackup 命令顯示Oracle Clusterware 建立的備份文件的備份位置、時間戳和原始節點名。默認狀況下,-showbackup 選項同時顯示自動備份和手動備份的信息,但您能夠包括auto 或manual 標誌,以便分別僅顯示自動備份信息或手動備份信息。
運行如下命令檢查內容並驗證備份文件的完整性:
ocrdump -backupfile backup_file_name
您可使用任何備份軟件將自動生成的備份文件天天至少複製一次到主OCR 所在的其餘設備。
從Oracle Clusterware 12c release 2 (12.2 )起,生成備份的默認位置是Oracle ASM 磁盤組,能夠在Oracle ASM 磁盤組之間進行更改,但不能更改成本地文件系統。Oracle 建議將使用OCRCONFIG 實用程序建立的備份文件做爲使用標準操做系統或第三方工具的操做系統備份的一部分。
更改備份位置
運行如下命令以更改OCR 建立備份的位置:
前面命令中的file_name 變量能夠是全部節點均可以訪問的完整目錄路徑名,也能夠是裝載在全部節點上的Oracle ASM 磁盤組。在將OCR 備份位置更改成Oracle ASM 磁盤組以前,必須將OCR 遷移到Oracle ASM 。只有在單獨的磁盤組中至少有一個Oracle ASM OCR 位置時,才能將OCR 備份位置更改成Oracle ASM 磁盤組。
例如,要在目錄中指定OCR 備份位置,請執行如下操做:
要在Oracle ASM 磁盤組中指定OCR 備份位置,請執行如下操做:
注:
在 Linux 和 UNIX 系統上,您必須是 root 用戶才能運行大多數但不是全部 ocrconfig 命令選項。在 Windows 系統上,用戶必須是管理員組的成員。
1.4 還原 Oracle 羣集註冊表
爲您的平臺恢復OCR 的過程。
若是資源失敗,則在嘗試還原OCR 以前,請從新啓動該資源。做爲肯定OCR 失敗的驗證,運行ocrcheck ,若是命令返回失敗消息,則主OCR 和OCR 鏡像都失敗。
注意:
•您不能使用-import 選項從OCR 備份文件恢復配置,這在「使用導出和導入命令管理Oracle 集羣註冊表」中有解釋。相反,您必須使用- restore 選項,以下面的部分所述。
•若是您將OCR 存儲在ASM 磁盤組中,而磁盤組不可用,那麼您必須恢復並掛載ASM 磁盤組。
•在Linux 或UNIX 系統上恢復Oracle 集羣註冊表
•在Windows 系統上恢復Oracle 集羣註冊表
•在Oracle 重啓環境中恢復Oracle 集羣註冊表
在 Linux 或 UNIX 系統上恢復 Oracle 集羣註冊表
使用此過程可在Linux 或UNIX 系統上還原OCR 。
若是您將OCR 存儲在Oracle ASM 磁盤組上,而該磁盤組已損壞,則必須使用Oracle ASM 實用程序恢復Oracle ASM 磁盤組,而後在恢復OCR 以前從新掛載磁盤組。經過運行ocrconfig -restore 命令來恢復OCR ,以下面的過程當中所指示的那樣。
注意 :
若是原始 OCR 位置不存在,那麼在運行 ocrconfig -restore 命令以前,必須建立一個與原始 OCR 位置同名的空 (0 字節 )OCR 位置。
使用如下過程在 Linux 或 UNIX 系統上還原 OCR :
$ olsnodes
若是OCR 位於Oracle ASM 磁盤組中,則中止Oracle Clusterware 守護進程:
若是前面的命令返回因爲OCR 損壞而致使的任何錯誤,則經過在全部節點上以root 用戶身份運行如下命令來強制中止Oracle Clusterware :
注:
若是 OCR 備份文件位於 Oracle ASM 磁盤組中,請確保該磁盤組存在並已掛載
完成此步驟後,繼續執行步驟11 。
若是不將OCR 還原到羣集文件系統或網絡文件系統,請繼續下一步。
nocrs 選項確保CRSD 進程和OCR 不會從Oracle 集羣棧的其他部分開始。
忽略顯示的任何錯誤。
$ crsctl status resource ora.crsd -init
若是CRSD 正在運行,那麼經過運行如下命令做爲root 來中止它:
警告 :
不要在任何其餘命令中使用 -init 標誌,除非個人 Oracle 支持指示這樣作。
若是您不能在本地掛載磁盤組,那麼運行如下SQL*Plus 命令
SQL> drop diskgroup disk_group_name force including contents;
注意 :
若是原始的 OCR 位置不存在,那麼您必須在運行 ocrconfig - restore 命令以前建立一個空的 (0 字節 )OCR 位置。
•確保您在 OCR 配置中指定的 OCR 設備存在,而且這些 OCR 設備是有效的。
•若是您在 Oracle ASM 磁盤組中配置了 OCR ,那麼請確保存在並掛載 Oracle ASM 磁盤組。
•若是 OCR 備份文件位於 Oracle ASM 磁盤組中,則確保磁盤組存在並已掛載。
在集羣中沒有運行ocrconfig -restore 命令的全部節點上以root 用戶身份運行該命令。例如,若是您在一個四節點集羣的節點1 上運行了ocrconfig -restore 命令,那麼您必須在節點2 、3 和4 上運行ocrconfig -repair -replace 命令。
$ cluvfy comp ocr -n all -verbose
在 Windows 系統上恢復 Oracle 集羣註冊表
使用此過程在Windows 系統上恢復OCR 。
若是您將OCR 存儲在Oracle ASM 磁盤組上,而該磁盤組已損壞,則必須使用Oracle ASM 實用程序恢復Oracle ASM 磁盤組,而後在恢復OCR 以前從新掛載磁盤組。經過運行ocrconfig -restore 命令恢復OCR 。
注意 :
若是原始 OCR 位置不存在,那麼在運行 ocrconfig -restore 命令以前,必須建立一個與原始 OCR 位置同名的空 (0 字節 )OCR 位置。
使用如下程序在Windows 系統上恢復OCR:
C:\>olsnodes
C:\>crsctl stop crs
若是前面的命令返回任何因爲OCR 損壞而致使的錯誤,則經過在全部節點上做爲Administrators 組的成員運行如下命令來中止Oracle Clusterware:
C:\>crsctl stop crs –f
C:\>crsctl start crs -excl -nocrs
nocrs 選項確保CRSD 進程和OCR 不會從Oracle Clusterware 堆棧的其他部分開始。
忽略顯示的任何錯誤。
C:\>ocrconfig -restore file_name
確保在OCR 配置中指定的OCR 設備存在,而且這些OCR 設備有效。
注:
•確保您在OCR 配置中指定的OCR 設備存在,而且這些OCR 設備有效。
•確保指定的Oracle ASM 磁盤組存在並已裝載。
C:\>ocrcheck
C:\>crsctl stop crs –f
C:\>crsctl start crs
C:\>cluvfy comp ocr -n all –verbose
在 Oracle 從新啓動環境中還原 Oracle 羣集註冊表
使用如下過程能夠在Oracle 從新啓動環境中還原OCR 。
注:
•OCR 用於向後兼容。
•一旦建立了OCR 位置,它就不會在Oracle 重啓環境中獲得更新。
•若是已備份Oracle Restart home ,而且出現故障,則恢復Oracle Restart home 將恢復OCR 。
經過以root 用戶身份運行如下命令來還原OCR :
注:
確保在 OCR 配置中指定的 OCR 設備存在,而且這些 OCR 設備有效
運行ocrcheck 命令以驗證OCR 的完整性:
$ crsctl start has
1.5 診斷 Oracle 羣集註冊表問題
使用OCRDUMP 和OCRCHECK 實用程序診斷OCR 問題。
相關主題
•OCRDUMP 實用程序語法和選項
•使用OCRCHECK 實用程序
OCRCHECK 實用程序顯示OCR 塊格式的版本、可用和使用的總空間、OCRID 以及您配置的OCR 位置。
1.6 使用導出和導入命令管理 Oracle 羣集註冊表
除了使用自動建立的OCR 備份文件外,還應在進行重大配置更改以前和以後導出OCR 內容,例如從環境中添加或刪除節點、修改Oracle Clusterware 資源以及升級、降級或建立數據庫。經過使用ocrconfig-export 命令執行此操做,該命令將OCR 內容導出爲文件格式。
注意:
請注意如下恢復OCR 的限制:
•ocrconfig-restore 生成的文件格式與ocrconfig-export 生成的文件格式不兼容。ocrconfig-export 和ocrconfig-import 命令是兼容的。ocrconfig-manualbackup 和ocrconfig-restore 命令是兼容的。這兩種文件格式不兼容,不能互換使用。
•導出OCR 時,Oracle 建議在名稱字符串中包含「OCR」 、羣集名稱和時間戳。例如:
ocr_mycluster1_20090521_2130_export
注:
您所作的大多數配置更改不只會更改 OCR 內容,配置更改還會致使文件和數據庫對象的建立。
在恢復 OCR 時,這些更改中的一些一般不會恢復。若是某些配置更改應失敗,請不要將 OCR 還原爲還原到之前配置的更正。這可能會致使 OCR 位置的內容與系統其餘部分的狀態不匹配。
在 Linux 或 UNIX 系統上導入 Oracle 羣集註冊表內容
使用如下過程能夠在Linux 或UNIX 系統上導入OCR 。
注意 :
此過程假設集羣中的全部節點都默認安裝了 Oracle 集羣軟件,其中啓用了 Oracle 集羣軟件自動啓動。
$ olsnodes
若是前面的命令返回任何因爲OCR 損壞而致使的錯誤,則經過在全部節點上以根用戶身份運行如下命令來中止Oracle Clusterware:
忽略顯示的任何錯誤。
檢查CRSD 是否正在運行。Root 用戶中止它運行如下命令:
若是要將OCR 導入集羣或網絡文件系統,請跳到步驟7 。
注意 :
若是原始的 OCR 位置不存在,那麼您必須在運行 ocrconfig -import 命令以前建立一個空的 (0 字節 )OCR 位置。
•確保您在 OCR 配置中指定的 OCR 設備存在,而且這些 OCR 設備是有效的。
•若是您在 Oracle ASM 磁盤組中配置了 OCR ,那麼請確保存在並掛載 Oracle ASM 磁盤組。
$ cluvfy comp ocr -n all –verbose
在 Windows 系統上導入 Oracle 集羣註冊表內容
使用此過程在Windows 系統上導入OCR 。
C: \ > olsnodes
C:\>crsctl stop crs
若是前面的命令返回任何因爲OCR 損壞而致使的錯誤,則經過在全部節點上做爲Administrators 組的成員運行如下命令來中止Oracle Clusterware:
C:\>crsctl stop crs -f
C:\>crsctl 啓動crs -excl
忽略顯示的任何錯誤。
檢查CRSD 是否正在運行。若是是,請做爲Administrators 組的成員運行如下命令來中止它:
C:\>crsctl start crs -excl
C:\>ocrconfig -import file_name
確保您在OCR 配置中指定的OCR 設備存在,而且這些OCR 設備是有效的。
C: \ > ocrcheck
C:\>crsctl stop crs –f
C:\>crsctl start crs
C:\>cluvfy comp ocr -n all –verbose
1.7 Oracle 本地註冊表
在Oracle Clusterware 12c 中,集羣中的每一個節點都有一個用於節點特定資源的本地註冊表,稱爲Oracle 本地註冊表(OLR ),在Oracle Clusterware 安裝OCR 時安裝並配置該註冊表。每一個節點上的多個進程對它們所駐留的節點特定的OLR 具備同時讀寫訪問權,而無論Oracle Clusterware 是在運行仍是徹底正常工做。
默認狀況下,OLR 位於每一個節點上的Grid_home/cdata/host_name.OLR 。使用OCRCHECK 、OCRDUMP 和OCRCONFIG 實用程序做爲根目錄管理OLR 使用-local 選項。
•您可使用OCRCHECK 實用程序檢查本地節點上OLR 的狀態,以下所示:
•您可使用OCRDUMP 實用程序將本地節點上OLR 的內容顯示到啓動程序的文本終端,以下所示:
•您可使用OCRCONFIG 實用程序在本地節點上的OLR 上執行管理任務。
注:
*Oracle 建議您使用 -manualbackup 和 -restore 命令,而不是 -import 和 -export 命令。
olr_myhost1_20090603_0130_export
注意 :
Oracle 集羣在安裝或升級後備份 OLR ,默認狀況下,此後按期備份 OLR 。在初始備份以後的任什麼時候候,您均可以手動備份 OLR 。
Oracle 還建議,當您將 OCR 從 Oracle ASM 遷移到其餘存儲時,或者當您將 OCR 從其餘存儲遷移到 Oracle ASM 時,建立一個新的備份。
OLR 的默認備份位置位於 Grid_home/cdata/host_name 路徑中。
ocrdump -local -backupfile olr_backup_file_name
ocrconfig -local -backuploc new_olr_backup_path
$ cluvfy comp olr
1.8 升級和降級 Oracle 羣集註冊表配置
升級Oracle Clusterware 時,它會自動運行ocrconfig-upgrade 命令。要降級,請遵循每一個組件的降級說明,並使用ocrconfig-degrade 命令降級OCR 。若是要升級OCR ,則可使用OCRCHECK 實用程序驗證OCR 的完整性。
二:管理投票文件 (Voting Files)
本節包括如下主題,用於管理羣集中的投票文件:
•在Oracle ASM 上存儲投票文件
•備份投票文件
•恢復投票文件
•添加/ 刪除或遷移投票文件
警告 :
用於備份和恢復之前版本的 Oracle Clusterware 中的投票文件的 dd 命令在 Oracle Clusterware 12c 中不受支持。恢復使用 dd 或 cp 命令複製的投票文件能夠防止 Oracle Clusterware 12c 堆棧出現。使用本章中描述的備份和恢復過程來確保正確的投票文件功能。
注意 :
•投票文件管理須要一個有效的和工做的 OCR 。在添加、刪除、替換或恢復投票文件以前,以 root 用戶身份運行這個命令。若是 OCR 不可用或已損壞,則必須按照「恢復 Oracle 集羣註冊表」中的描述恢復 OCR 。
若是你從之前的 Oracle Clusterware 升級到 Oracle Clusterware 12c ,而且你想在一個 ASM 磁盤組中存儲投票文件,那麼你必須將 ASM 兼容性屬性設置爲 12.1.0.0 。
2.1 在 Oracle ASM 上存儲投票文件
若是選擇將投票文件存儲在Oracle ASM 中,則Oracle ASM 會將羣集的全部投票文件存儲在您選擇的磁盤組中。
Oracle ASM 管理投票文件的方式與其存儲的其餘文件不一樣。不能使用存儲在Oracle ASM 中的投票文件和不存儲在同一羣集的Oracle ASM 中的投票文件。
在Oracle ASM 上配置投票文件後,只能使用crsctl replace votedisk 命令更改投票文件的配置。即便沒有有效的投票文件,狀況也是如此。儘管crsctl query css votedisk 報告使用中的零票磁盤,Oracle Clusterware 仍然記得Oracle ASM 正在使用而且須要replace 動詞這一事實。只有在使用replace 謂詞將投票文件移回非Oracle ASM 存儲以後,這些謂詞才能再次使用add css votedisk 和delete css votedisk 。
能夠存儲在特定Oracle ASM 磁盤組中的投票文件數取決於磁盤組的冗餘度。
默認狀況下,Oracle ASM 會將每一個投票文件放在磁盤組中其本身的故障組中。故障組是磁盤組中磁盤的子集。故障組定義共享組件的磁盤,這樣,若是其中一個失敗,則共享組件的其餘磁盤也可能失敗。能夠將一組共享同一SCSI 控制器的SCSI 磁盤定義爲故障組。故障組用於肯定用於存儲冗餘數據的Oracle ASM 磁盤。例如,若是爲文件指定了雙向鏡像,則文件擴展數據塊的冗餘副本必須存儲在單獨的故障組中。
爲Oracle ASM 磁盤組選擇的冗餘級別決定了Oracle ASM 如何鏡像磁盤組中的文件,並決定了所需的磁盤數量和磁盤空間量。若是投票文件位於磁盤組中,則包含Oracle Clusterware 文件(OCR 和投票文件)的磁盤組的最小故障組數高於其餘磁盤組,由於投票文件存儲在仲裁故障組中。
仲裁失敗組是一種特殊類型的失敗組,用於存儲Oracle Clusterware 投票文件。仲裁失敗組用於確保指定失敗組的仲裁可用。當Oracle ASM 裝載包含Oracle Clusterware 文件的磁盤組時,仲裁故障組用於肯定若是丟失一個或多個故障組,是否能夠裝載磁盤組。仲裁失敗組中的磁盤不包含用戶數據,所以在肯定存儲用戶數據的冗餘要求時,不考慮仲裁失敗組。
Oracle ASM flex disk group 是支持Oracle ASM 文件組和配額組的磁盤組類型。通常來講,除了在磁盤組級別以外,flex 磁盤組還容許用戶在數據庫的粒度上管理存儲。
冗餘級別包括:
•外部冗餘 :外部冗餘磁盤組至少須要一個磁盤設備。外部冗餘磁盤組中的有效磁盤空間是其全部設備中磁盤空間的總和。
因爲Oracle ASM 不鏡像外部冗餘磁盤組中的數據,所以Oracle 建議您對存儲設備(如RAID )或提供本身的數據保護機制的其餘相似設備使用外部冗餘。
•正常冗餘 :正常冗餘磁盤組至少須要兩個磁盤設備(或兩個故障組)。正常冗餘磁盤組中的有效磁盤空間是其全部設備中磁盤空間總和的一半。
對於Oracle Clusterware 文件,正常冗餘磁盤組至少須要三個磁盤設備(故障組使用三個磁盤中的兩個,仲裁故障組使用全部三個磁盤),並提供三個投票文件和一個OCR 和OCR 鏡像。當使用普通冗餘磁盤組時,羣集能夠在丟失一個故障組的狀況下生存。
•高冗餘 :在高冗餘磁盤組中,Oracle ASM 使用三向鏡像來提升性能並提供最高級別的可靠性。高冗餘磁盤組至少須要三個磁盤設備(或三個故障組)。高冗餘磁盤組中的有效磁盤空間是其全部設備中磁盤空間總和的三分之一。
對於Oracle Clusterware 文件,高冗餘磁盤組至少須要五個磁盤設備(故障組使用五個磁盤中的三個,仲裁故障組使用全部五個磁盤),並提供五個投票文件、一個OCR 和兩個OCR 鏡像。因爲具備高冗餘度,集羣能夠在兩個故障組丟失的狀況下生存。
使用crsctl replace votedisk 命令,能夠將給定的投票文件集從一個Oracle ASM 磁盤組移動到另外一個磁盤組,或移動到通過認證的文件系統上。若是將投票文件從一個Oracle ASM 磁盤組移動到另外一個,則能夠經過將投票文件放置在與前一個磁盤組具備不一樣冗餘級別的磁盤組中來更改投票文件的數量。
注意 :
•不能直接影響一個磁盤組中投票文件的數量。
•不能使用 crsctl 添加 | 刪除 votedisk 命令對存儲在 ASM 磁盤組中的投票文件,由於 ASM 根據磁盤組的冗餘級別管理投票文件的數量。
•若是投票文件存儲在 ASM 磁盤組中,則沒法將投票文件添加到集羣文件系統。 Oracle 不支持在 ASM 中同時在同一集羣的集羣文件系統上直接設置投票文件。
2.2 備份投票文件
Oracle Clusterware 會在任何配置更改過程當中自動備份OCR 中的投票文件數據,並自動將數據還原到您添加的任何投票文件中。
可是,若是全部投票文件都已損壞,則能夠按照「還原投票文件」中的說明還原它們。
相關主題
•恢復投票文件
2.3 還原投票文件
若是全部投票文件都已損壞,則能夠還原它們,以下所示:
只有當OCR 也已損壞或不可用時(例如OCR 位於Oracle ASM 上且磁盤組再也不可用),才須要執行此步驟。
若是全部投票文件都已損壞,則此列表可能爲空,或者可能有標記爲狀態3 或關閉的條目。
•若是投票文件存儲在Oracle ASM 中,則運行如下命令將投票文件遷移到指定的Oracle ASM 磁盤組:
crsctl replace votedisk +asm_disk_group
將投票文件遷移到的Oracle ASM 磁盤組必須存在於Oracle ASM 中。不管投票文件存儲在Oracle ASM 或其餘存儲設備中,均可以使用此命令。
•若是您沒有在Oracle ASM 中存儲投票文件,則使用在上一步中得到的文件通用標識符(FUID )運行如下命令:
$ crsctl delete css votedisk FUID
添加投票文件,以下所示:
$ crsctl add css votedisk path_to_voting_disk
5.root 用戶中止crs
注:
若是 Oracle Clusterware 堆棧以獨佔模式運行,則使用 -f 選項強制關閉堆棧。
6.root 用戶啓動crs
2.4 添加、刪除或遷移投票文件
安裝Oracle Clusterware 後,能夠添加、刪除和遷移投票文件。請注意,用於執行此操做的命令不一樣,具體取決於您的投票文件是位於Oracle ASM 中,仍是位於其餘存儲選項中。
修改存儲在Oracle ASM 中的投票文件
•要顯示投票文件FUID 和每一個當前投票文件的文件路徑,請運行
crsctl query css votedisk 命令顯示相似於如下內容的輸出:
此命令返回磁盤序列號、磁盤狀態、FUID 、磁盤路徑以及存儲磁盤的Oracle ASM 磁盤組的名稱。
•要將投票文件從Oracle ASM 遷移到備用存儲設備,請使用如下命令指定要用其替換Oracle ASM 磁盤組的非Oracle ASM 存儲設備的路徑:
$ crsctl replace votedisk path_to_voting_disk
您能夠在羣集中的任何節點上運行此命令。
•要將未存儲在Oracle ASM 中的全部投票文件替換爲Oracle ASM 磁盤組中由Oracle ASM 管理的投票文件,請運行如下命令:
$ crsctl replace votedisk +asm_disk_group
修改未存儲在Oracle ASM 上的投票文件
•要顯示投票文件 FUID 和每一個當前投票文件的文件路徑,請運行如下命令:
該命令返回磁盤序列號、磁盤狀態、FUID 和磁盤路徑,沒有ASM 磁盤組的名稱。
•要添加一個或多個投票文件,運行如下命令,將path_to_voting_disk 變量替換爲一個或多個以空格分隔的完整投票文件路徑:
$ crsctl add css votedisk path_to_voting_disk [...]
•若要將投票文件A 替換爲投票文件B ,必須先添加投票文件B ,而後刪除投票文件A 。若要添加新磁盤並刪除現有磁盤,請運行如下命令,將path_To_voting_disk B 變量替換爲投票文件B 的徹底限定路徑名:
$ crsctl add css votedisk path_to_voting_diskB -purge
-purge 選項刪除現有投票文件。
•要刪除投票文件,請運行如下命令,指定要刪除的投票文件的一個或多個空格分隔的投票文件fuid 或逗號分隔的目錄路徑:
$ crsctl delete css votedisk {FUID | path_to_voting_disk[...]}
注:
若是羣集已關閉,而且因爲丟失投票文件而沒法從新啓動,則必須以根用戶身份運行如下命令以獨佔模式啓動 CSS :
以獨佔模式啓動 CSS 後,能夠替換投票文件,以下所示:
將投票文件遷移到 Oracle ASM
要將投票文件遷移到Oracle ASM ,請在如下命令中指定Oracle ASM 磁盤組名稱:
$ crsctl replace votedisk +asm_disk_group
您能夠在羣集中的任何節點上運行此命令。
驗證投票文件位置
修改投票文件後,驗證投票文件位置,以下所示:
$ crsctl query css votedisk