【问题标题】:How can i set configuration string in App Service when using Geo-Replication in Azure?在 Azure 中使用异地复制时,如何在应用服务中设置配置字符串?
【发布时间】:2021-03-03 10:47:35
【问题描述】:

我在 Azure 中有一个 SQL 数据库,我进行了异地复制。我正在使用 Azure 中的“强制故障转移”来模拟故障转移。 一个问题,因为连接到主服务器的应用服务有一个依赖于位于美国中北部的 sql 服务器的连接,如下所示:

"Server=mynthcentralusserver.database.windows.net ....

当我创建辅助 sql 数据库备份时,它需要一个服务器。我不想将服务器放在与主要(美国中北部)相同的区域,因为我正在模拟的那个区域已经关闭,所以如果我在美国中南部创建一个 sql 服务器,连接字符串显然会更改为:

"Server=mysthcentralusserver.database.windows.net .... just the server part. 

这是否意味着我需要手动更改应用服务配置设置? 此外,如果美国中北部的主要位置已备份并且我想搬回那里,我是否需要返回并再次更改连接字符串以指向美国中北部的服务器?

【问题讨论】:

    标签: azure azure-sql-database geo-replication


    【解决方案1】:

    更新:
    我的 Spring 应用程序连接到故障转移组。我手动做了一个Failover,在控制台输出中,我们可以看到需要将Client IP添加到防火墙中才能访问。之后,我们的应用就可以访问新的服务器了。

    无法打开登录请求的服务器“josephserver3”。不允许 IP 地址为“xxx.xxx.xxx.xxx”的客户端访问服务器。要启用访问,请使用 Windows Azure 管理门户或在 master 数据库上运行 sp_set_firewall_rule 为该 IP 地址或地址范围创建防火墙规则。

    为主 sql server 创建故障转移组后,主 db 将自动复制。然后我们应该连接到故障转移组名称。我们可以看到Primary和Secondary的切换,app服务会自动变为指向新的Primary sql server。当我们创建一个新的 sql server 时,它不允许放在同一个位置。

    如果你的连接字符串如下:

    • 主服务器:mynthcentralusserver.database.windows.net
    • 二级服务器 :mysthcentralusserver.database.windows.net
    • 故障转移组读/写侦听器端点:failover-group.database.windows.net

    正如@Bruno L. 所说。你的应用服务应该连接到failover-group.database.windows.net。因此您无需手动去更改应用服务配置设置。

    您可以在下图所示的位置找到它。

    【讨论】:

    • 这有帮助,但它显然不会跨越任何防火墙设置?为了真正进行测试,为什么不能将辅助节点下线以确保它真正连接到主节点?
    • 你说得对,我们需要给从服务器添加防火墙规则。将您的应用服务添加到规则后,当 primary down 时,它将自动更改为指向新的 Primary sql server。
    • 是的,谢谢,看到了,我可以手动完成,而且效果很好。我正在考虑尝试使一切自动化。我可能会考虑编写一个用于复制防火墙设置并将其作为基于计时器的 Azure 函数的 powershell 脚本。
    • 另一件事 .. 从主节点复制到辅助节点的频率如何?是否可配置?
    • 根据这个document,在你启动故障转移组之后,这个同步是实时的。
    【解决方案2】:

    如果您使用 Failover Groups 设置,结合 Geo-Replication,您将使用“Read/write listener endpoint”(groupname.database.windows 。网)。这会自动选择组中的“活动/主要”服务器。

    按照您的设置(另一个区域中的辅助服务器),添加复制,然后创建 故障转移组,您应该会在那里看到它。

    【讨论】:

    • 那么你的意思是,如果我为主sql server创建一个故障转移组,主db将自动被复制。但是当我模拟故障转移时,我可以看到 Primary 和 Secondary 的切换,但是 app 服务配置会自动更改为指向新的 Primary sql server 吗?
    • 为什么当我创建一个新的 sql server 时它不允许放入不同的资源组,因为主数据库位于资源组中的服务器上,而该服务器位于失败的位置?跨度>
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2021-09-05
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2020-04-04
    相关资源
    最近更新 更多