我们在 SQL Azure(高级版)中有一个异地复制数据库,想知道我们是否指向作为主数据库的美国中南部数据库,如果该数据库出现故障,我们是否必须手动更改代码中的连接字符串(C# .Net/Entity Framework 6)指向美国北部的新数据库?我们正在寻找一种方法来使用单个连接字符串,然后 Azure 在幕后执行操作,以便在主数据库发生故障时指向新数据库。这可能吗?
更新所遵循的方法:
所以我读到这篇文章,当某个区域出现故障时,我们必须手动进入生产系统上的 web.config 文件,并将主数据库更改为另一个正在工作的复制数据库。
我决定在 Web 配置中对东部、西部和南部区域进行硬编码,并编写代码来重试,并在无法访问主区域时故障转移到其他区域。这意味着它只能读取,不能写入,直到 Microsoft 或我们手动将主设备故障转移到只读事件从设备。对我来说这不是最好的经历。需要人工干预知道它已关闭,然后翻转它并自定义代码
最佳答案
您应该阅读这篇文章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 连接更改
;这意味着连接字符串发生更改。
关于c# - SQL Azure 是否会自动异地复制、自动故障转移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30177802/