[Oracle][Data Guard]Oracle11g Active Data Guard#1簡介

[Oracle][Data Guard]Oracle11g Active Data Guard#1

隨者Oracle11g R2即將要發布釋出期間,較讓小弟感興趣的其中一項技術就是Active Data Guard,沒錯,多了"Active"這單字(千萬別以為這篇是英文單字複習教學阿 XD),在10g中讓人痛苦的就是physics standby database open readonly就無法redo apply(古有明訓:魚與熊掌不可兼得阿),這情形總給人一種有志難伸的感覺(當上頭一問可否query of standby database,當然可以(上頭這時心情還不賴)~~~~但資料是舊的無法同步~~~,老闆別怪我阿,Oracle就只寫"Data Guard"嘛!,至於你得需求我也無語問蒼天阿),不過看來Oracle DB開發團隊聽到了DBA心裡的話了(應該是mail收不完吧~哈),廢話不多說馬上來測試 Active Data Guard所帶來的改變。

以下文章均為自己見解,如有錯誤還請指教

簡介

傳統的 Data Guard

最常見的 Oracle Data Guard 是使用同步physics standby db與對應的primary db,以實現資料保護和高可用性。在 Oracle11g 之前,physics standby db同常開啟recover management mode透過redo apply process工作(即不斷地apply來自primary db的變更),以確保資料一致或primary crash可以在短時間完成切換。10g以前必須先停止redo apply才能open physics standby db read only,這最終會導致standby db的資料和primary不一致,並增加了完成故障切換操作所需的時間。

Oracle Active Data Guard 允許open physics standby db read only mode下同時還可以開啟redo apply對應primary db的資料異動。這樣對physics standby db的查詢和讀取都是及時執行並可以返回結果。

這意味著,需要進行最新唯讀訪問的所有操作都可以在physics standby db執行,從而可以增強和保護primary db的性能。

Active Data Guard 還支持 RMAN block change tracking(need catalog db),這樣便能利用增量備份從primary db轉移到standby db。與以前版本在physics standby db 上執行備份相比,快速增量備份可以將速度提高不少。

獨特優勢

Active Data Guard 是 Data Guard 技術的發展,它提供了獨特的性能優勢,

同時又能利用 Oracle Data Guard 11g 中包含的所有其他增強功能。例如,可

以將任何 Data Guard 11g physics standby db 輕鬆轉換為snapshot standby db(非高峰時間用作測試資料庫)。snapshot standby db已開放讀寫操作,是理想的測試系統,能夠獨立於primary db處理交易(snapshot standby依然會接收primary redo log但並不會redo apply)。測試完成後,可以通過一個指令來丟棄在開放讀寫操作時所作的更改,並迅速地轉換回physics standby db與primary db進行同步。

 

Data Guard其他改善

compression=enable(壓縮)

將archive redo log從primary 傳送到 standby在apply到standby上,這是data guard大概過程,但在傳送過程primary和standby會有時間差,如果能壓縮archive redo log大小,相信可以縮短傳送時間。

alter system set log_archive_dest_2 = 'service=phystb LGWR ASYNC valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=phystb compression=enable';

 

net_timeout=10(網路超時)

alter system set log_archive_dest_2='service=phystb LGWR ASYNC

valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=phystb compression=enable net_timeout=10';

v$redo_dest_resp_histogram

 

動態修改參數

Logical standby db現在可以online更新參數。

dba_logstdby_parameters(DYNAMIC顯示了值是否可動態修改)

select * from dba_logstdby_parameters order by name;

begin

dbms_logstdby.apply_set('APPLY_SERVERS',2);

end;

/

 

Sql apply log

10g會將sql apply相關事件寫入alter.log這其實沒有多大好處,現在11g會寫入LOGSTDBY$EVENTS方便查看管理

select event_time, error from logstdby$events order by 1;

如果也想記錄在alter.log,設定logical參數event_log_dest=DEST_ALL

begin

dbms_logstdby.apply_set('EVENT_LOG_DEST','DEST_ALL');

end;

/

現在event log會同時傳輸到table和alter.log中

 

關於Active Data Guard簡介到此,小弟將在下一篇實戰Active Data Guard介紹建立過程和10g有那些須注意的。