0

好的,所以我设置了一个 Azure Sql 故障转移组,mydatabase.databsae.windows.net其中包含 2 个服务器:

  • mydatabase1.databsae.windows.net
  • mydatabase2.databsae.windows.net

我去connectionstrings.com获取我的 Sql Azure 连接字符串,如下所示:

Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase; User ID=MyUser@[serverName];Password=myPassword;Trusted_Connection=False; Encrypt=True;

现在问题出在User ID=MyUser@[serverName]我试过了:

User ID=MyUser@mydatabase但这不起作用并反复返回错误:

服务器“mydatabase”上的数据库“mySqlDatabase”当前不可用。请稍后重试连接

我也试过User ID=MyUser@mydatabase1了,确实奏效了。

但是连接字符串中的上述问题是,当我进行故障转移时,mydatabase2我需要去更新我的所有连接字符串。

那么在使用 Sql Failover 组时正确的连接字符串是什么?

4

2 回答 2

3

这是故障转移组的当前限制:

注意:如果此时您转到 SSMS 并尝试使用上述侦听器连接到您的主/辅助数据库,您将收到错误并且将无法登录。理想情况下它应该允许,但它当前失败,因为它试图连接到当前不属于该组的主数据库。这目前正在处理中,应该很快得到解决。到那时,解决方法是在连接到服务器时提供数据库名称。使用选项按钮提供数据库名称。

这意味着目前只有以下连接字符串可以工作:

Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase1;Password=myPassword;Trusted_Connection=False;
Encrypt=True;

或者

Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase2;Password=myPassword;Trusted_Connection=False;
Encrypt=True;

不幸的是,这使得自动故障转移完全无用,因为您需要重新配置所有连接字符串

参考:https ://social.technet.microsoft.com/wiki/contents/articles/37968.working-with-azure-sql-auto-failover-group.aspx

于 2018-01-23T12:24:32.323 回答
0

尝试 :

Server=tcp:mydatabase.database.windows.net;Database=mySqlDatabase;
User ID=MyUser@mydatabase;Password=myPassword;Trusted_Connection=False;
Encrypt=True;MultiSubnetFailover=True;
于 2018-01-23T12:11:05.720 回答