常見數據庫容災技術的直觀比較
對於廣大用戶來說,最關心的是下列兩點:
A. 是否具有兩份邏輯一致的數據:如果某容災方案具有兩份‘邏輯一致’的數據,那在故障發生時,用戶數據就是安全的,系統的可用性也有保障的。具有兩份‘邏輯一致’的數據,這是一個合格容災方案必須具備的。請註意,這裏談的是‘邏輯數據’,而不是‘物理數據’,究竟什麽是邏輯數據,什麽是物理數據,請耐心往下閱讀。
B. 有沒有負載均衡讀寫分離:負載均衡讀寫分離,尤其是OLTP和OLAP的分離,是業界公認的提高數據庫性能的有效手段之一。
- RAID I
圖1 RAID I原理示意圖
a. 一個DB實例(圖中粗紅色橢圓)
b. 一份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓)
d. 沒有負載均衡讀寫分離 -
雙機熱備
圖2 雙機熱備原理示意圖
a. 一個DB實例(圖中粗紅色橢圓)
b. 一份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(RAID)(圖中細紅色橢圓)
d. 沒有負載均衡讀寫分離 -
雙機雙櫃
圖3 雙機雙櫃原理示意圖
a. 一個DB實例(圖中粗紅色橢圓)
b. 一份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓) -
存儲雙活
圖4 存儲雙活原理示意圖
a. 一個DB實例(圖中粗紅色橢圓)
b. 一份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓)
d. 沒有負載均衡讀寫分離 -
Oracle RAC
圖5 Oracle RAC原理示意圖
a. 兩個DB實例(圖中粗紅色橢圓)
b. 一份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(RAID)(圖中細紅色橢圓)
d. 有負載均衡讀寫分離 -
Oracle DG
圖6 Oracle DG原理示意圖
a. 兩個DB實例(圖中粗紅色橢圓)
b. 兩份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓) -
SQL Server 鏡像
圖7 SQL Server鏡像原理示意圖
a. 兩個DB實例(圖中粗紅色橢圓)
b. 兩份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓)
d. 沒有負載均衡讀寫分離、目標庫不能訪問 -
SQL Server AlwaysOn
圖8 SQL Server AlwaysOn原理示意圖
a. 兩個DB實例(圖中粗紅色橢圓)
b. 兩份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓)
d. 手工負載均衡讀寫分離、目標端可查詢 - DBTwin雙活集群
圖9 DBTwin雙活集群原理示意圖
a. 兩個DB實例(圖中粗紅色橢圓)
b. 兩份邏輯數據(圖中中等粗紅色橢圓)
c. 兩份物理數據(圖中細紅色橢圓)
d. 全自動的負載均衡讀寫分離
綜合比較如下:
表 A 各種數據庫容災技術綜合比較
綜上所述,當故障發生時,如果某個方案具有‘兩份實時一致的邏輯數據’,則該方案無疑是最理想的;如果只有一份邏輯數據,雖然物理數據有兩份,但是由於物理數據只保持了扇區或塊甚至卷級別的‘物理一致’,缺乏數據庫事務邏輯保護,因此最終的數據庫完整性仍然是有風險的。
從用戶數據安全性程度考慮,下面為從高到低的排序:
- 最高:兩份實時一致的邏輯數據。
- 次高:兩份邏輯數據,但是存在短時的數據延遲。
- 第三:一份邏輯數據,但是存在兩份物理數據。
- 最低:一份邏輯數據,同時也只有一份物理數據。
常見數據庫容災技術的直觀比較