ミラー化されたデータベースは、SQL Serverでデータベース ミラーを再起動した後に切断されます

この記事は、ミラー化されたデータベースが 切断 状態または 回復中 状態のままになる問題を解決するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 2490051

現象

次のような状況で問題が発生します。

  • 2 サーバー データベース ミラーで Microsoft SQL Server のセカンダリ インスタンスを実行しているコンピューターがあります。

  • CPU 使用率はコンピューターで 100% に達し、SQL Server管理ツールを使用してSQL Server サービスを停止することはできません。

  • タスク マネージャーを使用して、SQL Serverセカンダリ インスタンスのプロセスを終了します。

  • SQL Serverのセカンダリ インスタンスを再起動します。

このシナリオでは、ミラー化されたすべてのデータベースが 切断状態 または 回復中 状態です。 さらに、次のようなエラー メッセージが各データベースのSQL Serverエラー ログに記録されます。

アクセスできないデータベース ミラーリング データベースとしてマークされているため、データベース 'データベース名' の復旧をバイパスします。 ミラーリング セッションに問題があります。 セッションにクォーラムが存在しないか、リンク、エンドポイントの構成、またはアクセス許可 (サーバー アカウントまたはセキュリティ証明書の場合) に問題があるため、通信リンクが破損しています。 データベースにアクセスするには、セッション構成で何が変更されたかを把握し、変更を元に戻します。

原因

この問題は、SQL Server データベース ミラーリング エンドポイントの問題が原因で発生します。

解決方法

この問題を解決するには、次の方法を使用します。 最初の方法で問題が解決されない場合は、2 番目のメソッドを使用します。

方法 1

データベース ミラー上のエンドポイントをリサイクルします。 これを行うには、次の手順を実行します。

  1. プリンシパル データベースで、次の SQL スクリプトを実行してエンドポイントを停止します。

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. 次の SQL スクリプトを実行してエンドポイントを再起動します。

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    注:

    スクリプトの実行後にエンドポイント間の通信が再開されない場合は、データベース ミラーでスクリプトを実行します。 ただし、この操作を行うと、データベースが 中断 状態になることがあります。 この問題が発生した場合は、次の SQL スクリプトを実行します。

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

方法 2

両方のサーバーでデータベース ミラーリング エンドポイントを削除して再作成します。