次の方法で共有


データベース ミラーリングの一時停止と再開 (SQL Server)

データベース所有者は、データベース ミラーリング セッションをいつでも一時停止し、後で再開できます。 一時停止すると、ミラーリングの中断中にセッションの状態が維持されます。 ボトルネックの間、一時停止はプリンシパル サーバーのパフォーマンスを向上させるために役立つ場合があります。

セッションが一時停止されると、プリンシパル データベースは引き続き使用できます。 一時停止すると、ミラーリング セッションの状態が SUSPENDED に設定され、ミラー データベースがプリンシパル データベースに対応しなくなり、プリンシパル データベースが公開されます。

データベース ミラーリング セッションが一時停止したままである限り、トランザクション ログを切り捨てることができないため、一時停止中のセッションを迅速に再開することをお勧めします。 そのため、データベース ミラーリング セッションが長時間一時停止すると、トランザクション ログがいっぱいになり、データベースが使用できなくなります。 これが発生する理由については、このトピックで後述する「一時停止と再開がログの切り捨てに与える影響」を参照してください。

重要

強制サービスの後、元のプリンシパル サーバーがミラーリングを再接続すると、中断されます。 このような状況でミラーリングを再開すると、元のプリンシパル サーバーでデータが失われる可能性があります。 潜在的なデータ損失の管理については、「 データベース ミラーリングの動作モード」を参照してください。

このトピックでは:

一時停止と再開がログの切り捨てにどのように影響するか

通常、データベースで自動チェックポイントが実行されている場合は、次のログ バックアップの後、そのチェックポイントまでトランザクション ログが切り捨てられます。 データベース ミラーリング セッションは一時停止したままですが、プリンシパル サーバーがミラー サーバーへの送信を待機しているため、現在のすべてのログ レコードはアクティブなままです。 セッションが再開され、プリンシパル サーバーがミラー サーバーにログ レコードを送信するまで、未送信のログ レコードはプリンシパル データベースのトランザクション ログに蓄積されます。

セッションが再開されると、プリンシパル サーバーは、蓄積されたログ レコードのミラー サーバーへの送信をすぐに開始します。 ミラー サーバーが、最も古い自動チェックポイントに対応するログ レコードをキューに登録したことを確認すると、プリンシパル サーバーはプリンシパル データベースのログをそのチェックポイントに切り捨てます。 ミラー サーバーは、同じログ レコードで再実行キューを切り捨てます。 このプロセスは、連続するチェックポイントごとに繰り返されるため、ログはチェックポイントごとに段階的に切り捨てられます。

チェックポイントとログの切り捨ての詳細については、「 データベース チェックポイント (SQL Server)」を参照してください。

完全なトランザクション ログを回避する

ログがいっぱいになると (最大サイズに達したか、サーバー インスタンスの領域が不足しているため)、データベースはそれ以上更新を実行できません。 この問題を回避するには、次の 2 つの方法があります。

  • ログがいっぱいになる前にデータベース ミラーリング セッションを再開するか、ログ領域を追加します。 データベース ミラーリングを再開すると、プリンシパル サーバーは蓄積されたアクティブ ログをミラー サーバーに送信し、ミラー データベースを SYNCHRONIZING 状態にします。 その後、ミラー サーバーはログをディスクに書き込み、やり直しを開始できます。

  • ミラーリングを削除して、データベース ミラーリング セッションを停止します。

    セッションの一時停止とは異なり、ミラーリングを削除すると、ミラーリング セッションに関するすべての情報が削除されます。 各パートナー サーバー インスタンスは、データベースの独自のコピーを保持します。 前者のミラー コピーが回復された場合、元のプリンシパル コピーとは異なっており、セッションが一時停止されてから経過した時間で遅れていることになります。 詳細については、「 データベース ミラーリングの削除 (SQL Server)」を参照してください。

関連タスク

データベース ミラーリングを一時停止または再開するには

データベース ミラーリングを停止するには

こちらもご覧ください

データベースを変更 (Transact-SQL)
データベース ミラーリング (SQL Server)
データベース ミラーリングの削除 (SQL Server)