使用Azure Sql故障转移组时连接字符串应该是什么?

时间:2018-01-23 12:08:48

标签: sql-server azure azure-sql-database azure-sql-server

好的,所以我在mydatabase.databsae.windows.net设置了一个包含2台服务器的Azure Sql Failover小组:

  • 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;

现在问题在于用户ID = MyUser @ [serverName] 我试过了:

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

  

服务器'mydatabase'上的数据库'mySqlDatabase'目前不在   可用。请稍后重试连接

我也尝试了User ID=MyUser@mydatabase1 工作。

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

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

2 个答案:

答案 0 :(得分:3)

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

  

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

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

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

OR

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

答案 1 :(得分:0)

尝试:

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