Azure SQL 主副本读/写连接重定向



我有一个运行Azure SQL的Azure Asp.Net Core Web App。 SQL 服务器在不同的区域中具有副本目标。

这个特定的服务器是一个Hangfire"任务"服务器。在正常操作期间,它应该与(逻辑(Hangfire 集群中的其余服务器一起参与任务执行(它应该指向MyPrimaryLiveSql.database.com(。

如果主要区域中发生服务中断,BCDRSql.database.com的 sql 副本将从只读变为读/写。 我现在希望任务服务器自动开始使用 bcdrsql.database.com 作为其连接字符串,用于以后的所有连接。

在 Azure SQL 或Asp.Net 或 Azure Web 应用配置或实体框架核心中,是否有办法根据数据库是处于只读模式还是读/写模式动态选择/重定向 SQL 服务器连接字符串?

我可以通过SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');获取数据库读/写状态,但我不确定如何让我的数据上下文根据结果使用 BCDR 连接字符串,因为我的数据库上下文在启动序列中只初始化一次。

您可能只需要一个故障转移组来解决此问题。 请通读此链接:自动故障转移组。 请注意,这适用于自动 DR 路径 - 还有另一个活动的异地复制解决方案,你可能需要自己控制故障转移(Microsoft"自动"情况下执行此操作(。 因此,请注意每个解决方案所需的控制级别。 (当然,如果您选择故障转移,则可能会让您的应用程序执行您想要的操作,因为您自己正在进行更改。

最新更新