Oracle叢集軟體管理-OCR和Voting Files管理

chenoracle發表於2020-03-18

Oracle 叢集軟體管理 -OCR Voting Files 管理

--- Oracle® Clusterware   Clusterware Administration and Deployment Guide

6 Managing Oracle Cluster Registry and Voting Files

Oracle Clusterware 包括兩個重要的元件,用於管理配置和節點成員關係:Oracle 叢集註冊中心(OCR) ,它還包括本地元件Oracle 本地註冊中心(OLR) Voting Files 投票檔案。

OCR 儲存Oracle 叢集和Oracle RAC 資料庫配置資訊

OLR 駐留在叢集中的每個節點上,管理每個特定節點的Oracle 叢集配置資訊

Voting Files 投票檔案儲存關於節點成員資格的資訊。要使節點成為叢集的成員,叢集中的所有節點都必須能夠訪問每個仲裁檔案。

注意:

Oracle Clusterware 12c 不支援使用原始或塊裝置。要從使用原始裝置或塊裝置的早期 Oracle Clusterware 版本升級到 Oracle Clusterware 12c ,必須在升級之前將 OCR 和投票檔案遷移到 Oracle 自動儲存管理( Oracle ASM )或共享檔案系統。

•您可以在 Oracle ASM 上儲存 OCR 和投票檔案,或在獨立群集上儲存共享檔案系統。

Oracle 資料庫 12c 版本 2 12.2 )中,不支援直接在共享檔案系統上放置 OCR 和投票磁碟檔案。

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 ,請執行以下操作:

1. 確保已升級到Oracle Clusterware 12c 。執行以下命令以驗證當前執行的版本:

$ crsctl query crs activeversion

2. 使用Oracle ASM 配置助手(ASMCA )在群集中的所有節點上配置和啟動Oracle ASM

3. 使用ASMCA 建立至少與現有OCR 大小相同且至少具有正常(normal) 冗餘的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 磁碟組已裝載到群集中的所有節點上。

4. 要將OCR 新增到Oracle ASM 磁碟組,請確保Oracle Clusterware 堆疊正在執行,並以root 使用者身份執行以下命令:

# ocrconfig -add +new_disk_group

如果新增多個OCR 位置,則可以多次執行此命令。最多可以有五個OCR 位置。但是,每次連續執行都必須指向不同的磁碟組。

5. 要刪除不再使用的儲存配置,請執行以下命令

root

# ocrconfig -delete old_storage_location

對每個配置的OCR 執行此命令。

下面的示例演示如何使用OCRCONFIG 將兩個ocr 遷移到Oracle ASM

# ocrconfig -add +new_disk_group

# ocrconfig -delete /ocrdata/ocr_1

# ocrconfig -delete /ocrdata/ocr_2

注:

OCR 繼承磁碟組的冗餘。如果您希望 OCR 具有高冗餘,則必須在建立磁碟組時將其配置為具有高冗餘。

Oracle 建議您將 Oracle ASM SPFILE 放在這個新建立的 OCR 位置。

Oracle 群集登錄檔從 Oracle ASM 遷移到其他型別的儲存

要將OCR Oracle ASM 遷移到其他儲存型別,請執行以下操作:

1. 確保升級到Oracle Clusterware 12c 已完成。執行以下命令以驗證當前執行的版本:

$ crsctl query crs activeversion

2. 在共享或群集檔案系統中建立具有以下許可權的檔案:root oinstall 640

注:

至少建立兩個主儲存位置的映象,以消除 OCR 的單點故障。 OCR 最多支援五個位置。

3.  確保在掛載分割槽上至少有500 MB 的空間。

4.  確保您建立的檔案在叢集中的所有節點上都是可見的。

5.  要將檔案新增為OCR 位置,請確保Oracle 叢集堆疊正在執行,並以root 使用者身份執行以下命令:

# ocrconfig -add file_location

如果新增多個OCR 位置,可以多次執行此命令。此命令的每次連續執行都必須指向不同的檔案位置。

6.  確保沒有在ASM 磁碟組上配置OCR 備份位置。

要將OCR 備份位置遷移到檔案系統,可以作為root 使用者執行以下命令:

# ocrconfig –backuploc file_location

7. 要刪除不再使用的儲存配置,請以root 使用者身份執行以下命令:

# ocrconfig -delete +asm_disk_group

如果配置了多個OCR 位置,則可以多次執行此命令。

下面的示例演示如何使用OCRCONFIG OCR Oracle ASM 遷移到NAS

# ocrconfig -add /nas/ocr

對於未儲存在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 或其他儲存裝置:

