Pages

Subscribe:

Ads 468x60px

Labels

2016年9月13日 星期二

MS SQL HA的4種做法

資料來源

資料庫High Availability (HA),微軟SQL Server共有4種做法。
  1. Failover Clustering
  2. Database Mirroring
  3. Log Shipping
  4. Replication

Failover Clustering
把兩台以上SQL Server組成Cluster,讓SQL Server個體(Instance)隨時保持同步的狀態。
每一台SQL Server稱為一個node,這些nodes連結在一個storage,例如san或是iscsi。

同一時間只有一個node是active,
當active node掛掉了,會failover到另一個node,以繼續提供服務。

在SQL Server個體的授權上,由於同一時間只有一個node是active,
所以只有active那個需要授權,passive的node是不需要授權的。

由於是Cluster架構,所以發生問題時,切換速度最快!
但因要綁storage,所以硬體價格最貴。


Database Mirroring
透過SQL的Mirror鏡像機制,將主Server(Principal)的資料庫,覆寫於目標Server(Mirror)中。

Mirror機制是針對資料庫進行覆寫,
不同於Cluster機制是將個SQL Server Instance進行同步。

有High-Safety Mode/High-Performance Mode兩種模式,
其中High-Safety Mode需再搭配一台Server(Witness)來進行auto failover的切換。
系統切換時,active的Server IP會變成目標Server IP,
所以在程式開發上,必需將Connection String中加入Failover_Partner的關鍵字,
以自動切換到active主機。

於Mirror機制下,目標資料庫是處理還原狀態,無法提供使用,
所以目標資料庫是不需要授權的。

參考文章http://caryhsu.blogspot.tw/2011/12/sql-s...-mirroring.html


Log Shipping
透過SQL的Log Shipping交易記錄傳送機制。
利用排程,於固定時間內,將主Server的資料庫,覆寫到目標Server中。

Log Shipping與Mirror相同,都是針對資料庫進行覆寫,而不是SQL Server Instance。
與Mirror不同的是,它只能進行資料庫覆寫,無法進行auto failover切換。

當主Server掛掉時,可藉由手動還原log方式,將資料庫上線供AP使用。
由於是透過排程於固定時間內覆寫資料,所以會資料遺失上的風險。

於Log Shipping機制下,目標資料庫是處理還原狀態,無法提供使用,
所以目標資料庫是不需要授權的。

參考文章http://caryhsu.blogspot.tw/2012/02/log-shipping.html


Replication
Replication複寫是透過SQL Agent將主Server的資料庫複製後,再發行到另一台Server上。

Replication與Log Shipping及與Mirror相同,都是針對資料庫進行覆寫,
而不是SQL Server Instance。

在Replication機制中,主Server與目標Server均可讀寫。
主Server上的異動會立即反映到目標Sever,
但目標Server的異動則不會影響主Sever。

當主Server掛掉時,必需手動修改AP對應到目標Server。

於Replication機制下,主Server與目標Server均是獨立且完整讀寫之個體;
所以不論主資料庫或是目標資料庫,都是需要授權的。

參考文章http://blog.xuite.net/tolarku/blog/41423198

沒有留言:

張貼留言