MS SQL 名前付きインスタンスの接続

Microsoft SQL Server(MS-SQL)には「名前付きインスタンス」という機能があります。この機能を使用すると、別々の設定で同じデータベース(またはクラスタ化されたホスト)で複数のデータベースを実行できます。各データベース インスタンスは専用のポートで実行されます。ただし、Windows 上で実行されている MS-SQL 対応のクライアントを使用する場合は、ポート番号ではなく名前で接続できます。たとえば、ホスト名が dbserver でインスタンス名が proddb の場合、ホスト名 dbserver\proddb を使用して接続します。

MS SQL 名前付きインスタンスの接続方法

  1. クライアントは、デフォルトの MS-SQL ポート(1433)で指定されたホストに接続します。
  2. MS-SQL は指定されたインスタンスのポートで応答します。
  3. クライアントは、そのポートに接続します。

このようにして Looker が名前付きインスタンスのポート番号を検出できない場合 Looker がポートに接続されると、クエリを実行できることが想定され、他のポートには接続されません。

Looker に MS-SQL 名前付きインスタンスを接続する方法

MS-SQL は起動時にランダムなポートを選択します。Looker を MS-SQL の名前付きインスタンスに接続するには、名前付きインスタンスが実行されているポートを見つける必要があります。

  • ポートの検索方法については、SQL Server - TCP ポート番号の検索 SQL インスタンスをリッスンするの記事をご覧ください。2012 年の記事ですが、手順は MS-SQL のさまざまなバージョンで類似しています。
  • ポートが見つかったら、Looker のデータベース接続構成の [Host:Port] フィールドにポート名を入力します。たとえば、ポートが 61499 で、ホストの名前が dbserver の場合、Looker での接続は次のようになります。

      host: dbserver
      port: 61499
  • 注: データベース ホスト名は、インスタンス名で接続する場合のように dbserver\proddb の形式にはなりません
  • サーバーが再起動されるたびに、MS-SQL が名前付きインスタンスに別のポートを選択することに注意してください。その場合、MS-SQL がファイアウォール ルールを変更し、新しいポートを使用するように Looker を再構成する必要がある ポートが変更されないようにするには、名前付きインスタンスに静的ポートを割り当てます。プロセスの詳細については、SQL Server の名前付きインスタンスに静的ポートを割り当てる方法 - 一般的な問題を回避するをご覧ください。