# ocrconfig -add +asm_disk_group | file_name

注:

Linux UNIX 系統上,必須是 root 才能執行 ocrconfig 命令。在 Windows 系統上,使用者必須是管理員組的成員。

1.2.2  刪除 Oracle 群集登錄檔位置

若要刪除OCR 位置或失敗的OCR 位置,必須至少有一個其他OCR 處於聯機狀態。您可以刪除OCR 位置以減少與OCR 相關的開銷,或者停止映象OCR ,因為您已將OCR 移動到冗餘儲存(如RAID )。

root 使用者身份執行以下過程以從Oracle Clusterware 環境中刪除OCR 位置:

1. 確保除要刪除的OCR 位置外,至少有一個OCR 位置處於聯機狀態。

注意:

除非聯機至少有一個其他活動的 OCR 位置,否則不要執行此 OCR 刪除過程

2. 在群集中的任何節點上執行以下命令以從Oracle ASM 或其他位置刪除OCR 位置:

# ocrconfig -delete +ASM_disk_group | file_name

file_name 變數可以是裝置名,也可以是檔名。該命令更新執行Oracle 叢集的所有節點上的OCR 配置。

注:

無法刪除唯一配置的 Oracle ASM OCR 位置,該位置位於與 Oracle ASM OCR 備份位置不同的 Oracle ASM 磁碟組中。

1.2.3  替換 Oracle 群集登錄檔位置

如果必須更改現有的OCR 位置,或將失敗的OCR 位置更改為工作位置,則如果所有剩餘的OCR 位置保持聯機,則可以使用以下過程。ocrconfig-replace 命令要求至少配置兩個OCR 位置。

要更改Oracle 群集登錄檔位置,請執行以下操作:

完成以下步驟:

1. 使用OCRCHECK 實用程式,使用以下命令驗證要替換的OCR 以外的OCR 副本是否聯機:

$ ocrcheck

OCRCHECK 顯示所有已註冊的OCR 位置以及它們是否可用(聯機)。如果OCR 位置突然變得不可用,那麼Oracle Clusterware 可能需要很短的時間來顯示狀態的更改。

注:

要替換的 OCR 位置可以是聯機或離線。

2. 使用以下命令驗證Oracle Clusterware 是否在要執行替換操作的節點上執行:

$ crsctl check crs

3. root 使用者身份執行以下命令,使用目標檔案或+ASM 磁碟組替換當前OCR 位置,以指示當前和目標OCR 位置:

# ocrconfig -replace current_OCR_location -replacement new_OCR_location

如果聯機配置的OCR 位置少於兩個,則前面的命令將失敗。

如果只配置了一個OCR 位置並聯機,則必須首先新增新位置,然後刪除失敗的位置,如下所示:

# ocrconfig -add new_OCR_location

# ocrconfig -delete current_OCR_location

注:

如果您的群集配置在 OCR 所在的節點停止時發生更改,而 Oracle Clusterware 堆疊正在其他節點上執行,則 OCR 會檢測配置更改,並通過更改 OCR.loc 檔案的內容自行更正配置。

1.2.4  修復本地節點上的 Oracle 群集登錄檔配置

如果群集配置在該節點停止時發生更改,並且該節點是群集中唯一的成員,則可能需要修復OCR

修復OCR 涉及新增、刪除或替換OCR 位置。例如,如果作為當前Oracle RAC 群集一部分的任何節點關閉,則必須更新已停止節點上的OCR 配置,以便該節點在重新啟動後重新加入群集。在重新啟動的節點上已root 使用者使用以下命令,在該節點上,可以使用destination_file +ASM_disk_group 來指示當前和目標OCR 位置:

# ocrconfig -repair -replace current_OCR_location -replacement target_OCR_location

注:

•無法修復執行 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

1. 試圖解決CLSD-1009 CLSD-1011 訊息的原因。

將節點的OCR 配置(Linux UNIX 系統上的OCR.loc 以及Windows 系統上的登錄檔)與執行Oracle Clusterware 的其他節點進行比較。

•如果配置不匹配,請執行ocrconfig-repair

•如果配置匹配,請確保節點可以通過在Linux UNIX 系統上執行ls 命令來訪問所有配置的OCR 。在Windows 上,如果OCR 位置是一個檔案,請使用dir 命令,並執行GuiOracleObjectManager.exe 以驗證名稱為的群集部分是否存在。

2. 確保最新的OCR 包含最新的OCR 更新。

檢視ocrdump 命令的輸出並確定它是否有您的最新更新。

