IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫Oracle → 物理備數(shù)據(jù)庫的切換與故障轉(zhuǎn)移

物理備數(shù)據(jù)庫的切換與故障轉(zhuǎn)移

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  一、物理備數(shù)據(jù)庫的切換

  切換必須在當前主數(shù)據(jù)庫上發(fā)起,并且在目標備數(shù)據(jù)庫上完成。下面的步驟描述如何執(zhí)行切換。

  第 1 步檢驗是否可能執(zhí)行切換。

  在當前主數(shù)據(jù)庫上,在主數(shù)據(jù)庫上查詢 V$DATABASE 固定視圖的SWITCHOVER_STATUS 列,以檢驗是否可能執(zhí)行切換。例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

  -----------------

  TO STANDBY

  1 row selected

  在 SWITCHOVER_STATUS 列中的TO STANDBY 值指出可能切換主數(shù)據(jù)庫到備角色。如果TO STANDBY 值沒有顯示,則檢查Data Guard 配置是否正確起作用(例如,檢查所有的LOG_ARCHIVE_DEST_n 參數(shù)值被正確指定)。如果在 SWITCHOVER_STATUS 列中的值是SESSIONS ACTIVE,你需要終止可能阻礙切換處理的活動用戶或SQL會話。如果,在執(zhí)行這些步驟之后,SWITCHOVER_STATUS 列還是顯示SESSION ACTIVE,你能通過添加WITH SESSION SHUTDOWN 子句到步驟2 中描述的ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY 語句來成功執(zhí)行切換。

  第 2 步在主數(shù)據(jù)庫上發(fā)起切換。

  要更改當前主數(shù)據(jù)庫到物理備數(shù)據(jù)庫角色,在主數(shù)據(jù)庫上使用下面 SQL 語句:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

  在這個語句完成后,主數(shù)據(jù)庫轉(zhuǎn)換到備數(shù)據(jù)庫。當前控制文件在切換前備份到當前SQL會話跟蹤文件。這使得有可能重構(gòu)當前控制文件,如果必要的話。

  第 3 步關閉并重啟前主實例。

  關閉前主實例,并重啟和安裝數(shù)據(jù)庫:

  SQL> SHUTDOWN IMMEDIATE;

  SQL> STARTUP MOUNT;

  注意:在切換過程的這個點,兩個數(shù)據(jù)庫都配置為備數(shù)據(jù)庫。

  第 4 步檢驗 V$DATABASE 視圖中的切換狀態(tài)。

  在你更改主數(shù)據(jù)庫到物理備角色,以及配置中的備數(shù)據(jù)庫接收到切換通知之后,你應該檢驗目標備數(shù)據(jù)庫是否處理切換通知,通過查詢目標備數(shù)據(jù)庫上的V$DATABASE 固定視

  圖的SWITCHOVER_STATUS 列。

  例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

  -----------------

  TO_PRIMARY

  1 row selected

  如果 SWITCHOVER_STATUS 列中的值是SESSION ACTIVE,你需要確定并終止可能阻礙切換處理的活動用戶或SQL 會話。

  如果,在執(zhí)行這些步驟之后,SWITCHOVER_STATUS 列還是顯示SESSION ACTIVE,你能處理到步驟5,并過添加WITH SESSION SHUTDOWN 子句到切換語句。

  第 5 步切換目標物理備數(shù)據(jù)庫角色到主角色。

  當備數(shù)據(jù)庫實例安裝在重做應用模式或?qū)χ蛔x訪問打開時,你能將物理備數(shù)據(jù)庫從備角色切換到主角色。必須是這些模式之一,主數(shù)據(jù)庫的切換請求才能被調(diào)度。在備數(shù)據(jù)庫處于適當?shù)哪J?,在你希望更改主角色的物理備?shù)據(jù)庫上,執(zhí)行下面的SQL 語句:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  第 6 步完成備數(shù)據(jù)庫到主角色的轉(zhuǎn)換。

  你執(zhí)行的任務依賴于物理備數(shù)據(jù)庫是否曾經(jīng)以只讀模式打開過:

  l 如果物理備數(shù)據(jù)庫自從上次啟動過后沒有以只讀模式打開過,執(zhí)行SQL ALTER DATABASE OPEN 語句來打開新的主數(shù)據(jù)庫:

  SQL> ALTER DATABASE OPEN;

  l 如果物理備數(shù)據(jù)庫自從上次啟動過后曾經(jīng)以只讀模式打開,你必須關閉目標備數(shù)據(jù)庫并重啟:

  SQL> SHUTDOWN IMMEDIATE;

  SQL> STARTUP;

  注:

  不需要關閉并重啟在切換的時候聯(lián)機的其它備數(shù)據(jù)庫(不包括在切換中的)。這些備數(shù)據(jù)庫在切換完成后將繼續(xù)正常起作用。

  第 7 步如果必要,在備數(shù)據(jù)庫上重啟日志應用服務。

  對于新的物理備數(shù)據(jù)庫和 Data Guard 配置中的每個其它物理或邏輯備數(shù)據(jù)庫,如果日

  志應用服務沒有預先配置在切換過程中持續(xù)打開,使用合適的命令來重啟日志應用服務。

  第 8 步開始發(fā)送重做數(shù)據(jù)到備數(shù)據(jù)庫。

  在新的主數(shù)據(jù)庫上執(zhí)行下面語句:

  SQL> ALTER SYSTEM SWITCH LOGFILE;

  二、物理備數(shù)據(jù)庫的故障轉(zhuǎn)移

  本小節(jié)描述如何執(zhí)行包含物理備數(shù)據(jù)庫的故障轉(zhuǎn)移。

  在包含物理備數(shù)據(jù)庫的故障轉(zhuǎn)移過程中:

  l 在所有情況中,在故障轉(zhuǎn)移后,原主數(shù)據(jù)庫不能再參與在 Data Guard 配置中。

  l 在大多數(shù)情況中,其它邏輯或物理備數(shù)據(jù)庫不直接參與配置中剩余的故障轉(zhuǎn)移,并不必須關閉或重啟。

  l 在一些情況中,可能有必要在配置新的主數(shù)據(jù)庫之后重建所有備數(shù)據(jù)庫。

  這些情況在下面的故障轉(zhuǎn)移步驟中的適當位置描述。

  注:

  Oracle 推薦你只使用在下面小節(jié)中描述的故障轉(zhuǎn)移步驟和命令來執(zhí)行故障轉(zhuǎn)移。不要使用ALTER DATABASE ACTIVATE STANDBY DATABASE 來執(zhí)行故障轉(zhuǎn)移,因為這條語句可能導致數(shù)據(jù)丟失。

