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

您當前所在位置: 首頁數(shù)據庫Oracle → 邏輯備數(shù)據庫的切換和故障轉移

邏輯備數(shù)據庫的切換和故障轉移

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

  本文描述如何執(zhí)行包含邏輯備數(shù)據庫的切換和故障轉移。

  一、??? 邏輯備數(shù)據庫的切換

  當你執(zhí)行切換,在主數(shù)據庫和邏輯備數(shù)據庫之間更改角色,總是在主數(shù)據庫上發(fā)起切換并在邏輯備數(shù)據庫上完成。這些步驟必須以所描述的順序執(zhí)行,否則切換將不會成功。

  注:如果主數(shù)據庫是RAC 數(shù)據庫,確保除了一個以外關閉所有實例,并且在發(fā)起切換之前禁止相應的線程。類似地,如果邏輯備數(shù)據庫是RAC 數(shù)據庫,確保除了一個以外的所有實例關閉SQL 應用,并且在發(fā)起切換之前禁止相應的線程。一旦切換操作成功完成,你能重新允許這些線程并啟動實例。雖然實例是關閉的,但是當它們重啟時,角色更改將不會自動傳遞到這些實例。

  第 1 步在主數(shù)據庫上檢驗是否有可能執(zhí)行切換

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

  例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO STANDBY

  1 row selected。

  在 SWITCHOVER_STATUS 列中的TO STANDBY 或SESSIONS ACTIVE 的值指出可能切換主數(shù)據庫到邏輯備角色。如果這些值之一沒有顯示,則檢驗Data Guard 配置是否正確起作用(例如,檢驗所有LOG_ARCHIVE_DEST_n 參數(shù)值是否正確指定)。

  第 2 步為切換準備當前主數(shù)據庫

  要為邏輯備數(shù)據庫角色準備當前主數(shù)據庫,在主數(shù)據庫上執(zhí)行下面的 SQL 語句:

  SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO LOGICAL STANDBY;

  這條語句通知當前主數(shù)據庫,它將馬上切換到邏輯備角色并開始從新的主數(shù)據庫接收重做數(shù)據。你在主數(shù)據庫上執(zhí)行這個步驟,為接收LogMiner Multiversioned Data Dictionary記錄在當前邏輯備數(shù)據庫的重做流中做準備,如步驟3 中描述。如果這個操作成功,則 V$DATABASE.SWITCHOVER_STATUS 列中顯示PREPARING SWITCHOVER 值。

  第 3 步為切換準備目標邏輯備數(shù)據庫

  使用下面命令在作為切換目標的邏輯備數(shù)據庫上建立 LogMiner Multiversioned Data Dictionary:

  SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY;

  這條語句也在邏輯備數(shù)據庫上開始重做傳輸服務 ,開始傳送其重做數(shù)據到當前主數(shù)據庫和Data Guard 配置中的其它備數(shù)據庫。從這個邏輯備數(shù)據庫接收重做數(shù)據的站點接收重做數(shù)據但不應用。

  依賴于完成的工作量和數(shù)據庫的大小,切換需要花費一些時間來完成。

  當 LogMiner Multiversioned Data Dictionary 正在重做流中記錄時,在邏輯備數(shù)據庫上的V$DATABASE.SWITCHOVER_STATUS 最初顯示PREPARING DICTIONARY。一旦這個成功完成,SWITCHOVER_STATUS 列顯示PREPARING SWITCHOVER。

  第 4 步確保當前主數(shù)據庫為將來的主數(shù)據庫的重做流做好準備

  在你能完成主數(shù)據庫到邏輯備角色的轉換之前,通過查詢主數(shù)據庫上的V$DATABASE固定視圖的SWITCHOVER_STATUS 列,檢驗LogMiner Multiversioned Data Dictionary 是否被主數(shù)據庫接收到。沒有收到LogMiner Multiversioned Data Dictionary,切換無法進行,因為當前的主數(shù)據庫將不能解釋從未來的主數(shù)據庫發(fā)送的重做記錄。SWITCHOVER_STATUS列顯示了切換的過程。

  當查詢返回 TO LOGICAL STANDBY 值,你能進行到步驟5。

  例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO LOGICAL STANDBY

  1 row selected

  注:

  你能通過以下面的順序執(zhí)行下面的語句來取消切換操作:

  1.在主數(shù)據庫上取消切換:

  SQL> ALTER DATABASE PREPARE TO SWITCHOVER CANCEL;

  2.在邏輯備數(shù)據庫上取消切換:

  SQL> ALTER DATABASE PREPARE TO SWITCHOVER CANCEL;

  第 5 步切換主數(shù)據庫到邏輯備數(shù)據庫角色

  要完成主數(shù)據庫到邏輯備數(shù)據庫的角色轉換,執(zhí)行下面 SQL 語句:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;

  這條語句等待主數(shù)據庫上的所有當前事務結束,并阻止任何新的用戶開始新事務,并在切換將要提交的地方建立一個時間點。

  執(zhí)行這條語句也將阻止用戶對由邏輯備數(shù)據庫維護的數(shù)據進行更改。要確保更快地執(zhí)行,確保主數(shù)據庫在執(zhí)行切換語句之前處于安靜的狀態(tài),沒有更新活動(例如,要求所有用戶暫時從主數(shù)據庫退出登錄)。你能查詢V$TRANSACTIONS 視圖以獲得任何當前正在處理的事務的狀態(tài),這些事務可能延遲這條語句的執(zhí)行。

  主數(shù)據庫現(xiàn)在可以經歷角色轉換以運行到備數(shù)據庫角色。

  當主數(shù)據庫經歷角色轉換到邏輯備數(shù)據庫角色時,你不需要關閉和重啟數(shù)據庫。

  第 6 步確保所有可用的重做應用到將要成為新的主數(shù)據庫的目標邏輯備數(shù)據庫上

  在你完成主數(shù)據庫到邏輯備角色的角色轉換,以及配置中的備數(shù)據庫接收到切換通知之后,你應該檢驗切換通知是否被目標備數(shù)據庫處理,通過查詢目標備數(shù)據庫上的V$DATABASE 固定視圖的SWITCHOVER_STATUS 列。一旦所有可用的重做記錄應用到邏輯備數(shù)據庫,SQL 應用自動關閉以準備預料中的角色轉換。

  SWITCHOVER_STATUS 值更新以顯示切換中的過程。當狀態(tài)為TO PRIMARY,你能進行步驟7。

  例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO PRIMARY

  1 row selected

  第 7 步切換目標邏輯備數(shù)據庫到主數(shù)據庫角色

  在你希望切換到主角色的邏輯備數(shù)據庫上,使用下面的 SQL 語句來切換邏輯備數(shù)據庫到主角色:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  沒有必要關閉并重啟在 Data Guard 配置中的任何邏輯備數(shù)據庫。其它現(xiàn)有的邏輯備數(shù)據庫將在切換完成后繼續(xù)正常起作用。然而,所有現(xiàn)有的物理備數(shù)據庫在切換后無法參與到Data Guard 配置中了。

  第 8 步在新的邏輯備數(shù)據庫上開始SQL 應用

  在新的邏輯備數(shù)據庫,開始 SQL 應用:

  SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;