3. 如果無法解決導致CLSD 訊息的問題,請執行命令ocrconfig-overwrite 啟動節點。

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 建立備份的位置:

# ocrconfig -backuploc file_name

前面命令中的file_name 變數可以是所有節點都可以訪問的完整目錄路徑名,也可以是裝載在所有節點上的Oracle ASM 磁碟組。在將OCR 備份位置更改為Oracle ASM 磁碟組之前,必須將OCR 遷移到Oracle ASM 。只有在單獨的磁碟組中至少有一個Oracle ASM OCR 位置時,才能將OCR 備份位置更改為Oracle ASM 磁碟組。

例如,要在目錄中指定OCR 備份位置,請執行以下操作:

# ocrconfig -backuploc Grid_home/cdata/cluster3

要在Oracle ASM 磁碟組中指定OCR 備份位置,請執行以下操作:

# ocrconfig –backuploc +bkupdg

注:

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

1. 在一個節點上執行以下命令,列出叢集中的節點:

$ olsnodes

2. 根據OCR 是位於Oracle ASM 磁碟組中還是位於網路連線儲存(NAS )中,通過在所有節點上以root 使用者身份執行以下命令之一來停止Oracle Clusterware

如果OCR 位於Oracle ASM 磁碟組中,則停止Oracle Clusterware 守護程式:

# crsctl stop crs

如果前面的命令返回由於OCR 損壞而導致的任何錯誤,則通過在所有節點上以root 使用者身份執行以下命令來強制停止Oracle Clusterware

# crsctl stop crs –f

3. 如果要將OCR 還原到群集檔案系統或網路檔案系統,請以root 使用者身份執行以下命令,以使用可以在“Listing Backup Files ”中標識的OCR 備份還原OCR

# ocrconfig -restore file_name

注:

如果 OCR 備份檔案位於 Oracle ASM 磁碟組中,請確保該磁碟組存在並已掛載

完成此步驟後,繼續執行步驟11

如果不將OCR 還原到群集檔案系統或網路檔案系統,請繼續下一步。

4. 以獨佔模式啟動一個節點上的Oracle Clusterware 堆疊,方法是以root 使用者身份執行以下命令:

# crsctl start crs -excl –nocrs

nocrs 選項確保CRSD 程式和OCR 不會從Oracle 叢集棧的其餘部分開始。

忽略顯示的任何錯誤。

5.  執行以下命令檢查CRSD 是否正在執行:

$ crsctl status resource ora.crsd -init

如果CRSD 正在執行,那麼通過執行以下命令作為root 來停止它:

# crsctl stop resource ora.crsd –init

警告 :

不要在任何其他命令中使用 -init 標誌,除非我的 Oracle 支援指示這樣做。

6.  要將OCR 恢復到Oracle ASM 磁碟組,必須首先使用SQL*Plus 建立一個磁碟組,該磁碟組的名稱與要恢復的磁碟組相同,並將其掛載到本地節點上。

如果您不能在本地掛載磁碟組,那麼執行以下SQL*Plus 命令

SQL> drop diskgroup disk_group_name force including contents;

7.  使用OCR 備份來恢復OCR ,您可以在“Listing Backup Files ”中識別該OCR 備份,方法是作為root 使用者執行以下命令:

# ocrconfig -restore file_name

注意 :

如果原始的 OCR 位置不存在,那麼您必須在執行 ocrconfig - restore 命令之前建立一個空的 (0 位元組 )OCR 位置。

•確保您在 OCR 配置中指定的 OCR 裝置存在,並且這些 OCR 裝置是有效的。

•如果您在 Oracle ASM 磁碟組中配置了 OCR ,那麼請確儲存在並掛載 Oracle ASM 磁碟組。

•如果 OCR 備份檔案位於 Oracle ASM 磁碟組中,則確保磁碟組存在並已掛載。

8.  驗證OCR 的完整性:

# ocrcheck

9.  停止Oracle 叢集在節點上的獨佔模式執行:

# crsctl stop crs -f

10.  在叢集中沒有執行ocrconfig -restore 命令的所有節點上以root 使用者身份執行該命令。例如,如果您在一個四節點叢集的節點1 上執行了ocrconfig -restore 命令,那麼您必須在節點2 3 4 上執行ocrconfig -repair -replace 命令。

11.  在所有節點上以root 使用者身份執行以下命令,開始啟動Oracle 叢集:

# crsctl start crs

12.  執行以下CVU 命令,驗證作為叢集一部分配置的所有叢集節點的OCR 完整性:

$ 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:

1.  在一個節點上執行以下命令,列出叢集中的節點:

C:\>olsnodes