#p#副標題#e#

  故障轉(zhuǎn)移步驟

  本小節(jié)描述了轉(zhuǎn)換挑選的物理備數(shù)據(jù)庫到主角色必須執(zhí)行的步驟。任何也是配置中的一部分的其它物理或邏輯備數(shù)據(jù)庫將保留在配置中,并將不需要關閉或重啟。

  如果目標備數(shù)據(jù)庫操作于使用日志寫進程(LGWR)的最大保護模式或最大可用性模式,在歸檔重做日志文件中不應該存在中斷,你能直接進行到步驟4。否則,從步驟1 開始以確定是否必須執(zhí)行一些手工中斷解決步驟。

  第 1 步確定并解決歸檔重做日志文件中的任何中斷。

  要在目標備數(shù)據(jù)庫上確定是否在歸檔重做日志文件中存在中斷,查詢V$ARCHIVE_GAP 視圖。V$ARCHIVE_GAP 視圖包含對于每個線程已知丟失的歸檔重做日志文件的序列號。返回的數(shù)據(jù)只反映最高的中斷。

  例如:

  SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM

  V$ARCHIVE_GAP;

  THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#

  ---------- ------------- --------------

  1?? 90? 92

  在這個例子中,中斷包括線程 1 的歸檔重做日志文件序號90、91、和92。如果可能,

  從主數(shù)據(jù)庫拷貝所有確定的丟失的歸檔重做日志文件到目標備數(shù)據(jù)庫,并注冊它們。這必須

  對于每個線程執(zhí)行。

  例如:

  SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

  第 2 步重復步驟1 直到解決所有中斷。

  在步驟 1 中執(zhí)行的查詢只顯示最高的中斷信息。在解決那個中斷后,你必須重復步驟1直到查詢返回零行。

  第 3 步拷貝任何其它丟失的歸檔重做日志文件。

  要確定是否還有其它丟失的歸檔重做日志文件,在目標備數(shù)據(jù)庫上查詢V$ARCHIVED_LOG 視圖以獲得每個線程的最高序列號。

  例如:

  SQL> SELECT? THREAD# AS THREAD, MAX(SEQUENCE#)

  2> OVER (PARTITION BY thread#) AS LAST from V$ARCHIVED_LOG;

  THREAD LAST

  ---------- ----------

  1? 100

  從包含比目標備數(shù)據(jù)庫上可用的最高序列號更高序列號的主數(shù)據(jù)庫,拷貝任何可用的歸檔重做日志文件到目標備數(shù)據(jù)庫并注冊它們。這必須對每個線程執(zhí)行。

  例如:

  SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

  在所有可用的歸檔重做日志文件已經(jīng)注冊后,如步驟 1 中描述地查詢V$ARCHIVE_GAP 視圖,檢驗沒有更多的中斷在步驟3 中引入。

  注:

  如果,當執(zhí)行步驟1 到3 時,你不能解決在歸檔重做日志文件中的中斷(例如,因為你

  沒有訪問故障主數(shù)據(jù)庫所在的系統(tǒng)),在故障轉(zhuǎn)移過程中會發(fā)生數(shù)據(jù)丟失。

  第 4 步在目標物理備數(shù)據(jù)庫上發(fā)起故障轉(zhuǎn)移。

  執(zhí)行下面語句以發(fā)起故障轉(zhuǎn)移:

  SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

  FORCE 關鍵詞終止目標物理備數(shù)據(jù)庫上活動的RFS 進程,使得故障轉(zhuǎn)移能不用等待網(wǎng)

  絡連接超時而立即進行。

  注:

  故障轉(zhuǎn)移添加一個重做結(jié)束的標識到最后一個歸檔的日志文件的頭部,并發(fā)送重做到所有允許的對于主數(shù)據(jù)庫有效的目的地(使用VALID_FOR=(PRIMARY_ROLE, *_LOGFILES)或VALID_FOR=(ALL_ROLE, *_LOGFILES)屬性指定)。

  在SQL 語句中FINISH 關鍵詞必須跟在所有其它關鍵詞后面,除了FORCE、WAIT、或NOWAIT。

  第 5 步轉(zhuǎn)換物理備數(shù)據(jù)庫到主角色。

  一旦 SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE 語句成功完成,通過執(zhí)行下面SQL 語句更改物理備數(shù)據(jù)庫到主數(shù)據(jù)庫:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  在執(zhí)行這條 SQL 語句之后,目標備數(shù)據(jù)庫經(jīng)歷到主角色的轉(zhuǎn)換。作為結(jié)果,你不能再使用這個數(shù)據(jù)庫作為備數(shù)據(jù)庫,并且任何后繼的從原主數(shù)據(jù)庫接收的重做不能被應用。再故障轉(zhuǎn)移過程中,備重做日志文件在其它所有從原主數(shù)據(jù)庫導出的備數(shù)據(jù)庫上被自動歸檔并恢復。只有當備目的地在新的主數(shù)據(jù)庫上正確定

關鍵詞標簽:數(shù)據(jù)庫

相關閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置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刪除表的幾種方法