標籤:高可用 鏡像 alwayson 複製 記錄傳送
SQL Server 高可用方案
方案一:Asynchronous Mirror + Alias
方案介紹
資料庫伺服器配置非同步鏡像關係,程式用戶端串連串配置別名串連。
1. 在SQL Server用戶端配置中建立別名,在用戶端的串連串設定中用別名代替伺服器名或IP地址。
2. 寫一個公用程式,在鏡像角色切換的時候,更新別名。
3. 更新別名可通過修改相應的註冊表字串來完成,位於HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo
方案優缺點
優點:對於實現計劃中的資料庫遷移安全、快捷、簡單。僅需修改別名對應IP地址。
缺點:對於少量業務應用管理較實用。
方案二:Asynchronous Mirror + Hosts
方案介紹
資料庫伺服器配置非同步鏡像關係,程式用戶端佈建網域名串連,Hosts檔案配置IP和網域名稱的對應關係。
1. 在用戶端機器中修改Hosts檔案,建立網域名稱和主要資料庫伺服器IP的對應關係。
2. 寫一個公用程式,在鏡像角色切換的時候,更新Hosts檔案中的IP地址。Hosts檔案位於Hosts檔案位於C:\Windows\System32\drivers\etc\Hosts
3. 清空用戶端機器的DNS緩衝。
方案優缺點
優點:僅需修改用戶端Hosts檔案中的IP和網域名稱對應關係後,清空DNS緩衝,重新擷取新的主伺服器資訊。
缺點:相較方案一,有一定延時。
方案三:Asynchronous Mirror + DNS
方案介紹
資料庫伺服器配置非同步鏡像關係,程式用戶端佈建網域名串連,DNS伺服器配置IP和網域名稱的對應關係。
1. 建立DNS CNAME / A 記錄指向活動的資料庫伺服器。
2. 在用戶端串連串設定中,使用一個虛擬名稱。
3. 寫一個公用程式完成以下工作:
a) 更新DNS記錄
b) 在鏡像角色切換的時候,清空用戶端機器的DNS緩衝
方案優缺點
優點:對於實現大批量業務應用平台化管理較實用。
缺點:需要修改DNS伺服器端記錄配置資訊,再清理用戶端DNS緩衝,重新擷取新的主伺服器資訊。過程相對繁瑣;需要考慮DNS伺服器的高可用;相較方案一、二,有一定延時。
方案四:AlwaysOn
方案介紹
AlwaysOn是一項集合了容錯移轉叢集、資料庫鏡像和記錄傳送的優點於一身的、功能強大的“高可用性+災難恢複”技術。
AlwaysOn利用了Windows容錯移轉叢集的健康監測和自動容錯移轉的特性,因此它必須建立在Windows容錯移轉叢集之上。但是和SQLServer群集不同的是,可用性群組裡的資料庫並不是一定要求存放在共用儲存(SharedDisk)上的,它們也可以儲存在本地磁碟上。另外,可用性群組是以使用者資料庫的集合為單位進行健康檢測和容錯移轉的,而不像SQLServer群集那樣是以整個執行個體為單位。
方案優缺點
優點:AlwaysOn可用性群組,每個可用性群組是一個包含了一個或數個使用者資料庫的容器,可用性群組裡的所有資料庫作為一個整體發生容錯移轉;次要伺服器可用於唯讀訪問請求;次要伺服器可以執行備份和DBCC命令。
缺點:AlwaysOn的SQLServer執行個體,最好使用同樣的固定連接埠;基於Windows群集。
方案五:Synchronous Mirror
方案介紹
當事務安全設定為 FULL 時,資料庫鏡像會話便會在首次同步處理階段後以高安全性模式同步運行。又細分為:
1. 不帶自動容錯移轉功能的高安全性模式
當夥伴串連在一起並且資料庫已同步時,支援手動容錯移轉。如果鏡像伺服器執行個體出現故障,則主體伺服器執行個體不會受到影響並且公開運行(即,未鏡像資料)。如果主體伺服器丟失,則鏡像會掛起,但可以將服務強制到鏡像伺服器(可能造成資料丟失)。
2. 帶自動鼓掌轉移功能的高安全性模式
自動容錯移轉通過確保在丟失一個伺服器之後仍向資料庫提供服務來提供高可用性。自動容錯移轉要求會話具有第三個伺服器執行個體(“見證伺服器”),理想情況是見證伺服器駐留在第三台電腦上。
方案優缺點
優點:無資料損失。
缺點:對業務效能要求較高的業務一定影響;需要部署一台見證伺服器。
方案六:SQL Server Cluster
方案介紹
SQL Server 容錯移轉叢集構建於 Windows Server 容錯移轉叢集之上。Windows伺服器容錯移轉叢集旨在提供高顯示狀態服務或應用程式叢集內運行容錯移轉。它包含一組獨立啟動並執行伺服器來提高應用程式和服務的可用性。容錯移轉叢集可以防止硬體和軟體故障, 將故障資源從一個伺服器 (或叢集節點) 轉移到另一個的節點。容錯移轉是一個過程, 以一個叢集服務或應用程式在一個節點上離線,並將它重新聯機在另一個節點。整個過程對使用者是透明的。
方案優缺點
優點:有效能的影響小。
缺點:基於Windows群集;停機時間約等於SQL Server服務重啟的時間+資料庫恢復;無法抵禦共用儲存磁碟故障。
方案七:Hyper-V + SQL Server Cluster
方案介紹
很多使用者在Hyper-V虛擬機器中用到了MS SQL Server。但是單獨(standalone)的SQL Server 不能提供高可用性和災難恢複的功能。在對可用性有較高要求的Hyper-V使用者面前,容錯移轉叢集(Failover cluster)是必然用到的功能。當虛擬生產伺服器宕機時,熱備份中的虛擬伺服器可以很快投入工作中。
方案優缺點
優點:減少計劃中的業務停機時間,可利用Hpyer-V的動態遷移功能。
缺點:需要虛擬化,應用於壓力小的業務。
方案八:Log Shipping
方案介紹
可以使用記錄傳送將交易記錄不間斷地從一個資料庫(主要資料庫)發送到另一個資料庫(次要資料庫)。不間斷地備份主要資料庫中的交易記錄,然後將它們複製並還原到次要資料庫,這將使次要資料庫與主要資料庫基本保持同步。目標伺服器充當備份伺服器,並可以將查詢處理從主伺服器重新分配到一個或多個唯讀次要伺服器。記錄傳送可與使用完整或大量記錄復原模式的資料庫一起使用。
方案優缺點
優點:支援多副本。
缺點:容錯移轉後無法復原;對用戶端不透明;停機時間較長。
方案九:Transactional Replication
方案介紹
事務複製通常從發行集資料庫對象和資料的快照開始。 建立了初始快照集後,接著在發行伺服器上所做的資料更改和架構修改通常在修改發生時(幾乎即時)便傳遞給訂閱伺服器。 資料更改將按照其在發行伺服器上發生的順序和事務邊界應用於訂閱伺服器,因此,在發布內部可以保證事務的一致性。
方案優缺點
優點:資料庫物件層級。
缺點:對效能的影響較高。
方案十:以上方案的混合使用
方案介紹
如鏡像結合記錄傳送等。
方案優缺點
優點:疊加多種方案的優點。
缺點:增加對效能的影響和管理的複雜度。
方案十一:NLB叢集
方案介紹
NLB叢集
方案優缺點
優點:透明
缺點:系統層技術複雜。
附表1:SQL Server高可用方案對比
功能 |
容錯移轉叢集 |
記錄傳送 |
資料庫鏡像 |
事務複製 |
AlwaysOn |
保護層級 |
執行個體級 |
資料庫級 |
資料庫級 |
資料庫物件級 |
資料庫級 |
是否有資料損失 |
/ |
可能有少量資料損失 |
無資料損失(同步模式) |
可能有少量資料損失 |
無資料損失(同步提交模式) |
自動容錯移轉 |
是 |
否 |
是(高可用操作模式) |
否 |
是(自動容錯移轉模式) |
容錯移轉後是否可逆 |
是 |
否 |
是 |
否 |
是 |
對用戶端是否透明 |
是,自動重串連到相同IP的另一個節點 |
否 |
是,自動重新導向(需要驅動程式支援) |
否 |
是 |
停機時間 |
約等於SQL Server服務重啟的時間+資料庫恢復 |
較長 |
約等於資料庫恢復 |
較長 |
約等於資料庫恢復 |
多個備用資料副本 |
否 |
是 |
否 |
是 |
是(最大4個) |
備用資料副本可讀 |
/ |
是 |
否 |
是 |
是 |
能抵禦使用者誤操作 |
否 |
是 |
否 |
否 |
否 |
能抵禦磁碟故障 |
否 |
是 |
是 |
是 |
是 |
是否有特定硬體要求 |
windows群集 |
無 |
要求有較好的磁碟和網路 |
無 |
Windows群集 |
對效能的影響 |
低 |
中 |
中 |
高 |
中 |
其他功能 |
/ |
自動頁面修複 |
/ |
衝突解決,雙向資料同步等 |
自動頁面修複,唯讀路由,次要資料庫備份,次要資料庫執行DBCC命令 |
版本支援 |
SQL Server 2000及以後 |
SQL Server 2000及以後 |
SQL Server 2005及以後 |
SQL Server 2000及以後 |
SQL Server 2012 |
本文出自 “滴水石穿” 部落格,請務必保留此出處http://ultrasql.blog.51cto.com/9591438/1579613
SQL Server 高可用方案