Microsoft SQL Server(MS-SQL)には、名前付きインスタンスという機能があります。この機能を使用すると、同じホスト(またはクラスタ化されたホスト)で複数のデータベースを別々の設定で実行できます。各データベース インスタンスは専用のポートで実行されます。ただし、Windows で実行されている MS-SQL 対応クライアントを使用する場合は、ポート番号ではなく名前で接続できます。たとえば、ホスト名が dbserver
で、インスタンスの名前が proddb
の場合、ホスト名 dbserver\proddb
を使用して接続します。
MS-SQL 名前付きインスタンスの接続方法
- クライアントは、デフォルトの MS-SQL ポート(1433)で名前が指定されたホストに接続します。
- MS-SQL は、名前付きインスタンスのポートで応答します。
- クライアントはそのポートに接続します。
この方法では、Looker は名前付きインスタンスのポート番号を見つけることができません。Looker がポートに接続すると、クエリを実行できると想定され、他のポートには接続しません。
MS-SQL 名前付きインスタンスを Looker に接続する方法
MS-SQL は起動時にランダムなポートを選択します。Looker が MS-SQL 名前付きインスタンスに接続するには、名前付きインスタンスが実行されているポートを見つける必要があります。
- ポートを見つける方法については、SQL Server - SQL インスタンスがリッスンしている TCP ポート番号の検索をご覧ください。この記事は 2012 年のものですが、手順は MS-SQL のさまざまなバージョンで同様です。
-
ポートを見つけたら、Looker のデータベース接続構成の
Host:Port
フィールドにポート名を入力します。たとえば、ポートが61499
で、ホスト名がdbserver
の場合、Looker での接続は次のようになります。host: dbserver port: 61499
- サーバーが再起動されるたびに、MS-SQL が名前付きインスタンスに別のポートを選択する可能性があるので注意してください。この場合、MS-SQL でファイアウォール ルールを変更し、新しいポートを使用するように Looker を再構成する必要があります。ポートが変更されないようにするために、名前付きインスタンスに静的ポートを割り当てることができます。このプロセスの詳細については、SQL Server 名前付きインスタンスに静的ポートを割り当てる方法 - 一般的な落とし穴を回避するをご覧ください。
注: インスタンス名で接続する場合とは異なり、データベース ホスト名は dbserver\proddb
形式にはなりません。