在SQLServer 2012 Always On中我們可以通過建立一個可用性群組接聽程式來提供到給定可用性群組的資料庫的用戶端串連。可用性群組接聽程式是一個虛擬網路名稱 (VNN),用戶端可串連到此名稱以訪問
AlwaysOn 可用性群組的主副本或輔助副本中的資料庫。可用性群組接聽程式使用戶端無需知道它要串連到的 SQL Server物理執行個體的名稱,即可串連到某個可用性複本(相當於SQLServer叢集的Virtual
Server Name)。無需修改用戶端連接字串,即可串連到當前主副本的當前位置。
可用性群組接聽程式配置
可用性群組接聽程式由以下各項定義:
· 虛擬網路名稱 (VNN)
· 接聽程式連接埠(針對接聽程式名稱偵聽傳入的請求)
· 為可用性群組可以容錯移轉到的一個或多個子網配置的一個或多個虛擬 IP (VIP)
· 配置為使用 DHCP或靜態 IP
下面是我的叢集上Always On
Listener 配置:
配置完成後用Listenner AG1串連資料庫,查看伺服器名稱(可以看到已連線的服務器是Node1):
做一次Failover然後在查詢已連線的服務器名稱(可以看到這次實際串連到了Node2,跟叢集一樣的效果):
使用接聽程式串連到主副本
若要使用可用性群組接聽程式串連到主副本以進行讀寫訪問,連接字串應指定可用性群組接聽程式 DNS 名稱。如果可用性群組主副本變為新副本,則將斷開使用可用性群組接聽程式的網路名稱的現有串連。然後,將到可用性群組接聽程式的新串連定向到新的主副本。如下所示是針對
ADO.NET 提供者 (System.Data.SqlClient) 的基本連接字串的一個樣本:
Server=tcp: AG1,1433;Database=MyDB;IntegratedSecurity=SSPI
您仍可選擇直接引用主副本或輔助副本的 SQL Server 執行個體名稱,而不使用可用性群組接聽程式伺服器名稱,但如果您選擇這樣做,將會丟失新串連(自動定向到當前主副本)的優勢。還將失去唯讀路由的優勢。
如果可用性群組僅擁有一個輔助副本並且未配置為允許對輔助副本進行讀訪問,則用戶端可以通過使用資料庫鏡像連接字串串連到主副本。
在將現有應用程式從資料庫鏡像遷移到可用性群組時,此方法可能會很有用,只要您將可用性群組限制為兩個可用性複本(一個主副本和一個輔助副本)。
如果添加其他輔助副本,您需要為該可用性群組建立一個可用性群組接聽程式,並更新您的應用程式以使用該可用性群組接聽程式 DNS 名稱。
更多資訊參考:http://msdn.microsoft.com/zh-cn/library/hh213417.aspx