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

適用対象:SQL Server

データベースの所有者は、データベース ミラーリング セッションを任意の時点で一時停止し、後から再開できます。 一時停止では、ミラーリングは中断しますが、セッションの状態は保たれます。 一時停止は、ボトルネックの発生中にプリンシパル サーバーのパフォーマンスを向上させる場合に役立ちます。

セッションが一時停止されても、プリンシパル データベースは引き続き使用できます。 一時停止によりミラーリング セッションの状態が一時中断に設定されるので、ミラー データベースがプリンシパル データベースの最新状態を反映しなくなり、プリンシパル データベースが危険に曝されることになります。

一時停止したセッションはすぐに再開することをお勧めします。データベース ミラーリング セッションが一時停止している間は、トランザクション ログの切り捨てが実行されないからです。 したがって、データベース ミラーリング セッションが長時間一時停止になっていると、トランザクション ログがいっぱいになり、データベースを利用できなくなります。 原因の詳細については、このトピックの「一時停止および再開がログ切り捨てに与える影響」を参照してください。

重要

強制されたサービスに続いて元のプリンシパル サーバーが再接続されると、ミラーリングが中断されます。 この状況でミラーリングを再開すると、元のプリンシパル サーバーのデータが失われる可能性があります。 データ損失の可能性への対処の詳細については、「 Database Mirroring Operating Modes」を参照してください。

このトピックの内容

一時停止および再開がログ切り捨てに与える影響

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

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

Note

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

トランザクション ログがいっぱいになった状態の回避

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

  • ログがいっぱいになる前に、データベース ミラーリング セッションを再開します。またはログ領域を増やします。 データベース ミラーリングを再開すると、累積されたアクティブなログがプリンシパル サーバーからミラー サーバーに送信され、ミラー データベースが同期中の状態になります。 次に、ミラー サーバーがログをディスクに固定し、再実行を開始します。

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

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

Related Tasks

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

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

参照

ALTER DATABASE (Transact-SQL)
データベース ミラーリング (SQL Server)
データベース ミラーリングの削除 (SQL Server)