【问题标题】:Does SQL Azure automatically geo-replication automatically failover?SQL Azure 是否会自动进行异地复制并自动进行故障转移?
【发布时间】:2015-05-11 21:16:48
【问题描述】:

我们在 SQL Azure (Premium) 中有一个地理复制数据库,想知道我们是否指向作为主数据库的美国中南部数据库,如果出现故障,我们是否必须手动更改代码中的连接字符串(C# .Net / Entity Framework 6)指向美国北部的新数据库?我们正在寻找一种方法来拥有一个单一的连接字符串,然后如果主服务器出现故障,Azure 会在幕后进行现在指向新数据库的操作。这可能吗?

更新方法如下:
所以我读到这篇文章,当一个区域出现故障时,我们必须手动进入生产系统上的 web.config 文件,并将主数据库更改为另一个正在工作的复制数据库。

我决定在 web 配置中对东部、西部和南部区域进行硬编码,并编写代码以在无法访问主要区域时重试并故障转移到其他区域。这意味着它只能读取,不能写入,直到 Microsoft 或我们手动将主服务器故障转移到只读活动从服务器。对我来说不是最好的体验。需要人工干预知道它已关闭,然后翻转它并自定义代码

【问题讨论】:

    标签: c# azure azure-sql-database replication


    【解决方案1】:

    你应该阅读这篇文章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;这意味着连接字符串发生了变化。

    【讨论】:

    • 谢谢,所以我读到了这篇文章,当一个区域出现故障时,我们必须手动进入生产系统上的 web.config 文件,并将主数据库更改为另一个正在工作的复制数据库。我决定在 web 配置中硬编码 eat, west 和 south 区域,并编写代码重试并在无法访问主要区域时故障转移到其他区域。这意味着它只能读取,不能写入,直到 Microsoft 或我们手动将主服务器故障转移到只读活动从服务器。对我来说不是最好的体验。需要人工干预知道它已关闭,然后翻转它并自定义代码。
    【解决方案2】:

    只需在 Azure 上的 SQL 服务器上配置“Failover Groups”,然后在应用程序中配置组故障转移 R/W 侦听器即可。它会自动更新 DNS 记录并指向可用的数据库服务器,以防前者因中断而停机。

    【讨论】:

      【解决方案3】:

      作为对可能会来找的其他人的更新,此功能现在可在 SQL Azure 上使用。它被称为自动故障转移组,于 2017 年 5 月宣布。截至撰写本文时,它仍处于预览状态 - 门户目前不支持配置,必须通过 API 完成。

      更多信息在这里:https://azure.microsoft.com/en-us/blog/azure-sql-database-now-supports-transparent-geographic-failover-of-multiple-databases-featuring-automatic-activation/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 2021-08-16
        • 1970-01-01
        • 2016-04-28
        • 2023-03-26
        • 2023-04-07
        • 1970-01-01
        相关资源
        最近更新 更多