web-dev-qa-db-ja.com

2つの異なるIPでSQL Serverへの接続を許可する方法

ここに小さな問題があります。クラスターにSQL Serverインスタンス2012(SQLINSTANCEと呼ぶことにします)があります。このインスタンスには2つのネットワークインターフェイスもあります。

- SQLINSTANCE.my.network
- SQLINSTANCE.mgt.my.network.

私のインスタンスは特定のポート1550でリッスンします。

私がそれに接続したい場合、ここに私の結果があります:

- SQLINSTANCE.my.network\INSTANCE: working
- SQLINSTANCE.mgt.my.network\INSTANCE: NOT working.

SQLブラウザーが関係していると思いますが、両方のアドレスをリッスンする必要があることを通知する方法がわかりません。

ファイアウォールのないWindows Server 2008r2で作業しています。両方のアドレスは、クラスターマネージャーでSQL Serverのリソースとして設定されます。

6
el_grom

これは私が働いている場所で使用しているセットアップのタイプです。

より良い例を示すために、エイリアス(CNAME)が次のように構成されていると仮定します。

SQLINSTANCE.my.network -> 192.168.1.30
SQLINSTANCE.mgt.my.network -> 10.0.0.1

次に、SQLサーバー構成マネージャーを起動し、SQLサーバーネットワーク構成ブランチを開いてProtocols for SQLINSTANCE(私の画像はインスタンス名としてMSSQLSERVERを示しています)まで開き、次にTCP/IPプロパティを右クリックすると、次のスクリーンショットのような画面が表示されます。

TCP/IP properties | Protocol settings

ダイアログで、TCP/IPプロパティが設定されていることを確認しますEnabled : YesListen All : Noオプションが設定されているため、次のスクリーンショットのようになります。

TCP/IP properties | Protocol settings corrected

次に、IPアドレスレジスタに切り替えて、最初のIPアドレスを見つけます。この例では、最初のIP(192.168.0.30)の設定はIP2セクションにあります。次のようになります。

IP2 address settings

オプションEnabled : Yesが設定され、IPアドレスが正しく、TCP Port : 1550は予約ポートに設定されています。

他のIPアドレスについても同じようにします。 IPセクション(このスクリーンショットのIP4など)を見つけて、適宜設定します。

IP4 address settings

そして最後に、動的ポートが無効になっていることを確認する必要があります。これを行うには、IPアドレスレジスタの一番下までスクロールし、次の設定を行います。

enter image description here

TCP動的ポートTCPポートの両方の設定が重要です空です!

完了したら、[〜#〜] ok [〜#〜]をクリックして、SQL ServerインスタンスSQLINSTANCEを再起動します。 SQL ServerインスタンスSQLINSTANCEは、両方のIPアドレスで取得されます。

幸運を!

Q&Aスタイルの記事を作成しました SSMSログインボックスの有効な接続文字列とは何ですか? これは、SQL Serverとそのインスタンスに接続するときに発生する可能性があるいくつかの設定について説明しています。また、接続先の実際のポートがわからない場合にのみ、SQL Server Browserサービスが必要であることも簡単に説明します。 誰かセキュリティを追加しましたか?

5

このリンクは問題の解決に役立ちます。複数のポートまたは複数のIPアドレスでリッスンするようにSQLを構成する方法を示します。

SQL Serverを構成して複数のポートを使用する

0
Jonathan

はい、 'el_grom'すべてのSQL Serverインスタンス接続の化学は、SQL Server Browserに属します。

SQL Server BrowserプログラムはWindowsサービスとして実行されるためです。 SQL Server Browserは、Microsoft SQL Serverリソースに対する着信要求をリッスンし、コンピューターにインストールされているSQL Serverインスタンスに関する情報を提供します。

SQL Serverのインスタンスの起動時に、SQL ServerでTCP/IPプロトコルが有効になっている場合、サーバーにはTCP/IPポートが割り当てられます。

SQL Serverの複数のインスタンスに対して、SQL Server解決プロトコル(SSRP)は、UDPポート1434でリッスンするように開発されました。SQLServer Browserが起動し、UDPポート1434を要求します。SQLServer Browserは、レジストリを読み取り、コンピューター上のSQL Serverのすべてのインスタンスを識別します。そして、それらが使用するポートと名前付きパイプに注意します。サーバーに2つ以上のネットワークカードがある場合、SQL Server Browserは、SQL Serverで最初に検出された有効なポートを返します。 SQL Server Browserはipv6およびipv4をサポートします。 SQL Server Browserは、デフォルトのインスタンスのポート情報を返しません。 MSDN BOLから https://msdn.Microsoft.com/en-us/library/hh510203(v = sql.110).aspx および https://www.mssqltips。 com/sqlservertip/1946/overview-of-the-sql-server-browser-service /

あなたの場合のように、1つのSQL Server 2012インスタンスがあります。 (SQLINSTANCE)のような2つのネットワークインターフェイスで接続してみます

1) SQLINSTANCE.my.network
2) SQLINSTANCE.mgt.my.network

また、SQLINSTANCEは特定のポート1550でリッスンしています。つまり、デフォルトでは、すべてのIPアドレスがSQL Server構成マネージャーで構成された同じポートをリッスンします。あなたの場合、それは1550です。特定のSQLインスタンスに対して異なるポートまたは異なるネットワークサービスをリッスンしたい場合、これは http://blogs.msdn.com/b/sqlblog/archiveに役立つドキュメントです。 /2009/07/17/how-to-configure-sql-server-to-listen-on-different-ports-on-different-ip-addresses.aspx

0