資料庫環境:SQL SERVER 2005 +
1、Replication,我們常用的是Transactional Replication。可以支援單向和雙向的資料同步。工作在Table Level。由於基於transaction,(內部使用了類似Snapshot鏈出改變頁的方法),他的同步單位較小,在實踐中,往往只需要幾分鐘的時間就可以得到最新的資料。缺點,雖然允許Replication Schema Change,但是對於真正的DDL修改的時候有時需要手動的進行修改。容易出現資料同步問題,而且複雜的查詢可能導致Replication的效能並導致資料同步問題
2、Log Shipping。基於Backup/Restore。換而言之,它實際是自動的log backup傳輸到遠程,然後恢複的。正如Restore備份資料庫的時候資料庫會處於單使用者狀態,在restore的時候,所有的目前使用者連結會被斷開,當然可以配置等待所有操作完成。沒有資料不同步的問題。
3、Databaes Mirroring。只是在考MSITS的時候涉及過這個技術,沒有實際用過。同步的資料庫處於不可用狀態,但是可以通過snapshot進行訪問。snapshot的數目不被限制,但是不得不選擇不同的名字。這對於資料庫查詢比較麻煩。沒有資料不同步的問題。
Replication 最大的優點在於資料同步的迅速,使用者不會感覺到變化,使用者查詢不會被資料的更新影響。
Logshipping 的優點則在於簡單易用,容錯性高。但使用者被經常打斷。
Databaes Mirroring 資料庫鏡像對可用性的提高程度遠遠大於先前使用 Microsoft SQL Server 對可用性的提高,並為容錯移轉叢集或記錄傳送提供了易於管理的替代或補充。同步資料庫鏡像會話時,資料庫鏡像提供了熱待命伺服器,可支援在已提交事務不丟 失資料的情況下進行快速容錯移轉。在一般的鏡像會話期間,如果生產伺服器出現故障,用戶端應用程式可以通過重新串連到待命伺服器來快速進行恢複。
下面借一個圖來說明各個特點:
|
複製(Replication) |
記錄傳送(Log Shipping) |
鏡像(Mirroring) |
容錯移轉叢集(Failover Clustering) |
標準版/企業版 |
YES |
YES |
標準版僅支援同步模式 |
標準版僅2節點 |
節點數 |
1:N |
1:N |
1:1 |
取決於作業系統節點數上限 |
粒度 |
表 |
資料庫 |
資料庫 |
執行個體 |
復原模式 |
Full/Simple |
Full/Bulk_logged |
Full |
ALL |
是否監視主庫故障 |
NO 監視器只監視同步狀態, 不監視publication server failure |
NO monitor server只監視backup/retore status 不監視primary server failure |
Witness,可監視主庫故障 |
YES |
是否自動容錯移轉 |
NO(warm standby) |
NO(warm standby) |
YES(hot standby), 如果沒有witness則不能自動,為warm standby |
YES |
延遲 |
取決於Log Reader Agent & Distribution Agent |
取決於Log backup/restore頻率 |
同步/非同步模式 |
只有一份資料 |
同步方式 |
從distributor分發,可推送,可讀取 |
通過Database Backup檔案的copy/restore |
Log stream |
只有一份資料 |
從庫是否可以訪問 |
subscription可讀寫, 但預設寫不會被回傳到Publication |
可設定secondary server為standby模式,唯讀 |
mirrored db可通過snapshot唯讀 |
只有一份資料 |
應用情境 |
讀寫分離 |
讀寫分離,溫備 |
讀寫分離,溫備/熱備 |
伺服器/作業系統/應用軟體的備份 |