对Azure SQL数据库故障转移组和主连接字符串使用ApplicationIntent = ReadOnly

时间:2018-09-18 22:34:13

标签: azure-sql-database

我已经开始使用ApplicationIntent = ReadOnly;适用于效果很好的高级数据库。

但是,如果我使用故障转移组连接,则该连接始终为READ_WRITE。您可以不将ApplicationIntent = ReadOnly与主要FOG连接字符串一起使用: Server = tcp:xxxx-fog.database.windows.net,1433;持久性安全信息= False;连接超时= 300; TrustServerCertificate = True;数据库= xxx; ApplicationIntent = ReadOnly;

为此,我可以使用地理辅助功能-但是我们在地理辅助功能上已经承担了很多负担,因此我也想使用一些主要副本进行读取。

2 个答案:

答案 0 :(得分:0)

ApplicationIntent允许路由到Premium或Business Critical数据库的本地HA副本。使用故障转移组时,要负载平衡只读流量,应使用Server = tcp:.secondary.database.windows.net。这将适用于FOG中的任何数据库(高级或非高级),并确保查询在故障转移时不会失败。我们也建议您也使用ApplicationIntent。如果您将数据库升级到Premium或Business Critical,则这将允许只读客户端利用本地HA复制副本,而无需更改连接字符串。

答案 1 :(得分:0)

仅需更新-Azure已确认这是一个错误,他们将在接下来的几周内对其进行修复。如果在将数据库添加到故障转移组后又打开了数据库的读取扩展功能,则通过故障转移组端点进行的连接将不支持读取扩展重定向。 解决此问题之前的当前解决方法是,在将数据库添加到故障转移组之前,先打开数据库的读取规模功能。