[SQL Server]如何透過SSMS管理工具連接AlwaysOn唯讀路由資料庫

先前案子多把SQL Server 2012 新功能AlwaysOn作為備援用途,這次的案子則進一步希望在SQL Server 2014完成讀寫分流,

設定好ReadOnly Routing和Listener,也請SP幫忙加AD(VCO)及DNS,使用SSMS連入時卻一直連到主要複本,

明明設好了ApplicationIntent=ReadOnly..

1.目前主要複本在DB1,次要複本在DB2

2.SSMS(SQL Server Management Studio)連接監聽器(Listener)IP:192.168.120.50

3.設定SSMS其他連接參數(ApplicationIntent=ReadOnly)

4.確認連接到伺服器: 卻還是連到DB1?

百思不得其解,於是試著像connectingstrings加上資料庫名稱

5.設定其他連接參數,加上資料庫名稱(Initial catalog=TSQL2014;ApplicationIntent=ReadOnly)

6.確認連接的伺服器為DB2: 噹!噹!終於連上了!神奇

7.ok!正常運作了!接下來在次要複本資料庫DB2執行下面的T-SQL切換,測試是否唯讀也從DB2切換過來DB1。

USE [master]
ALTER AVAILABILITY GROUP [AG] FAILOVER;

8.主要複本切到DB2,次要複本在DB1

9.重新連接相同監視程式IP相同連接字串,確認連接的伺服器為DB1:正確!

 

最近和資料庫名稱很有緣,這次ReadOnly Rounting要資料庫名稱,上次資料表值參數不可以使用資料庫名稱。

問題暫時排除了!筆記(低頭寫)

 

TODO:把資料存取底層改成讀寫分流

 

參考:

設定可用性群組的唯讀路由