0

mydatabase.databsae.windows.netわかりましたので、 2 つのサーバーを含むAzure Sql フェールオーバー グループをセットアップしました。

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

次のような SQL Azure 接続文字列を取得するために、connectionstrings.comにアクセスします。

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 に答える