區別:1、dg指的是Data Guard資料衛士,擁有備份的功能,能夠確保資料的高可用性和資料保護,adg是“Active Data Guard”,可以查詢或匯出數據,適用於只讀性的應用;2、dg讀寫不能並行,adg的讀寫可以並行。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
DG(Data Guard)
DG(Data Guard,資料衛士)不是一個備份復原的工具,然而,DG卻擁有備份的功能,在物理DG下它可以和主庫一模一樣,但是它存在的目的並不僅僅是為了備份恢復數據,應該說它的存在是為了確保企業數據的高可用性,資料保護以及災難復原。 DBA可以透過將一些操作(例如查詢報表)轉移到備庫執行的方式來減少主庫的壓力,建立高可用的企業資料庫應用程式環境。
在DG環境中,至少有兩個資料庫,一個處於OPEN狀態對外提供服務,這個資料庫叫作主函式庫(Primary Database)。第二個處於恢復狀態,叫作備庫(Standby Database)。在通常情況下,主庫對外提供服務,使用者在主庫上進行操作,操作被記錄在線上日誌和歸檔日誌中,這些日誌透過網路傳遞給備庫,然後在備庫上被應用,從而實現主庫和備庫的資料同步。
Oracle對此過程進一步優化設計,使得日誌的傳遞、復原工作更加自動化、智慧化,並且提供一系列參數和指令簡化了DBA工作。如果軟硬體升級,那麼可以把備庫切換為主庫繼續對外服務,這既減少了服務停止時間,而且資料不會遺失。如果異常原因導致主庫不可用,那麼也可以把備庫強制切換為主庫繼續對外服務,這時資料損失都和配置的資料保護等級有關係。所以,Primary和Standby只是一個角色概念,並不是固定在某個資料庫中。
adg
Oracle 11g之前,物理備庫(physical Standby)在應用redo的時候,是不可以打開的,只可以mount。從11g開始,在應用redo的時候,實體備庫可以處於read-only模式,這稱為Active Data Guard 。透過Active Data Guard,可以在實體備庫進行查詢或匯出數據,從而減少對主庫的存取和壓力。
Active Data Guard適用於一些只讀性的應用,例如,有的應用程式只是查詢數據,進行一些報表業務,不會產生redo數據,這些應用可以轉移到備庫上,避免對主庫資源的爭用。
ADG主要解決了DG時代讀寫不能並行的問題
DG時代的資料同步方式如採用Redo Log的物理方式,則資料庫同步資料快、耗用資源低,但有一個大問題。
Oracle 11G先前的Data Guard實體備份資料庫,可以以唯讀的方式開啟數據,但這時日誌的資料同步過程就停止了。而如果日誌的資料同步處於執行過程中,則資料庫就不能開啟。也就是日誌讀、寫兩個狀態是互相排斥的。而Active Data Guard則是主要解決這個問題。
Oracle具有閃回資料庫的功能,避免刪除表等誤操作造成無法挽回
當主資料庫開啟並處於活動狀態時,交易處於處理狀態,生成Redo Log數據,並將其傳送到備用的資料庫中,正常情況下,可以做到秒級的資料同步。但如果在主用資料庫上執行一個錯誤的指令,如drop database,則所有備用資料庫中的資料也會被刪除。
Oracle DG提供了易於使用的方式來避免此使用者錯誤。 DBA可以在主資料庫、備用資料庫中同時使用閃回資料庫功能,以快速將資料庫還原到一個較早的時間點上,從而取消這個誤操作。
另外,Oracle也提供了延時執行備份資料庫同步的功能,這樣又是另一種方式防止誤操作。
推薦教學:《Oracle影片教學》
以上是oracle中dg和adg有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!