建立Oracle ADG standby資料庫若干方法

kunlunzhiying發表於2016-12-04
1、從主庫輔助資料庫檔案到standby資料庫

$ rman target / auxiliary sys/oracle@rheldg1/rtdg1

2、複製資料庫

RMAN> duplicate target database for standby from active database nofilenamecheck;

3、或者主庫已有資料庫備份,也可以執行下列命令從備份中複製資料庫

RMAN> duplicate target database for standby dorecover nofilenamecheck;

--特別備註: 如果duplicate 命令指定dorecover選項,則在還原之後會進行恢復操作,恢復活動的歸檔日誌和增量備份,從備份中複製資料庫,一般推薦這樣。

4、複製完成後,standby資料庫會從nomount狀態被載入到mount狀態下。


正常開啟和關閉DATA GUARD的相關流程:

1、 alter database recover managed standby database cancel;【停止standby資料庫redo日誌應用】
2、關閉主庫
3、關閉standby庫

啟動順序則恰好相反

1、啟動standby資料庫;
2、啟動主資料庫;
3、開啟standby資料庫的redo日誌應用


監控standby日誌的傳輸服務

1、查詢standby資料庫 standby redo log 的使用情況
select thread#,sequence#,archived,status from v$standby_log;
在主庫執行查詢日誌序列號

select thread#,sequence#,status from v$log;

從上面結果對比,主庫的current 聯機redo日誌與standby 資料庫的active狀態的standby redo日誌序列號,就可以檢驗出redo傳輸服務是否啟用了實時傳輸。

手動解決日誌缺失

物理standby資料庫日誌缺失查詢sql:

select * from v$archive_gap;

THREAD#  LOW_SEQUENCE#  HIGH_SEQUENCE#
------------  ------------------------   -----------------------
     1                     7                             10

上面結果表明 standby資料庫執行緒1的序列7到10是當前缺失的日誌

透過在standby資料庫查詢以下sql,同樣可以驗證日誌的實時應用情況

select process,status,thread#,sequence#,block#,blocks from v$managed_standby where process != 'ARCH';

在standby資料庫上,管理日誌應用服務

1、在前臺啟動redo apply 應用
alter database recover managed standbydatabase;

2、在後臺啟動redo apply 日誌應用

alter database recover managed standby database disconnect from session;

disconnect from session 表示redo apply會在後臺會話中執行

以上2中redo apply 都只會會在主庫發生log switch時才能在standby資料庫應用日誌。

3、 執行以下sql在standby資料庫,表示啟動redo實時應用

alter database recover managed standby database using current logfile disconnect from session;【在後臺啟動redo log 實時應用模式】


4、停止redo apply 

SQL> alter database recover managed standby database cancel;

--The End--

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

相關文章