西安 王金國 北京 高鵬
拓撲圖如圖1 所示。
系統(tǒng)環(huán)境及軟件要求,如表1 所示。存儲空間規(guī)劃如表2 所示。
圖1 系統(tǒng)拓撲結(jié)構(gòu)
表1 系統(tǒng)及軟件要求
1.Oracle 12C數(shù)據(jù)庫自“12.2”以后的RAC 環(huán)境已經(jīng)完全取消了對GPFS文件系統(tǒng)的支持,用戶只能選擇使用Oracle 公司提供的ASM 組件管理RAC 數(shù)據(jù)庫文件,如果用戶的災(zāi)備環(huán)境轉(zhuǎn)換為ASM(RAC 環(huán)境)-ASM(RAC 環(huán)境)的災(zāi)備系統(tǒng),沒有選擇其它文件系統(tǒng)的可能性,結(jié)果就是用戶不得不將災(zāi)備系統(tǒng)的共享存儲空間全部劃歸ASM作為數(shù)據(jù)庫空間使用,無法作為普通操作系統(tǒng)級文件系統(tǒng)使用。很多時候帶來了存儲空間的巨大浪費,采用ASM(RAC 環(huán)境)-GPFS(單實例環(huán)境) 的災(zāi)備系統(tǒng),可以更好地有效利用共享存儲空間,并且這些文件可以直接作為操作系統(tǒng)可見,避免了ASM 崩潰后帶來的很多頭痛問題。
2.主要步驟
(1)修 改主庫、災(zāi)備庫Tnsnames.ora 文件,確保主庫、災(zāi)備庫節(jié)點間均可以通過數(shù)據(jù)庫(TNS)別名互訪。使用vi 編輯器分別編輯$ORACLE_HOME/network/admin/tnsnames.ora 文件,并包含如下四個TNS 信息:
表2 存儲空間規(guī)劃
(2)修改主數(shù)據(jù)庫為日志模式,使用如下命令:
(3)在主數(shù)據(jù)庫中執(zhí)行命令生成數(shù)據(jù)庫參數(shù)文件,使用如下命令:
(4)將生成的Oracle 書庫參數(shù)文件通過網(wǎng)絡(luò)傳入災(zāi)備數(shù)據(jù)庫主機節(jié)點$ORACLE_HOME/dbs 目錄下,并修改為如下格式:
用戶需要根據(jù)自己的實際情況進行修改,其中“control_files”為定義的控制文件目錄,“db_create_file_dest”為數(shù)據(jù)文件創(chuàng)建目錄,“db_name”為定義的容器數(shù)據(jù)庫,“db_file_name_convert”為主、備數(shù)據(jù)庫數(shù)據(jù)文件對應(yīng)目錄,“l(fā)og_file_name_convert”為主、備數(shù)據(jù)庫日志文件對應(yīng)目錄,“pdb_file_name_convert”為主、備數(shù)據(jù)庫插拔數(shù)據(jù)庫數(shù)據(jù)文件對應(yīng)目錄,用戶需要根據(jù)自己的存儲規(guī)劃進行填寫。
(5)在主數(shù)據(jù)庫中執(zhí)行全庫備份之后,同時執(zhí)行創(chuàng)建當(dāng)前控制文件命令,具體命令如下:
完成后將“dbfull”拷貝到災(zāi)備數(shù)據(jù)庫主機節(jié)點對應(yīng)目錄。
(6)在主數(shù)據(jù)庫節(jié)點使用grid 用戶登錄,將保存在ASM 中的數(shù)據(jù)庫密碼文件通過ASMCMD 提供的pwcopy 命令復(fù)制到本機文件系統(tǒng)并導(dǎo)入到災(zāi)備數(shù)據(jù)庫主機節(jié)點$ORACLE_HOME/dbs 并修改為orapw+sid 命名方式,準備進行災(zāi)備庫全庫恢復(fù)。
(7)在主數(shù)據(jù)庫節(jié)點使用grid 用戶登錄,并使用asmcmd 對ASM 文件系統(tǒng)目錄進行梳理,并在災(zāi)備庫對應(yīng)節(jié)點目錄依次建立相應(yīng)同名目錄。測試中發(fā)現(xiàn),如果目錄缺失,災(zāi)備庫在第一次全庫回復(fù)是會報如下錯誤:
用戶在進行第一次全庫恢復(fù)是一定要認真進行主、備庫目錄結(jié)構(gòu)的確認,避免以上嚴重錯誤的發(fā)生,這也是該災(zāi)備應(yīng)用系統(tǒng)創(chuàng)建過程中的難點和最需要細心的步逐。
(8)以O(shè)racle 用戶登錄災(zāi)備數(shù)據(jù)庫節(jié)點主機并使用之前創(chuàng)建的參數(shù)文件啟動數(shù)據(jù)庫,命令如下:
(9)使用rman 命令進行災(zāi)備庫全庫恢復(fù),命令如下:
待rman 界面出現(xiàn)“Finished Duplicate Db at 21-JUN-19”內(nèi)容,即完成災(zāi)備庫全庫恢復(fù)。
(10)在主數(shù)據(jù)庫節(jié)點中執(zhí)行如下語句:
在災(zāi)備數(shù)據(jù)庫節(jié)點執(zhí)行如下語句:
通過在主、備數(shù)據(jù)庫上使用“select message from gv$dataguard_status”“select process,status,thread#,sequence# from gv$managed_standby”語 句以及在災(zāi)備數(shù)據(jù)庫上使用“select process,status,thread#,sequence# from gv$managed_standby”語 句查詢恢復(fù)完成所有主庫全庫備份后產(chǎn)生的歸檔。
(11)以只讀方式打開災(zāi)備庫,并進行歸檔實時同步:
①sqlplus/ as sysdba
alter database recover managed standby database cancel;
終止同步后臺進程(終止前需要檢查V$log 中的主、備日志序列SCN 號)。
②使用如下命令:
此時災(zāi)備數(shù)據(jù)庫將以只讀方式打開,可以供查詢用戶使用。
③使用如下命令:
啟動災(zāi)備數(shù)據(jù)庫后臺實時同步進程。
主庫使用select thread#,SEQUENCE# from gv$log;
備庫使用select thread#,SEQUENCE# from v$standby_log;
對比SEQUENCE#數(shù),確認數(shù)據(jù)庫同步狀態(tài)。
至此ASM(RAC 環(huán)境)-GPFS(單實例環(huán)境)的災(zāi)備系統(tǒng)建立完成并可以自動完成數(shù)據(jù)庫與主庫實時同步,并向查詢用戶提供實時數(shù)據(jù)查詢服務(wù)。
作為業(yè)界企業(yè)級的Oracle 數(shù)據(jù)庫的很多新特性給用戶帶來了很多便利,同時也因為ASM 的唯一選擇也帶來了很多維護和故障恢復(fù)的復(fù)雜度,通過ASM-GPFS 這樣的災(zāi)備系統(tǒng),我們可以將ASM 封裝的數(shù)據(jù)文件重新映射成了簡單的文件系統(tǒng)級文件,避免了ASM 故障后數(shù)據(jù)文件恢復(fù)的技術(shù)難度,同時也更好地避免了存儲空間完全交由ASM 管理帶來的操作系統(tǒng)級無法使用這些存儲空間的尷尬和資源浪費,提高了設(shè)備的使用率。