SQL Server 連接屬性 applicationIntent
我對 SQL Server 的 ApplicationIntent 連接屬性有疑問。文件說它有兩個值ReadWrite和ReadOnly。如果我將值設置為 ReadOnly,它將只允許讀取查詢還是還支持對 SQLServer 的更新查詢?
我問這個,記住 SQLServer 的可用性組中的只讀路由!
希望 SQL Server Native Client 的文件能夠為您解決問題,特別是關於指定應用程序意圖的這一部分
可以在連接字元串中指定關鍵字 ApplicationIntent。可分配的值為 ReadWrite 或 ReadOnly。預設值為讀寫。
當 ApplicationIntent=ReadOnly 時,客戶端在連接時請求讀取工作負載。伺服器在連接時和 USE 數據庫語句期間強制執行意圖。
由於您提到這是在可用性組 (AG) 的上下文中,因此指定 ReadOnly 的意圖會將您連接到可用性組中的可讀輔助節點(只要您連接到偵聽器,並且您使用的是企業版)。
因此,強制執行是由於輔助節點是只讀的 - 您可以嘗試通過此連接執行數據修改,但它們會失敗。
注意:對於更複雜的設置,具有多個可讀輔助節點,您也可以配置只讀路由
我問這個,記住 SQLServer 的可用性組中的只讀路由!
在這裡,
ApplicationIntent=ReadOnly
當您配置只讀路由(連結到我的部落格)並且想要將其路由read connection requests
到可讀的輔助副本以實現可伸縮性時使用。您需要在連接字元串上指定
ApplicationIntent = ReadOnly
andInitial Catalog
值才能使這個只讀路由工作。ApplicationIntent=ReadOnly; Initial Catalog = DBName;
否則,它將連接到主副本(
ApplicationIntent = ReadWrite
:預設值)。在Always On AG上,當與 ReadOnly intent 連接時,您無法對可讀輔助副本執行更新查詢。只允許在主副本上進行寫操作。