西安 王金國 北京 高鵬
拓撲圖如圖1 所示。
系統環境及軟件要求,如表1 所示。存儲空間規劃如表2 所示。

圖1 系統拓撲結構

表1 系統及軟件要求
1.Oracle 12C數據庫自“12.2”以后的RAC 環境已經完全取消了對GPFS文件系統的支持,用戶只能選擇使用Oracle 公司提供的ASM 組件管理RAC 數據庫文件,如果用戶的災備環境轉換為ASM(RAC 環境)-ASM(RAC 環境)的災備系統,沒有選擇其它文件系統的可能性,結果就是用戶不得不將災備系統的共享存儲空間全部劃歸ASM作為數據庫空間使用,無法作為普通操作系統級文件系統使用。很多時候帶來了存儲空間的巨大浪費,采用ASM(RAC 環境)-GPFS(單實例環境) 的災備系統,可以更好地有效利用共享存儲空間,并且這些文件可以直接作為操作系統可見,避免了ASM 崩潰后帶來的很多頭痛問題。
2.主要步驟
(1)修 改主庫、災備庫Tnsnames.ora 文件,確保主庫、災備庫節點間均可以通過數據庫(TNS)別名互訪。使用vi 編輯器分別編輯$ORACLE_HOME/network/admin/tnsnames.ora 文件,并包含如下四個TNS 信息:




表2 存儲空間規劃
(2)修改主數據庫為日志模式,使用如下命令:

(3)在主數據庫中執行命令生成數據庫參數文件,使用如下命令:

(4)將生成的Oracle 書庫參數文件通過網絡傳入災備數據庫主機節點$ORACLE_HOME/dbs 目錄下,并修改為如下格式:



用戶需要根據自己的實際情況進行修改,其中“control_files”為定義的控制文件目錄,“db_create_file_dest”為數據文件創建目錄,“db_name”為定義的容器數據庫,“db_file_name_convert”為主、備數據庫數據文件對應目錄,“log_file_name_convert”為主、備數據庫日志文件對應目錄,“pdb_file_name_convert”為主、備數據庫插拔數據庫數據文件對應目錄,用戶需要根據自己的存儲規劃進行填寫。
(5)在主數據庫中執行全庫備份之后,同時執行創建當前控制文件命令,具體命令如下:

完成后將“dbfull”拷貝到災備數據庫主機節點對應目錄。
(6)在主數據庫節點使用grid 用戶登錄,將保存在ASM 中的數據庫密碼文件通過ASMCMD 提供的pwcopy 命令復制到本機文件系統并導入到災備數據庫主機節點$ORACLE_HOME/dbs 并修改為orapw+sid 命名方式,準備進行災備庫全庫恢復。
(7)在主數據庫節點使用grid 用戶登錄,并使用asmcmd 對ASM 文件系統目錄進行梳理,并在災備庫對應節點目錄依次建立相應同名目錄。測試中發現,如果目錄缺失,災備庫在第一次全庫回復是會報如下錯誤:

用戶在進行第一次全庫恢復是一定要認真進行主、備庫目錄結構的確認,避免以上嚴重錯誤的發生,這也是該災備應用系統創建過程中的難點和最需要細心的步逐。
(8)以Oracle 用戶登錄災備數據庫節點主機并使用之前創建的參數文件啟動數據庫,命令如下:

(9)使用rman 命令進行災備庫全庫恢復,命令如下:

待rman 界面出現“Finished Duplicate Db at 21-JUN-19”內容,即完成災備庫全庫恢復。
(10)在主數據庫節點中執行如下語句:

在災備數據庫節點執行如下語句:

通過在主、備數據庫上使用“select message from gv$dataguard_status”“select process,status,thread#,sequence# from gv$managed_standby”語 句以及在災備數據庫上使用“select process,status,thread#,sequence# from gv$managed_standby”語 句查詢恢復完成所有主庫全庫備份后產生的歸檔。
(11)以只讀方式打開災備庫,并進行歸檔實時同步:
①sqlplus/ as sysdba
alter database recover managed standby database cancel;
終止同步后臺進程(終止前需要檢查V$log 中的主、備日志序列SCN 號)。
②使用如下命令:

此時災備數據庫將以只讀方式打開,可以供查詢用戶使用。
③使用如下命令:

啟動災備數據庫后臺實時同步進程。
主庫使用select thread#,SEQUENCE# from gv$log;
備庫使用select thread#,SEQUENCE# from v$standby_log;
對比SEQUENCE#數,確認數據庫同步狀態。
至此ASM(RAC 環境)-GPFS(單實例環境)的災備系統建立完成并可以自動完成數據庫與主庫實時同步,并向查詢用戶提供實時數據查詢服務。
作為業界企業級的Oracle 數據庫的很多新特性給用戶帶來了很多便利,同時也因為ASM 的唯一選擇也帶來了很多維護和故障恢復的復雜度,通過ASM-GPFS 這樣的災備系統,我們可以將ASM 封裝的數據文件重新映射成了簡單的文件系統級文件,避免了ASM 故障后數據文件恢復的技術難度,同時也更好地避免了存儲空間完全交由ASM 管理帶來的操作系統級無法使用這些存儲空間的尷尬和資源浪費,提高了設備的使用率。