web-dev-qa-db-ja.com

割り当てたインスタンスではなく、デフォルトのインスタンスにリンクされたすべてのSQL Serverエイリアス

コンピューターに複数のSQL Serverインスタンス(異なるバージョン)があります。各インスタンスのエイリアスを enter image description here

最初にすべてを解決したと思いましたが、接続するエイリアス名に関係なく、すべてSQL2017インスタンスにつながります。

もっと情報を提供したいのですが、どこから始めればよいかわかりません。そして、私が何を間違っているのか考えていますか?

3
蕭為元

SQL Serverインスタンスに正しく接続するには、network libraryIP addressport numberの2つのことを知っている必要があります。これら2つは必要十分です。

named instanceの「名前」はlibraryに違いはありません。named instancesが導入されたときに発明され、port numberを決定するためだけに使用されます。

port numberconnection stringにない場合、network librarySQL Server Browser(UDP 1434)にinstance nameを送信するよう要求します。応答としてport numberを受け取ります。

接続文字列にport numberがある場合、インスタンス名は無視されます

instance namebla-bla-blaに変更して、自分でテストできます。aliasを作成するか、単にSSMS接続ダイアログ.\bla-bla-bla,1433を入力すると、 default instanceに接続されている。

逆も同様です。instance namenamed instanceを省略して、named instanceがリッスンしている正しいportを指定した場合。たとえば、.,8852 where 8852は、名前が指定されていなくても、このnamed instanceに接続されるnamed instanceportです。

4
sepupic

ボックスで実行されている名前付きインスタンスがある場合、ポート番号は非常に重要です。各エイリアスを一意にするには、tcp/ipプロパティにある各インスタンスに関連付けられているポート番号を使用する必要があります。

  1. 各インスタンスの静的ポート番号を書き留めます。
  2. エイリアスの作成時にポート番号を指定します

いくつかの便利なリンク:

  1. MSDNリンク

  2. サンプルブログ

パラメータフィールドとサーバーは、トラフィックを正しいインスタンスに転送するために最も重要です。

たとえば、以下はホスト名(ここにサーバー名を入力)と2466でリッスンしているインスタンスに接続します。

enter image description here

アプリサーバー(その他)からリモートで接続するには、64ビットと32ビットの両方にcliconfg.exeを使用して同じエイリアス名を構成する必要があります。これは、エイリアスにリモートで接続するのに役立ちます。

1

また、他のインスタンスが動的ポートを使用していないことを確認する必要があります。そうしないと、再起動後にポート番号が変更され、エイリアスが再び壊れます。

1
Martin Cairney