dataguard

dataguard

DataGuard是甲骨文推出的一種高可用性資料庫方案,在Oracle 8i之前被稱為Standby Database。從Oracle 9i開始,正式更名為Data Guard。它是在主節點與備用節點間通過日誌同步來保證數據的同步,可以實現資料庫快速切換與災難性恢復。Data Guard只是在軟體上對資料庫進行設定,並不需要額外購買任何組件。用戶能夠在對主資料庫影響很小的情況下,實現主備資料庫的同步。而主備機之間的數據差異只限於線上日誌部分,因此被不少企業用作數據容災解決方案。

方案概述

DataGuard是一種資料庫級別的HA方案,最主要功能是 容災 、 數據保護 、故障恢復等。

DataGuard是生產資料庫的"事務一致性copy",創建時,使用生產庫的物理copy.創建完成後,備庫會通過生產庫傳輸過來的 歸檔日誌 (或重做條目)自動維護備用資料庫。將重做數據套用到備用庫。

類型

DataGuard分為"物理standby"和"邏輯standby"

物理standby

主備庫之間物理結構,邏輯結構保持一致。通常情況下備用庫通過主庫傳輸過來的歸檔日誌做恢復。

基於"塊對塊"方式。與主資料庫相同。物理standby等同於生產庫。物理standby能以read only方式打開(或者在flashback資料庫下以"讀寫方式打開")。

物理standby一旦以"讀寫"方式打開,備用庫將不會從主資料庫接受重做數據。只有當備庫flashback到過去的點,當備用庫flashback到"讀寫"打開時間點前的狀態時, DataGuard會自動同步備庫與主庫。才能恢復standby角色。

邏輯standby

只保證邏輯結構與主庫一致。備用庫要處於打開狀態,通過從主庫歸檔日誌檔案中提取出來的SQL語句做恢復。

創建時,與物理standby一樣,使用主庫copy.

邏輯備庫通過執行SQL語句來更新。 DataGuard轉換日誌檔案中的數據為SQL語句,然後在邏輯standby上執行SQL語句.因為邏輯standby是通過SQL語句來實現數據同步,那么在同步期間其必須保持打開狀態。

服務

1.重做傳輸服務

控制重做數據從生產機傳輸到一個或多個備用庫。

2.日誌套用服務

2.1 生產庫上通過ARCH進程生成歸檔日誌檔案,然後傳輸到備用庫,備用庫再從歸檔日誌中恢複數據

2.2 實時模式時,生產庫上的操作通過LGWR進程實時反映在備用庫的備用日誌檔案中,備用庫從備用日誌檔案實時恢複數據。

3.角色切換

主備庫用戶角色的切換。

三種保護模式

1.最大保護

這種模式主備庫之間數據是同步的。即主庫提交的同時,備庫會做相應的恢復。最大限度的保證了數據完整性。不允許數據的丟失。

如果主備庫之間網路,或者備庫出現問題會直接影響主庫操作。導致主庫宕機。

2.最大可用性

這種模式和"最大保護"基本上差不多。正常情況下,主備庫之間是同步的。

當網路或者備庫出現問題時,不會影響到主庫的宕機,主庫會自動轉換庫"最大性能"模式,等待備庫可用時,將歸檔傳輸到備庫做恢復。

可以把這種模式理解為"最大保護"和"最大性能"兩種模式的中間體。

3.最大性能

這種模式保證主庫性能最大化,主備庫之間數據是異步傳輸的。即,主庫日誌歸檔以後才會傳輸到備用庫,在備庫上使用歸檔日誌檔案做恢復操作。

相關詞條

相關搜尋

熱門詞條

聯絡我們