[問題記錄] Don't forget to configure ReadOnly routing list in AlwaysOn availability group

為何明明使用了applicationintent=readonly 但仍然連去primary?

前幾天有朋友問為何他在SQL Server 2014 AlwaysOn 跑重語法查詢影響到primary

明明就已經加了applicationintent=readonly 怎麼還是在primary上面執行呢?

難道這option 只是個愰子?還是遇到了bug?

於是問了朋友安裝過程 並幫忙檢查了一下設定

SELECT hadr.role_desc, 
       ar.primary_role_allow_connections_desc, 
       ar.read_only_routing_url, 
       ar.replica_server_name, 
       ar.secondary_role_allow_connections_desc, 
       ar.availability_mode_desc, 
       hadr.synchronization_health_desc
FROM sys.availability_replicas ar
JOIN sys.dm_hadr_availability_replica_states hadr
ON ar.replica_id = hadr.replica_id

這真是太神奇了!

真的加了option 仍然連到primary 呀!

為了還Option 一個清白

先把最重要的 ReadOnly routing list 設定好

再重新驗證一次

這下終於洗刷了冤屈 獲得免費榛果拿鐵一杯 ‎(๑¯∀¯๑)