2012年4月23日 星期一

SQL Server 2012 AlwaysOn vs. Database Mirroring

        SQL Server 2012中最重要的一個新功能就是高可用性(High-Availability)中的AlwaysOn,而在我之前的文章中已有深入的介紹,詳細請參考下列的連結,由於AlwaysOn是Database Mirroring的加強版,但是常常有人搞不清楚兩者之間的差異,所以我參考了網路上的一篇文章後,將文章與心得整理如下,再請參考。

參考文章:
SQL Server 2012 新功能 - AlwaysOn安裝與設定
http://caryhsu.blogspot.com/2012/04/sql-server-2012-alwayson.html
SQL Server - AlwaysOn連線設定
http://caryhsu.blogspot.com/2012/04/sql-server-alwayson.html
SQL Server - 如何建立 Database Mirroring
http://caryhsu.blogspot.com/2011/12/sql-server-database-mirroring.html

1、Clustering vs. Witness
AlwaysOn必須架設在Windows Cluster(WSFC)上,而如果Database Mirroring要作到Auto Failover時,就必須有第三台進行監控,也就是Witness的角色,就兩者相比由於Cluster必須要有特定硬體支援,而Witness的電腦只需要非常簡單的配備與SQL Server Express的版本就好,但是由於WSFC在節點偵測上(Heartbeat)的處理比Database Mirroring好很多,所以算是大大的提升穩定度的部份。

2、四個複寫節點 vs. 1 個鏡射節點
AlwaysOn比Database Miroring更優越的地方就是最多有四個複寫節點,比Database Mirroring只有一個節點相比,更可以提高系統的可用性。


3、多點資料庫失敗移轉 vs. 單點資料庫失敗移轉
如同第二項所述,由於Database Mirroring只有一個鏡射節點,所以系統發生失敗時,就只有一個節點可以當成備援,而Database Mirroring是一個以資料庫層級為主的高可用性,所以關於Server - Level的物件並不會進行同步,如系統登入帳號等,在Database Mirroring你不必須手動進行建立,但是在在AlwaysOn,由於透過可用性群組(Availability Group),所以這些就不需在擔心了。

4、混合同步與非同步連線 vs 同步或非同步連線
在Database Mirroring你只能選擇同步(High Safety)或是非同步(High Performance)模式,但是在AlwaysOn中不同複寫節點可以選擇不同的同步方式,但最重要的事,在容錯移轉的同時,必須以同步的節點進行,否則會有資料遺失的可能性,再請注意了。

5、唯讀的資料庫複本 vs 還原中的鏡射資料庫
在Database Mirroring中鏡射資料庫為還原中的狀態,所以是完全無法進行讀取的,但是您可以透過快照的方式,讓使用者存取,但是在建立快照時,還是需要將使用者的連線切斷,所以仍有不便的地方。而AlwaysOn複本資料庫提供唯讀的方式進行存取,讓你在效能負載平衡上有更好的應用。


參考網址:
SQL Server Denali AlwaysOn vs. Database Mirroring
http://www.sqlmag.com/article/sqlserverdenali/sql-server-denali-alwayson-140199


關鍵字:SQL Server 2012AlwaysOnDatabase MirroringAvailability Group

沒有留言:

張貼留言