2.  通過在所有節點上作為Administrators 組的成員執行以下命令來停止Oracle 叢集:

C:\>crsctl stop crs

如果前面的命令返回任何由於OCR 損壞而導致的錯誤,則通過在所有節點上作為Administrators 組的成員執行以下命令來停止Oracle Clusterware:

C:\>crsctl stop crs –f

3.  以獨佔模式在一個節點上啟動Oracle 叢集軟體堆疊,方法是作為Administrators 組的成員執行以下命令:

C:\>crsctl start crs -excl -nocrs

nocrs 選項確保CRSD 程式和OCR 不會從Oracle Clusterware 堆疊的其餘部分開始。

忽略顯示的任何錯誤。

4. Administrators 組的成員身份執行以下命令,使用在“Listing Backup Files ”中標識的OCR 備份檔案還原OCR

C:\>ocrconfig -restore file_name

確保在OCR 配置中指定的OCR 裝置存在,並且這些OCR 裝置有效。

注:

•確保您在OCR 配置中指定的OCR 裝置存在,並且這些OCR 裝置有效。

•確保指定的Oracle ASM 磁碟組存在並已裝載。

5. 驗證OCR 的完整性:

C:\>ocrcheck

6. 在以獨佔模式執行的節點上停止Oracle Clusterware

C:\>crsctl stop crs –f

7. 作為Administrators 組的成員在所有節點上執行以下命令,開始啟動Oracle Clusterware

C:\>crsctl start crs

8. 執行以下群集驗證實用程式(CVU )命令以驗證群集資料庫中所有節點的OCR 完整性:

C:\>cluvfy comp ocr -n all –verbose

Oracle 重新啟動環境中還原 Oracle 群集登錄檔

使用以下過程可以在Oracle 重新啟動環境中還原OCR

注:

OCR 用於向後相容。

•一旦建立了OCR 位置,它就不會在Oracle 重啟環境中得到更新。

•如果已備份Oracle Restart home ,並且出現故障,則恢復Oracle Restart home 將恢復OCR

1. 在所有節點上以root 使用者身份執行以下命令,以停止Oracle 高可用服務:

# crsctl stop has [-f]

2. 執行ocrcheck -config 命令確定OCR 位置,然後在該位置建立一個具有適當許可權的空(0 位元組)OCR 位置。

通過以root 使用者身份執行以下命令來還原OCR

# crsctl pin css -n host_name

注:

確保在 OCR 配置中指定的 OCR 裝置存在,並且這些 OCR 裝置有效

4. 執行ocrcheck 命令以驗證OCR 的完整性:

5. 在所有節點上執行以下命令,啟動Oracle 高可用服務:

$ 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 叢集軟體自動啟動。

1.  在一個節點上執行以下命令,列出叢集中的節點:

$ olsnodes

2.  通過在所有節點上以root 使用者身份執行以下命令來停止Oracle 叢集:

# crsctl stop crs

如果前面的命令返回任何由於OCR 損壞而導致的錯誤,則通過在所有節點上以根使用者身份執行以下命令來停止Oracle Clusterware:

# crsctl stop crs –f

3.  以獨佔模式在一個節點上啟動Oracle 叢集堆疊,以root 使用者身份執行以下命令:

# crsctl start crs -excl

忽略顯示的任何錯誤。

檢查CRSD 是否正在執行。Root 使用者停止它執行以下命令:

# crsctl stop resource ora.crsd -init

4.  root 使用者身份執行以下命令匯入OCR:

# ocrconfig -import file_name

如果要將OCR 匯入叢集或網路檔案系統,請跳到步驟7

注意 :

如果原始的 OCR 位置不存在,那麼您必須在執行 ocrconfig -import 命令之前建立一個空的 (0 位元組 )OCR 位置。

•確保您在 OCR 配置中指定的 OCR 裝置存在,並且這些 OCR 裝置是有效的。

•如果您在 Oracle ASM 磁碟組中配置了 OCR ,那麼請確儲存在並掛載 Oracle ASM 磁碟組。

5.  驗證OCR 的完整性:

# ocrcheck

6.  停止Oracle 叢集在節點上的獨佔模式執行:

# crsctl stop crs –f

7.  在所有節點上以根使用者身份執行以下命令,開始啟動Oracle 叢集:

# crsctl start crs

8.  執行以下CVU 命令,驗證作為叢集一部分配置的所有叢集節點的OCR 完整性:

$ cluvfy comp ocr -n all –verbose

Windows 系統上匯入 Oracle 叢集登錄檔內容

使用此過程在Windows 系統上匯入OCR