#p#副標題#e#

  二、??? 邏輯備數(shù)據庫的故障轉移

  本小節(jié)描述如何執(zhí)行包含邏輯備數(shù)據庫的故障轉移。包含邏輯備數(shù)據庫的故障轉移角色轉換需要在故障的主數(shù)據庫和所有旁觀邏輯備數(shù)據庫上執(zhí)行正確的操作。如果在故障的主數(shù)據庫上沒有允許Flashback 數(shù)據庫,你必須從當前主數(shù)據庫獲得的備份重建數(shù)據庫。

  依賴于配置的保護模式以及你選擇的重做傳輸服務,有可能自動恢復所有或部分主數(shù)據庫更改。

  如果目標備數(shù)據庫操作于無數(shù)據丟失模式,在歸檔重做日志文件中將不存在中斷,你能直接進行步驟2。否則,從步驟1 開始以確定是否必須執(zhí)行手工中斷解決步驟。

  第 1 步拷貝和注冊任何丟失的重做日志文件到候選成為新主數(shù)據庫的目標邏輯備數(shù)據庫

  依賴于配置中斷組件條件,你可能訪問主數(shù)據庫上的歸檔重做日志文件。如果可用,做如下操作:

  1.確定在邏輯備數(shù)據庫上是否丟失歸檔重做日志文件。

  2.從主數(shù)據庫拷貝丟失的日志文件到邏輯備數(shù)據庫。

  3.注冊拷貝的日志文件。

  你能通過執(zhí)行下面的語句來注冊歸檔重做日志文件到邏輯備數(shù)據庫。例如:

  SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE

  2> '/disk1/oracle/dbs/log-%r_%s_%t.arc';

  Database altered.

  第 2 步確保所有可用的歸檔重做日志文件已應用

  在你要轉換到主角色的邏輯備數(shù)據庫上,通過查詢V$LOGSTDBY_PROGRESS 視圖檢驗所有可用的歸檔重做日志文件已應用。例如:

  SQL> SELECT APPLIED_SCN, LATEST_SCN FROM V$LOGSTDBY_PROGRESS;

  APPLIED_SCN LATEST_SCN

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

  190725 190725

  當 APPLIED_SCN 和LASTEST_SCN 值相等時,所有可得到的數(shù)據已應用并且邏輯備數(shù)據庫現(xiàn)在包含與主數(shù)據庫可能一樣多的數(shù)據庫。

  注:

  如果在目標邏輯備數(shù)據上 SQL 應用沒有活動,在目標備數(shù)據庫上執(zhí)行下面語句以開始SQL 應用:

  SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;

  Database altered.

  第 3 步允許遠程目的地

  如果你前面沒有配置基于角色的目的地,對于新的主數(shù)據庫確定相應于遠程邏輯備目的地的初始化參數(shù),并手工允許對于每個這些目的地的重做數(shù)據的歸檔。

  例如,要允許對于由LOG_ARCHIVE_DEST_2 參數(shù)定義的遠程目的地的歸檔,執(zhí)行下面語句:

  SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;要確保這個更改在如果新的主數(shù)據庫后來重啟后還能保持,更新適當?shù)奈谋境跏蓟瘏?shù)文件或服務器參數(shù)文件??偟膩碚f,當數(shù)據庫操作于主角色,你必須允許歸檔到遠程目的地,并且當數(shù)據庫操作于備角色,你必須禁止歸檔到遠程目的地。

  第 4 步激活新的主數(shù)據庫

  在目標邏輯備數(shù)據庫(你轉換到新的主角色的)上執(zhí)行下面的語句:

  SQL> ALTER DATABASE ACTIVATE LOGICAL STANDBY DATABASE FINISH APPLY;

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

相關閱讀

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

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

相關下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據處理 Oracle刪除表的幾種方法