Microsoft SQL Server(MS-SQL)には「名前付きインスタンス」という機能があります。この機能を使用すると、別々の設定で同じデータベース(またはクラスタ化されたホスト)で複数のデータベースを実行できます。各データベース インスタンスは専用のポートで実行されます。ただし、Windows 上で実行されている MS-SQL 対応のクライアントを使用する場合は、ポート番号ではなく名前で接続できます。たとえば、ホスト名が dbserver
でインスタンス名が proddb
の場合、ホスト名 dbserver\proddb
を使用して接続します。
MS SQL 名前付きインスタンスの接続方法
- クライアントは、デフォルトの MS-SQL ポート(1433)で指定されたホストに接続します。
- MS-SQL は指定されたインスタンスのポートで応答します。
- クライアントは、そのポートに接続します。
このようにして 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
- サーバーが再起動されるたびに、MS-SQL が名前付きインスタンスに別のポートを選択することに注意してください。その場合、MS-SQL がファイアウォール ルールを変更し、新しいポートを使用するように Looker を再構成する必要がある ポートが変更されないようにするには、名前付きインスタンスに静的ポートを割り当てます。プロセスの詳細については、SQL Server の名前付きインスタンスに静的ポートを割り当てる方法 - 一般的な問題を回避するをご覧ください。
注: データベース ホスト名は、インスタンス名で接続する場合のように dbserver\proddb
の形式にはなりません。