1

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

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

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

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

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

4

2 回答 2

1

如果您使用故障转移组设置,结合异地复制,您将使用“读/写侦听器端点”(groupname.database.windows.net)。这会自动选择组中的“活动/主要”服务器。

完成您的设置(另一个区域中的辅助服务器),添加复制,然后创建Failover Group,您应该在那里看到它。

于 2021-03-02T23:28:55.463 回答
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. 因此,您无需手动更改应用服务配置设置。

您可以在下图所示的位置找到它。 在此处输入图像描述

于 2021-03-03T01:11:13.400 回答