1.  在一個節點上執行以下命令,列出叢集中的節點:

C: \ > olsnodes

2.  通過在所有節點上作為Administrators 組的成員執行以下命令來停止Oracle 叢集:

C:\>crsctl stop crs

如果前面的命令返回任何由於OCR 損壞而導致的錯誤,則通過在所有節點上作為Administrators 組的成員執行以下命令來停止Oracle Clusterware:

C:\>crsctl stop crs -f

3.  以獨佔模式在一個節點上啟動Oracle 叢集軟體堆疊,方法是作為Administrators 組的成員執行以下命令:

C:\>crsctl 啟動crs -excl

忽略顯示的任何錯誤。

檢查CRSD 是否正在執行。如果是,請作為Administrators 組的成員執行以下命令來停止它:

C:\>crsctl start crs -excl

4.  通過作為Administrators 組的成員執行以下命令來匯入OCR:

C:\>ocrconfig -import file_name

確保您在OCR 配置中指定的OCR 裝置存在,並且這些OCR 裝置是有效的。

5.  驗證OCR 的完整性:

C: \ > ocrcheck

6.  停止Oracle 叢集在節點上的獨佔模式執行:

C:\>crsctl stop crs –f

7.  在所有節點上作為Administrators 組的成員執行以下命令,開始啟動Oracle 叢集:

C:\>crsctl start crs

8.  執行以下叢集驗證實用工具(CVU) 命令,以驗證叢集資料庫中所有節點的OCR 完整性:

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 的內容顯示到啟動程式的文字終端,如下所示:

# ocrdump -local -stdout

•您可以使用OCRCONFIG 實用程式在本地節點上的OLR 上執行管理任務。

- 匯出OLR 到一個檔案:

注:

*Oracle 建議您使用 -manualbackup -restore 命令,而不是 -import -export 命令。

* 匯出 OLR 時, Oracle 建議在名稱字串中包含“ OLR” 、主機名和時間戳。例如:

olr_myhost1_20090603_0130_export

- 匯入指定的檔案到OLR:

# ocrconfig –local –import file_name

- 手動備份OLR:

# ocrconfig –local –manualbackup

注意 :

Oracle 叢集在安裝或升級後備份 OLR ,預設情況下,此後定期備份 OLR 。在初始備份之後的任何時候,您都可以手動備份 OLR

Oracle 還建議,當您將 OCR Oracle ASM 遷移到其他儲存時,或者當您將 OCR 從其他儲存遷移到 Oracle ASM 時,建立一個新的備份。

OLR 的預設備份位置位於 Grid_home/cdata/host_name 路徑中。

- 檢視OLR 備份檔案的內容:

ocrdump -local -backupfile olr_backup_file_name

- 更改OLR 備份位置:

ocrconfig -local -backuploc new_olr_backup_path

- 恢復OLR

# crsctl stop crs

# ocrconfig -local -restore file_name

# ocrcheck -local

# crsctl start crs

$ 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  還原投票檔案

如果所有投票檔案都已損壞,則可以還原它們,如下所示:

1. 如有必要,按照“還原Oracle 群集登錄檔”中的說明還原OCR

只有當OCR 也已損壞或不可用時(例如OCR 位於Oracle ASM 上且磁碟組不再可用),才需要執行此步驟。

2. 僅從一個節點以root 使用者身份執行以下命令,以獨佔模式啟動Oracle Clusterware 堆疊,該模式不要求投票檔案存在或可用:

# crsctl start crs -excl

3. 執行crsctl query css votedisk 命令以檢索當前定義的投票檔案列表,如下所示:

如果所有投票檔案都已損壞,則此列表可能為空,或者可能有標記為狀態3 或關閉的條目。

4. 根據您儲存投票檔案的位置,執行以下操作之一:

•如果投票檔案儲存在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

# crsctl stop crs

注:

如果 Oracle Clusterware 堆疊以獨佔模式執行,則使用 -f 選項強制關閉堆疊。

6.root 使用者啟動crs

# crsctl start 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

# crsctl start crs –excl

以獨佔模式啟動 CSS 後,可以替換投票檔案,如下所示:

# crsctl replace votedisk path_to_voting_disk

將投票檔案遷移到 Oracle ASM

要將投票檔案遷移到Oracle ASM ,請在以下命令中指定Oracle ASM 磁碟組名稱:

$ crsctl replace votedisk +asm_disk_group

您可以在群集中的任何節點上執行此命令。

驗證投票檔案位置

修改投票檔案後,驗證投票檔案位置,如下所示:

$ crsctl query css votedisk

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!


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

相關文章