差分バックアップの動作

このトピックは、すべての種類のデータベースに関連しています。

差分バックアップは、最新の完全バックアップに基づいて行われます。この基になるバックアップを差分のベースといいます。差分バックアップには、差分ベースの作成後に変更されたデータのみが含まれます。

差分バックアップのサイズは、ベースの作成後に変更されたデータの量によって異なります。通常、ベースが古いほど、新しい差分バックアップの量は多くなります。差分バックアップは、そのバックアップを作成した時点で変更済みのエクステントの状態をキャプチャします。一連の差分バックアップを作成する場合、頻繁に更新されるエクステントでは、各差分バックアップのデータが異なる可能性が高くなります。差分バックアップのサイズが大きくなると、データベースを復元するときに、差分バックアップの復元に要する時間がかなり長くなる場合があります。このため、定期的に新しい完全バックアップを実行することにより、データの新しい差分ベースを作成することをお勧めします。たとえば、データベース全体のバックアップ (つまり、データベースの完全バックアップ) を週に 1 回実行し、次の週の完全バックアップまでの間、一連のデータベースの差分バックアップを定期的に実行します。

次の図に差分バックアップの動作を示します。この図では、24 個のデータ エクステントがあり、そのうちの 6 個が変更されています。差分バックアップには、これら 6 個のデータ エクステントのみが含まれます。差分バックアップ操作は、エクステントごとに 1 つのビットを含むビットマップ ページに依存します。ベース以降に更新されたエクステントそれぞれにつき、ビットマップ内のビットが 1 に設定されます。

差分ビットマップでの変更されたエクステントの識別

注意

コピーのみのバックアップを実行しても、差分ビットマップは更新されません。したがって、コピーのみのバックアップは差分ベースまたは差分バックアップとして使用できません。コピーのみのバックアップを実行しても、それ以降の差分バックアップに影響はありません。

通常、差分ベースの直後に作成された差分バックアップは、差分ベースよりも大幅に小さくなります。そのため、ストレージ領域とバックアップ時間が節約されます。一方、データベースは時間の経過と共に変化するため、データベースと個々の差分ベースの間の差分は大きくなっていきます。差分バックアップとそのベースの間の時間が長くなればなるほど、差分バックアップが大きくなる可能性が高くなります。これは、最終的には差分バックアップが差分ベースのサイズにほぼ等しくなる可能性があることを意味しています。差分バックアップが大きくなると、高速で小さなバックアップの利点が失われます。

復元時には、差分バックアップを復元する前に、ベースを復元する必要があります。次に、最新の差分バックアップのみを復元して、データベースをその差分バックアップが作成されたときの状態にします。通常は、最新の完全バックアップを復元してから、その完全バックアップを基にした最新の差分バックアップを復元します。

差分バックアップを作成および復元する場合、SQL Server ではそのデータベースがファイルの集まりとして処理されます。これにより、差分バックアップの内容と、データベース バックアップやファイル バックアップと共に差分バックアップを使用する方法が影響を受けます。SQL Server データベース エンジンは、一般的なシナリオでは予期しない動作が発生することなく容易に処理できるように設計されています。

詳細については、「差分バックアップの基になるバックアップ」を参照してください。