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