Data Guard 配置包含一個數(shù)據庫作為主角色以及一個或更多數(shù)據庫作為備角色。典型地,每個數(shù)據庫的角色不會更改。然而,如果Data Guard 是用于維護對主數(shù)據庫停機響應的服務,你必須在配置中發(fā)起當前主數(shù)據庫和一個備數(shù)據庫之間的角色轉換。要查看數(shù)據庫的當前角色,查詢V$DATABASE 視圖中的DATABASE_ROLE 列。
在 Data Guard 配置中的備數(shù)據庫的數(shù)量、位置、和類型(物理或邏輯),以及重做數(shù)據以哪種方式從主數(shù)據庫傳送到每個備數(shù)據庫,決定了你用于響應主數(shù)據庫停機可用的角色管理選項。
一、角色轉換介紹
數(shù)據庫操作于下面互斥的角色之一:主或備。Data Guard 允許你通過執(zhí)行本章中描述的SQL 語句或通過使用任何一個Data Guard broker 界面,來動態(tài)更改這些角色。Oracle DataGuard 支持下述角色轉換:
*? ?切換
允許主數(shù)據庫切換角色到它的備數(shù)據庫之一。在切換期間沒有數(shù)據丟失。在切換之后,每個數(shù)據庫繼續(xù)以其新的角色參與在Data Guard 配置中。
*? 故障轉移
更改備數(shù)據庫到主角色響應主數(shù)據庫的故障。如果主數(shù)據庫在故障之前沒有操作在最大保護模式或最大可用性模式,可能發(fā)生數(shù)據丟失。如果在主和備數(shù)據庫上都允許Flashback數(shù)據庫,一旦故障的原因更正了,故障的數(shù)據庫可用恢復作為新的主數(shù)據庫的備庫。
1、準備角色轉換(故障轉移或切換)
在開始任何角色轉換之前,執(zhí)行下述準備:
* 對每個數(shù)據庫檢查初始化參數(shù)是否正確配置。
* 檢驗將成為新的主數(shù)據庫的備數(shù)據庫是操作于 ARCHIVELOG 模式。
* 確保存在于備數(shù)據庫的臨時文件符合在主數(shù)據庫上的臨時文件。
* 刪除任何在應用重做中的延遲,這可能會影響將會成為新的主數(shù)據庫的備數(shù)據庫。
* 檢驗在 Real Application Clusters 配置中的備數(shù)據庫上除了一個RAC 實例以外都關閉。?
對于 Real Application Clusters 數(shù)據庫,在角色轉換過程中備數(shù)據庫上只有一個RAC實例能聯(lián)機。在開始角色轉換之前關閉所有其它實例。然后,在角色轉換完成后,將這些實例聯(lián)機。
注:即使在切換期間備數(shù)據庫上只有一個RAC 實例是打開的,所有其它備數(shù)據庫實例在打開時,還將自動經歷一個正確轉換到它們的新角色的過程。
2、為角色轉換選擇目標備數(shù)據庫
對于使用多個備數(shù)據庫的 Data Guard 配置,當為角色轉換選擇目標備數(shù)據庫時需要考慮許多因素。包括如下:
* 備數(shù)據庫的本地性。
* 備數(shù)據庫的能力(硬件規(guī)格——如 CPU 數(shù)目、可用I/O 帶寬、等等)。
* 執(zhí)行角色轉換所需的時間。這受離備數(shù)據庫后面多遠(用重做數(shù)據的應用衡量),以及你有多大的靈活性(用應用可用性與數(shù)據丟失的折衷衡量)的影響。
Data Guard 提供了V$DATAGUARD_STATS 視圖,能用于估計每個備數(shù)據庫的生存能力,用備數(shù)據庫中數(shù)據的流通衡量,以及如果所有可用的重做數(shù)據庫應用到備數(shù)據庫,執(zhí)行角色轉換所需的時間。例如:
SQL> COLUMN NAME FORMAT A18
SQL> COLUMN VALUE FORMAT A16
SQL> COLUMN TIME_COMPUTED FORMAT A24
SQL> SELECT * FROM V$DATAGUARD_STATS;
NAME? VALUE???? TIME_COMPUTED
------------------ ---------------- ------------------------
apply finish time +00 00:00:02.4 15-MAY-2005 10:32:49
second(1)
interval
apply lag???? +00 0:00:04???? 15-MAY-2005 10:32:49
second(0)
interval
transport lag????? +00 00:00:00??? 15-MAY-2005 10:32:49
second(0)
Interval
這顯示了對于這個備數(shù)據庫,沒有傳輸延遲,日志應用服務沒有應用在過去的 4 秒中生成的重做(apply lag),日志應用服務將使用2.4 秒來完成應用未應用的重做(apply finishtime)。在每個統(tǒng)計的時間在TIME_COMPUTED 列中顯示。如果配置包含物理和邏輯備數(shù)據庫,考慮選擇物理備數(shù)據庫作為目標備數(shù)據庫。向物理備數(shù)據庫的切換或故障轉移是更可取的,因為在角色轉換完成后,配置中的所有數(shù)據庫對于新的主數(shù)據庫作為備數(shù)據庫是可行的。然而切換或故障轉移到邏輯備數(shù)據庫將會使其它物理備數(shù)據庫對于原主數(shù)據庫無效。然后在能夠重允許物理備數(shù)據庫之前,你將需要從新的主數(shù)據庫的備份重建物理備數(shù)據庫。
3、切換
切換典型地用于在計劃的停機期間減少主數(shù)據庫宕機時間,如操作系統(tǒng)或硬件升級,或Oracle 數(shù)據庫軟件和補丁集的滾動升級。
切換以兩個階段發(fā)生。在第一個階段,現(xiàn)有的主數(shù)據庫經歷向備角色的轉換。在第二個階段,備數(shù)據庫經歷向主角色的轉換。
圖 1 顯示了在數(shù)據庫角色切換前的兩站點Data Guard 配置。主數(shù)據庫位于SanFrancisco,備數(shù)據庫位于Boston。
圖 1 在切換前的Data Guard 配置
#p#副標題#e#
圖 2 顯示了在原主數(shù)據庫切換到備數(shù)據庫后,但是在原備數(shù)據庫成為新的主數(shù)據庫之前的Data Guard 環(huán)境。在這個步驟,Data Guard 配置臨時有兩個備數(shù)據庫。
圖 2 在切換到新的主數(shù)據庫之前的備數(shù)據庫
圖 3 顯示了在切換發(fā)生后的Data Guard 環(huán)境。原備數(shù)據庫成為新的主數(shù)據庫。主數(shù)
據庫現(xiàn)在位于Boston,備數(shù)據庫現(xiàn)在位于San Francisco。
圖 3 切換后的Data Guard 環(huán)境
準備切換
確保滿足步驟一列出的先決條件,另外,下面的先決條件必須對切換滿足:
* 對于包含物理備數(shù)據庫的切換,檢驗主數(shù)據庫實例是否打開和備數(shù)據庫實例是否安裝。
* 你計劃更改到主角色的備數(shù)據庫在你開始切換之前必須是安裝的。理想地,物理備數(shù)據庫在數(shù)據庫角色在切換時也將活動地應用重做。如果物理備數(shù)據庫打開用于只讀訪問時,切換還將發(fā)生,但是需要額外的時間。
* 對于包含邏輯備數(shù)據庫的切換,檢驗主和備數(shù)據庫實例是否打開以及 SQL 應用是否活動。
對于包含在 Real Applications Cluster 中的主數(shù)據庫的切換,除了一個實例以外所有實例都必須關閉。一旦切換成功執(zhí)行,你能將所有其它實例聯(lián)機。
當數(shù)據庫從一個角色轉換到另一個,DB_ROLE_CHANGE 系統(tǒng)事件會觸發(fā)。你能寫一個觸發(fā)器關聯(lián)這個系統(tǒng)事件,以在切換發(fā)生后管理任務。當數(shù)據庫第一次在切換過后打開時該事件觸發(fā),不管其新的角色(就是說,不管切換導致其第一次作為主數(shù)據庫、作為邏輯備、或作為只讀模式中的物理備而打開)。你能查詢V$DATABASE 視圖的DATABASE_ROLE列來確定數(shù)據庫的當前角色。
4、故障轉移
只有當主數(shù)據庫變得不可用,并且沒有可能在合理的時間期間內還原以提供服務,才典型地會使用故障轉移。在故障轉移期間執(zhí)行的特定操作基于在故障轉移中包括的是邏輯或物理備數(shù)據庫,在故障轉移的時候Data Guard 配置的狀態(tài),和用于開始故障轉移使用的特定SQL 語句而不同。
圖 4 顯示了從San Francisco 的主數(shù)據庫故障轉移到Boston 的物理備數(shù)據庫的故障轉移的結果。
圖 4 故障轉移到備數(shù)據庫
準備故障轉移
如果可能,在執(zhí)行故障轉移之前,你應該傳遞盡可能多的可用的和未應用的主數(shù)據庫重做數(shù)據到備數(shù)據庫。
確保滿足在 步驟一"準備角色轉換(故障轉移或切換)"中列出的先決條件。另外,對于故障轉移,下面的先決條件必須滿足:
* 如果故障轉移中包括當前運行在最大保護模式的備數(shù)據庫,首先通過在備數(shù)據庫上執(zhí)行下面面語句將其置于最大性能模式:
SQL> ALTER DATABAS
關鍵詞標簽:DATAGUARD,角色轉換服
相關閱讀
熱門文章
Oracle中使用alter table來增加,刪除,修改列的語法
oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例
誤刪Oracle數(shù)據庫實例的控制文件
為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據處理 Oracle刪除表的幾種方法