DataGuard模擬FailOver實驗

dbasdk發表於2014-11-10
DataGuard FailOver
模擬主庫例項已經崩潰,但是資料庫檔案可用,比如資料庫檔案存放在磁碟陣列上..
1.在一個物理StandBy最大效能的環境下,中斷備庫的監聽器
2.主庫切換聯機重做日誌(模擬主庫的日誌不能傳送到備庫的場景)
SQL> alter system archive log current;
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.

3.停止主庫的例項
SQL> shutdown abort;
ORACLE instance shut down.

4.備庫檢視GAP,和尚未收到歸檔檔案的資訊
檢視檢視,沒有GAP的歸檔
SQL> select * from v$archive_gap;
no rows selected

檢視備庫應用歸檔的資訊
備庫已經應用到97號歸檔
select sequence#,name from v$archived_log;


5.登入主庫伺服器,將尚未傳送到備庫的歸檔通過scp傳輸到備庫
一般來說,伺服器故障也是有可能得到磁碟上的檔案的.
比如
  使用了磁碟陣列,通過網路儲存資料
  僅僅是資料庫故障,而主機可以使用
  主機不可用,但是可以恢復磁碟上的資料
  等等
登入主庫所在的伺服器
可以看到98,99,100號歸檔檔案還在

檢視聯機重做日誌,通過最後修改時間,找到最後的redolog檔案--redo02.log

將這些檔案通過SCP傳輸到備庫
[lihuilin@lihuilin orcl]$ scp redo02.log root@mysql1:/tmp

[lihuilin@lihuilin 2014_11_10]$ scp o1_mf_1_{98,99,100}*.arc root@mysql1:/tmp

6.備庫註冊歸檔日誌,應用redolog檔案
備庫註冊缺失的歸檔日誌檔案
alter database register logfile '/tmp/o1_mf_1_98_b5z6nyjk_.arc';
alter database register logfile '/tmp/o1_mf_1_99_b5z6o2nd_.arc';
alter database register logfile '/tmp/o1_mf_1_100_b5z6o498_.arc';
備庫中止恢復模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
備庫進行恢復
recover standby database until cancel;
看到如下內容,輸入redolog檔案的位置
Specify log: {=suggested | filename | AUTO | CANCEL}
最後恢復完成
Specify log: {=suggested | filename | AUTO | CANCEL}
/tmp/redo02.log
Log applied.
Media recovery complete.

7.啟用備庫
備庫輸入命令
alter database activate standby database;
alter database open;

檢視備庫現在的狀態,FailOver已經完成.
SQL> select database_role,open_mode from v$database;

DATABASE_ROLE     OPEN_MODE
---------------- --------------------
PRIMARY      READ WRITE

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

相關文章