Oracle之ADG與DG的區別?

  • 2019 年 10 月 6 日
  • 筆記

在上雲後的Oracle數據災備場景中,我們經常聽到DBA遷移工程師講到「在這個項目中用ADG進行數據實時備份,ADG比DG更好!」。究竟ADG作Oracle數據災備的優勢在什麼地方?

一、ADG主要解決了DG時代讀寫不能並行的問題

DG時代的數據同步方式如採用Redo Log的物理方式,則數據庫同步數據快、耗用資源低,但存在一個大問題。

Oracle 11G以前的Data Guard物理備份數據庫,可以以只讀的方式打開數據,但這時日誌的數據同步過程就停止了。而如果日誌的數據同步處於執行過程中,則數據庫就不能打開。也就是日誌讀、寫兩個狀態是互相排斥的。而Active Data Guard則是主要解決這個問題。

二、Oracle具有閃回數據庫的功能,避免刪表等誤操作造成無法挽回

當主數據庫打開並處於活動狀態時,事務處於處理狀態,生成Redo Log數據,並將其傳送到備用的數據庫中,正常情況下,可以做到秒級的數據同步。但如果在主用數據庫上執行一個錯誤的命令,如drop database,則所有備用數據庫中的數據也會被刪除。

Oracle DG提供了易於使用的方式來避免這種用戶錯誤。DBA可以在主數據庫、備用數據庫中同時使用閃回數據庫功能,以快速將數據庫恢復到一個較早的時間點上,從而取消這個誤操作。

另外,Oracle還提供了延時執行備份數據庫同步的功能,這樣又是另一種方式防止誤操作。

三、Oracle的DG、RAC一般是聯合使用

RAC主要解決系統應用的故障,它不提供數據故障的快速、自動恢復,它還提供數據庫應用的伸縮能力,提供應用級的保護。

DG只提供數據的備份、恢復能力,提供數據級的保護。

四、建議使用DG做數據實時同步,而不是第三方的磁盤copy工具

原因三點:

1、DG具有延時寫入數據功能,可以避免誤操作,而第三方工具沒有。

2、DG傳輸的數據量更小,而第三方工具的所需的帶寬更高。

3、實戰中的坑:有些第三方工具的磁盤同步最小單元與Oracle的最小磁盤單元不同,造成異常故障時,備份數據庫無法啟用,這非常嚇人。