sql >> データベース >  >> RDS >> Database

名前付きインスタンスを使用していますか? DAC接続をテストしてください!

    今日遊んでみると、専用の管理者接続(DACとも呼ばれますが、DACではありません)を使用してローカルの名前付きインスタンスに接続できないことがわかりました。

    ADMIN:PLASKETT\SQL2012に接続できません。

    SQL Serverへの接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:43 –専用の管理者接続(DAC)ポートの取得中にエラーが発生しました。SQLブラウザーが実行されていることを確認するか、エラーログでポート番号を確認してください)(Microsoft SQL Server、エラー: -1)

    これはローカルであるため、もちろん、リモート管理者接続を許可する次のサーバーレベルの設定は、この特定のシナリオでは効果がありません。

    EXEC sp_configure 'remote admin connections', 1;
    GO
    RECONFIGURE;
    GO

    トレースフラグ7806を有効にすると、そのトレースフラグがSQL Server Express用であるにもかかわらず(ここに記載されているように)接続できることがわかりました。しかし、問題はこれよりも深くなければならないことはわかっていました。Microsoftがこの機能を完全に破壊することはできなかったでしょう?

    この症状は*名前付き*インスタンスにのみ影響することがわかりました。これについては、デフォルトのインスタンスがあり、正常に接続できるJonathanKehayiasと話していました。ただし、ポート番号を明示的に指定すると接続できなかったため、TCP/IPが無効になっていることがわかりました。

    これは、特にTCP / IPプロトコルがデフォルトで無効になっているため、Developer Editionの名前付きインスタンスに影響しますが、名前付きインスタンスを使用している場合にこれが問題になる可能性がある他のシナリオがあります…

    • [誤って]DeveloperEditionを本番環境にデプロイしました(いたずらないたずら)。
    • どのエディションでもTCP/IPを無効にしました。また、
    • SQLServerブラウザサービスが実行されていません。

    これを解決するには、SQLServer構成マネージャー><名前付きインスタンス>のネットワークプロトコルを介してTCP/ IPが有効になっていることを確認し、SQLServerブラウザーサービスが実行されていることを確認します。 SQLServerを再起動する必要があります。

    これで、DACを介して接続できる場合、Management Studio内で接続しようとすると、次のエラーメッセージが表示されます。

    このエラーメッセージは無害です(そして、バックグラウンドのIntelliSense接続から来ていると思います)。ステータスバーから接続していることがわかります。このエラーメッセージを閉じてクエリを実行することで、接続がDAC接続であることを確認できます。

    いずれにせよ、DACを介して接続できることを確認することは、災害復旧計画において絶対に不可欠なステップです。 DACに接続できない場合は、次のメンテナンス期間中(または、サービスを再開する余裕がある場合はそれ以前)に、次のアクションのいずれかまたは両方を計画する必要があります。

    • TCP/IPを有効にする
    • トレースフラグ7806を有効にする

    いずれの場合も、SQLServerブラウザサービスが実行されていることを確認してください。また、応答しないサーバーにアクセスする必要があるときにどこにいるかわからないため、リモート接続を有効にするサーバー設定が有効になっていることを確認してください。

    Kendra Littleは、昨年DACについて素晴らしいブログ投稿を書きました。 DACを使って何ができるかを理解するのは楽しいことです。DACがそこにあることを知ることは本当に素晴らしいことですが、実際のサーバーに問題が発生した場合にDACがどのように役立つかを知ることも重要です。

    >
    1. SQL Serverはいつ巻き戻しをソートしますか?

    2. SQLでREPLACEを使用する方法

    3. MySQLテーブル名の特殊文字

    4. MySQL CONVERT_TZ()