前回の投稿でシステムテーブルの更新には、専用管理者接続 (Dedicated Administrator Connection : DAC) を
使用すると書きました。
DAC は SQL Server 2005 からの機能で、SQL Server の応答が無くなった時に、トラブルシューティング等を
するために使用します。
デフォルトでは SQL Server をインストールしているサーバー (127.0.0.1) からのみ接続ができるようになっています。
以下の SQL を実行することで、リモートからも DAC による接続が可能となります。
sp_configure ‘remote admin connections’, 0 |
?
DAC ですがクラスタ環境の場合、ローカルの接続でもリモート DAC が有効になっていないと接続することができません。
このことは BOL にも記載されています。
クラスタ構成では、DAC は既定でオフになります。ユーザーは、sp_configure の remote admin connection オプションを実行すると、DAC リスナを有効にしてリモート接続にアクセスできます。 SQL Server が応答せず、DAC リスナが有効になっていない場合は、DAC で接続するために SQL Server を再起動する必要が生じる場合があります。 この理由から、クラスタ システムでは remote admin connections 構成オプションを有効にすることをお勧めします。 |
?
DAC の接続ですが、SQL Server Browser サービスが起動しているかによって接続方法が変わってきます。
[SQL Server Browser サービスが起動している場合]
こちらは前回の投稿で記載した接続方法になります。
接続先のサーバーとして、[ADMIN:<サーバー名><インスタンス名>] を指定することで接続ができます。
[SQL Server Browser サービスが起動していない場合 ]
SQL Server Browser サービスが起動していない状態で [ADMIN:~] で接続をすると、以下のエラーとなります。
ADMIN: での接続は DAC で使用しているポートを SQL Server Browser サービスに問い合わせています。
# DAC のポートは動的ポートのため、起動毎にポートが変更されます。
サービスが起動していないとポートがわからないため接続することができません。
DAC に割り当てられているポートは [ERRORLOG] ファイルに出力されています。
# ERRORLOG は SQL Server のインスタンスのインストールディレクトリの [Log] ディレクトリに出力されています。
このファイルをテキストエディタで開くと以下のような出力があります。
2009-11-05 23:02:19.60 サーバー??????? Dedicated admin connection support was established for listening remotely on port 50743. |
この行に DAC のポート番号が出力されています。
今回の場合は [50743] となっています。
ローカルから接続する場合、サーバー名の指定は [127.0.0.1,<ポート番号>] になります。
# 対象インスタンスの DAC のポートを直接指定するため、インスタンス名は不要です。
リモートから接続する場合は、[<サーバー>,<ポート番号>] になります。
DAC を使用して何か障害を解決したということは今のところないのですが、接続方法は知っておくと
障害発生時に便利かと。