Oracle 8i DataGuard 的啟用

zhanglincon發表於2009-04-24

前言

請不要隨意啟用standby database ,除非發生緊急情況。因為一旦standby資料庫被啟用,就成為一個普通的資料庫,對外提供服務,此時不能再reply log,並且不能再回到standby模式。如果你想驗證一個standby database是否被正確的update,你可以以read only的模式開啟資料庫,也不要啟用standby資料庫。

根據緊急情況的不同,你可以無法進入你的主庫(primary database),如果你能進入,你應該試圖手動歸檔你當前的線上聯機日誌(online redo log),然後再傳到備庫並在備庫應用所有可用的歸檔日誌(archive log)。

 

搶救主庫的redo log

1. 如果可以能的話在主庫手動歸檔你當前的線上聯機日誌:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

2. 如果你standby資料庫不是managed standby環境,手動傳送所有可用的但在備庫(standby database)還沒有被應用的歸檔日誌,用作業系統命令copy,舉例如下:

% cp /oracle/arc_dest/*.arc /standby/arc_dest

3. 如果你standby資料庫是Managed recovery standby模式, cancel recovery:

SQL> CANCEL

如果你standby資料庫不是Managed recovery standby模式, 讓他處於mounted狀態,如果你的例項(instance)沒有啟動,先用如下命令啟動

SQL> STARTUP NOMOUNT pfile=initSTANDBY.ora

SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

4. 在備庫(standby database)執行手動recovery手工的應用所需的日誌

SQL> RECOVER STANDBY DATABASE;

這是手工應用日誌的模式,因為我們的standby資料庫跟主庫時間點不一致,所以我先手工的應用所需的日誌,然後按照提示顯示的檔案編號,將從該檔案以後生成的所有歸檔日誌檔案從主機上覆制到備機的%STD_ARCHIVE_LOG_PATH%中,然後輸入Auto執行同步操作。

或者自動recover

SQL> RECOVER AUTOMATIC STANDBY DATABASE; # 用備庫引數檔案中location位置指定的檔案

SQL> RECOVER AUTOMATIC FROM ’/logs’ STANDBY DATABASE; # 手工指定應用的歸檔的目錄

這個應用過程就是資料庫前滾到主庫失敗之前.你可以應用除了當前redo log之外的所有redo log,如果你丟失了非當前的聯機日誌,而且還沒有歸檔,就有可能丟失資料。啟用備庫將自動reset 聯機日誌,並記錄主庫和備庫的redo log不一致,就不能在應用原來主庫的歸檔日誌。

啟用一個Standby Database

1. 確保你的備庫是mountedexclusive模式下:

SQL> SELECT name,value FROM v$parameter WHERE name=’parallel_server’;

NAME          VALUE

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

parallel_server    FALSE

1 row selected.

如果值是TRUE, 資料庫就不是mountedexclusive模式下; 如果值是

FALSE, 資料庫是mountedexclusive模式下.

2. 啟用備庫:

SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

這條命令將reset聯機日誌

3. 關閉資料庫

SQL> SHUTDOWN IMMEDIATE

4. 儘早的備份你的新的生產庫.

5. 以只讀或者讀寫模式開啟資料庫

SQL> STARTUP MOUNT

SQL> ALTER DATABASE READ ONLY; # opens the database in read-only mode

SQL> ALTER DATABASE READ WRITE; # opens the database in read/write mode

 

自動啟用的批處理activate_standby.bat

Sqlplus /nolog @activate_standby.sql>>activate_standby.log 

activate_standby.sql的內容:

 

Connect  sys/natsys@nat_208  as sysdba;

CANCEL;

RECOVER AUTOMATIC STANDBY DATABASE;

ALTER DATABASE ACTIVATE STANDBY DATABASE;
SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

ALTER DATABASE READ WRITE;

exit

 

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

相關文章