一、問題概述 在錯誤日誌中看到非常多的alwayson群集只讀連接錯誤,錯誤信息的描述為“目標資料庫位於可用性組,當前不允許通過read only連接”。錯誤日誌如下: 當前的業務系統使用監聽ip對資料庫進行連接,使用了ReadOnly和ReadWrite進行讀寫自動路由。當前alwayson的配置 ...
一、問題概述
在錯誤日誌中看到非常多的alwayson群集只讀連接錯誤,錯誤信息的描述為“目標資料庫位於可用性組,當前不允許通過read only連接”。錯誤日誌如下:
當前的業務系統使用監聽ip對資料庫進行連接,使用了ReadOnly和ReadWrite進行讀寫自動路由。當前alwayson的配置如下
二、問題原因
問題原因是使用了ReadOnly對主副本進行了連接操作導致的。由於當前的主角色中的連接配置的是“允許讀/寫連接”;所以當前主副本不允許ReadOnly的連接字元串的參數。當時這樣設置的目的就是為了避免只讀連接連接上主副本。防止客戶錯誤地將讀意向工作負荷連接到主副本。
問題原因大概有兩種可能:
1.應用程式連接配置存在問題,
2.路由本身BUG
第一種可能的可能性比較大,但是向開發經理確認過代碼那邊調用的是通用連接藉口,而且系統系統已經運行了一年多,而且這個問題是間隙性的,所以可以肯定介面連接配置是沒有問題的,唯一的可能性是哪裡單獨使用的主副本的ip進行了連接。
三、處理方法
將主角色中的連接修改為“允許所有連接”
註意:當前的這個處理方法並沒有根本的解決問題。正常情況下是通過監聽ip自動路由到對應的副本。
當前沒有找到那種方法可以在資料庫中查詢到應用程式使用了哪種查詢連接字元串參數進行連接,希望知道的朋友能告知一下。
備註: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接,否則保留追究責任的權利。 《歡迎交流討論》 |