我们在SQL Azure(Premium)中有一个地理复制数据库,并且想知道我们是否指向作为主数据的美国中南部数据库,如果发生故障,我们必须在代码中手动更改连接字符串(C#.Net / Entity Framework 6)指向北美的新数据库?我们正在寻找一种方法来拥有一个连接字符串,然后Azure执行覆盖,现在指向新数据库,如果主服务器出现故障。这可能吗?
关注方法的更新:
所以我读到这一点,当一个区域出现故障并将主数据库更改为另一个正在运行的复制数据库时,我们必须手动进入生产系统上的web.config文件。
我决定只在Web配置中对东,西,南区域进行硬编码,然后编写代码重试并在无法到达主要区域的情况下故障转移到其他区域。这意味着它只能读取,不能写入Microsoft,或者我们手动将主站故障转移到只读活动从站。对我来说不是最好的体验。需要人工干预知道它已经关闭,然后翻转它和自定义代码
答案 0 :(得分:2)
您应该阅读这篇文章Designing Cloud Solutions for Disaster Recovery Using Active Geo-Replication
有关如何为可用性设置Azure的一些选项。因此,根据您的要求和配置,可能需要更改SQL连接字符串。本文的关键是查看" SLA"。例如,在 选项2:具有解耦故障转移的主动 - 主动计算 中,SLA为:
RTO = SQL connection change + database state change + application verification test
注意SQL connection change
;这意味着更改连接字符串。
答案 1 :(得分:2)
只需在Azure的SQL服务器上配置“故障转移组”,然后在应用程序中配置组故障转移R / W侦听器。它会自动更新DNS记录,并指向可用的数据库服务器,以防前者由于中断而停机。
答案 2 :(得分:1)
正如对可能来看的其他人的更新一样,此功能现在可在SQL Azure上使用。它被称为自动故障转移组,于2017年5月宣布。截至撰写本文时,它仍处于预览状态 - 门户目前不支持配置,必须通过API完成。