單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(6)

cow977發表於2011-09-06

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(1)http://space.itpub.net/81227/viewspace-706435

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(2)http://space.itpub.net/81227/viewspace-706748

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(3)http://space.itpub.net/81227/viewspace-706749

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(4)http://space.itpub.net/81227/viewspace-706750

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(5)http://space.itpub.net/81227/viewspace-706751

 
 

5.修復其他Standby資料庫

物理Standby資料庫的修復只有重建一種方式,至於如何建立物理Standby,前面說的已經足夠多了,下面重點描述一下原Data Guard環境中的邏輯Standby

注意的是,邏輯Standby的修復可不像物理Standby那樣簡單,相比較來說,重建其實是個簡單的工作,因為初始化引數檔案、金鑰檔案、存放目錄等都是現成的,幾乎不需要改動,DBA所需要做的,基本上就是重新複製一份新Primary資料庫的相關檔案,每個邏輯Standby都相當於是獨立的資料庫,如果你不希望重建邏輯Standby的話呢,Oracle倒是也提供了其他的解決方案。

假定原Data Guard環境中有邏輯Standby資料庫LGDG,執行failover後,LGDG不再是新Data Guard環境中的成員,這裡演示如何恢復該資料庫到當前的Data Guard配置,操作步驟如下:

1)在原邏輯Standby中建立資料庫鏈,連線到新的Primary資料庫。

這裡所謂的原Standby資料庫,自然是指JSSLDG2嘍,注意,資料庫鏈中用於連線新Primary資料庫的使用者必須擁有SELECT_CATALOG_ROLE角色。執行以下語句:

SQL> ALTER SESSION DISABLE GUARD;

SQL> CREATE DATABASE LINK BL CONNECT TO SYSTEM IDENTIFIED BY admin USING 'orcl_pd';

SQL> ALTER SESSION ENABLE GUARD;

驗證一下資料鏈是否能夠正常訪問:

SQL> SELECT SYSDATE FROM DUAL@BL;

SYSDATE

---------

06-MAY-10

提示: ALTER SESSION ENABLE|DISABLE GUARD語句作用?

該語句用於允許或禁止使用者修改邏輯Standby中的結構。

2)重新啟動SQL應用。

在各個邏輯Standby端執行下列語句啟動SQL應用(注意更新dblinkName):

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY NEW PRIMARY BL; 

如果你運氣好,等語句執行完之後,恢復過程就完成了。如果你非常不幸地碰到了ORA-16109錯誤,那麼我不得不告訴你,恐怕你得重建邏輯Standby了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-706752/,如需轉載,請註明出處,否則將追究法律責任。

相關文章