web-dev-qa-db-ja.com

接続AlwaysOn AGリスナーの問題

私はマイクロソフトテクノロジの初心者で、SQL Server 2014の接続部分に問題があります。これはおそらく簡単な問題ですが、行き詰まっています。

私は4台のサーバーを持っています。それらの1つはActive Directoryドメインコントローラーで、1つはアプリケーションサーバーで、他はSQLサーバーで使用されています。接続の問題なので、サーバーのIPは次のとおりです。 -AD DC:10.6.0.100(DNSサーバーも))-APP:10.6.0.110 -SQL 1:10.6.0.120 -SQL 2:10.6.0.121

フェールオーバークラスター(DBCLUSTER)を正常に作成し、FCのIPアドレスを10.6.0.1として設定しました(これはnot実際のサーバーIPですが、実際には使用しません) tこの部分を取得します。

その後、SQLサーバー用のAlwaysOn可用性グループを作成しました。リスナーなしでAGを正常に作成しました。私は互いにサーバーに接続でき、データベースは問題なく同期しました。次に、リスナー(AG-LISTENER)を作成し、そのIPを10.6.0.131として設定しました(これはnot実際のサーバーIPです) 、again?)、ポートを5525に設定します。問題ありませんでした。

接続性をテストしたかったので。 [〜#〜] app [〜#〜]サーバーから直接SQL 1またはSQL 2に接続したい場合、問題なく接続します。 ButAG-LISTENERに接続しようとすると、ネットワーク上で見つかりません。 DNSレコードを確認すると、 10.6.0.131でホストされているので、それを確認できます。

AD-DC、APP、SQL 2サーバーからAG-LISTENERにpingを実行しようとすると、宛先ホストに到達できないという応答があります(10.6.0.131にpingを送信していますが、応答はAD-DC、APP、SQL 2サーバーのIPから送られます)。 AGのプライマリであるSQL 1サーバーから接続できます。

ファイアウォールを確認しましたが問題ありません。しかし、これは私には手がかりのないネットワークの問題だと思います。

PS:サーバーはWindows Server 2012で動作しており、Azureでホストされていますnot

[〜#〜]ソリューション[〜#〜]

問題の原因は、サービスプロバイダーのネットワークトポロジでした。 IP 10.6.0.0/32が他の顧客の他のサーバーによって使用される可能性があることがわかりました。それで、彼らは私たちだけがアクセスできる別のIPブロックを割り当ててくれました。

7
erdimeola

AGのプライマリであるSQL 1サーバーから接続できます。

「接続」とは、pingAG-LISTENERSQL1からできることを意味しますか?

問題は、リスナー用に選択したポート番号にあると思われます。 5525を選択すると、デフォルト以外のポートが選択されます(1433がデフォルトになります)。

では、リスナーに接続しようとすると、接続文字列はどのようになりますか?私はそれが次のように見えると思います:

data source = ag-listener; initial catalog = ...

ここには2つのオプションがあります。リスナーのポート番号を明示的に指定することもできます。

data source = ag-listener,5525; initial catalog = ...

同様に、これをSQL Server Management Studio(SSMS)でテストする場合は、ag-listenerを入力する代わりに、Connect to Serverダイアログボックスを使用します。 Server nameテキストボックスには、ag-listener,5525を入力します。

または、リスナーがリスニングしているポートを1433に変更することもできます(この変更を検討する前に、以下のBOLリファレンスをお読みください)。

alter availability group YourAvailabilityGroupName
modify listener 'AG-LISTENER'
(
    port = 1433
);

デフォルトのポート(1433)をいつ使用できるかは注目に値します。 リスナーに1433を使用できる場合と使用できない場合を説明するBOL]のこのリファレンスをご覧ください (抜粋コピー/下記に貼り付けて参照):

クライアント接続文字列を簡素化できるように、デフォルトポートを1433に設定できます。 1433を使用する場合、接続文字列でポート番号を指定する必要はありません。また、各可用性グループリスナーには個別の仮想ネットワーク名があるため、単一のWSFCで構成された各可用性グループリスナーは、同じデフォルトポート1433を参照するように構成できます。

(簡潔にするために一部を省略)

可用性グループリスナーVNNにデフォルトポート1433を使用する場合でも、クラスターポート上の他のサービスがこのポートを使用していないことを確認する必要があります ;そうしないと、ポートの競合が発生します。

[〜#〜] edit [〜#〜]:上記があなたの問題ではない場合(下記のコメントからわかるように)、その後ログを確認すると、次の最善策は、ネットワークトラフィックの調査を開始して、何が発生しているか(発生していないか)を確認することです。 netmon のようなネットワーク監視ツールを使用してこれを実現できます。

もう1つやることはありますが、ファイアウォールは問題ないと言っていましたが、ポートが実際にリッスンしているかどうかを確認します(私のお気に入りのツールは portqry です)。

5
Thomas Stringer