ApplicationIntent = ReadOnly
我对 SQL Server 2016 Enterprise Edition 中指定和编写查询的连接字符串的行为感到困惑。
假设,可用性组有一个主数据库X1
和两个副本,X2
并且X3
假设我想平衡读取和写入,以便所有写入都将转到主数据库,而读取将转到两个副本。
如果应用程序连接到 SQL 并使用单个连接字符串执行读取和写入查询ApplicationIntent = ReadOnly
,这是否意味着应用程序尝试运行写入查询时会出错,或者只是将此查询重定向到主查询?
是的。如果您配置了只读路由,则读取意图连接将被重定向到只读副本。它们将在连接期间保持与只读副本的连接。仅在最初连接到 AG 时才会发生路由。因此,如果路由将客户端重定向到只读副本,则任何写入查询都将失败。