このバックアップと復元のトピックは、すべての SQL Server データベースに関連します。
差分バックアップは、最新の前回の完全データ バックアップに基づいています。 差分バックアップでは、その完全バックアップ以降に変更されたデータのみがキャプチャされます。 差分バックアップの基になっている完全バックアップは、差分の ベース と呼ばれます。 コピーのみのバックアップを除く完全バックアップは、データベース バックアップ、部分バックアップ、ファイル バックアップなど、一連の差分バックアップのベースとして機能できます。 ファイル差分バックアップのベース バックアップは、完全バックアップ、ファイル バックアップ、または部分バックアップに含めることができます。
メリット
差分バックアップの作成は、完全バックアップの作成と比べて非常に高速です。 差分バックアップは、完全バックアップ以降に変更されたデータのみを記録します。 これにより、頻繁なデータ バックアップの作成が容易になります。これにより、データ損失のリスクが減少します。 ただし、差分バックアップを復元する前に、そのベースを復元する必要があります。 したがって、差分バックアップからの復元には、2 つのバックアップ ファイルが必要であるため、完全バックアップからの復元よりも多くの手順と時間が必要になります。
データベースの差分バックアップは、データベースのサブセットが他のデータベースよりも頻繁に変更される場合に特に便利です。 このような場合、データベースの差分バックアップを使用すると、データベースの完全バックアップのオーバーヘッドなしで頻繁にバックアップできます。
完全復旧モデルでは、差分バックアップを使用すると、復元する必要があるログ バックアップの数を減らすことができます。
差分バックアップの概要
差分バックアップは、差分ベースの作成時と差分バックアップの作成時の間に変化した エクステント (物理的に連続する 8 ページのコレクション) の状態をキャプチャします。 つまり、特定の差分バックアップのサイズは、ベース以降に変更されたデータの量によって異なります。 一般に、バックアップベースが古いほど、新しい差分バックアップが大きくなります。 一連の差分バックアップでは、頻繁に更新されるエクステントに、差分バックアップごとに異なるデータが含まれる可能性があります。
次の図は、差分バックアップのしくみを示しています。 この図は、24 個のデータエクステントを示しています。そのうち 6 つのエクステントが変更されています。 差分バックアップには、これらの 6 つのデータ エクステントのみが含まれます。 差分バックアップ操作は、すべてのエクステントに対してビットを含むビットマップ ページに依存します。 ベース以降に更新されたエクステントごとに、ビットはビットマップで 1 に設定されます。
注
差分ビットマップは、コピーのみのバックアップでは更新されません。 したがって、コピーのみのバックアップは、後続の差分バックアップには影響しません。
ベースバックアップの直後に取得された差分バックアップは、通常、差分ベースよりも大幅に小さいです。 これにより、ストレージ領域とバックアップ時間が節約されます。 ただし、データベースが時間の経過と同時に変化すると、データベースと特定の差分ベースの差が大きくなります。 差分バックアップとそのベースの間の時間が長いほど、差分バックアップが大きくなる可能性があります。 つまり、差分バックアップは最終的に差分ベースのサイズに近づく可能性があります。 大規模な差分バックアップでは、高速で小さいバックアップの利点が失われます。
差分バックアップのサイズが大きくなると、差分バックアップを復元すると、データベースの復元に必要な時間が大幅に長くなる可能性があります。 そのため、データの新しい差分ベースを確立するために、設定された間隔で新しい完全バックアップを作成することをお勧めします。 たとえば、データベース全体の週単位の完全バックアップ (つまり、データベースの完全バックアップ) の後に、その週の定期的な一連の差分データベース バックアップを実行できます。
復元時に差分バックアップを復元する前に、そのベースを復元する必要があります。 次に、最新の差分バックアップのみを復元して、差分バックアップが作成された時刻にデータベースを転送します。 通常、最新の完全バックアップの後に、その完全バックアップに基づく最新の差分バックアップを復元します。
メモリ最適化テーブルを含むデータベースの差分バックアップ
メモリ最適化テーブルを使用した差分バックアップとデータベースの詳細については、「 Memory-Optimized テーブルを使用したデータベースのバックアップ」を参照してください。
Read-Only データベースの差分バックアップ
読み取り専用データベースの場合、差分バックアップで使用する場合よりも、単独で使用する完全バックアップを管理する方が簡単です。 データベースが読み取り専用の場合、バックアップやその他の操作では、ファイルに含まれるメタデータを変更できません。 そのため、差分バックアップが開始されるログ シーケンス番号 (差分ベース LSN) など、差分バックアップに必要なメタデータが マスター データベースに格納されます。 データベースが読み取り専用のときに差分ベースが取得された場合、差分ビットマップは、ベース バックアップ以降に実際に発生した変更よりも多くの変更を示します。 バックアップセット システム テーブルに格納されている differential_base_lsn を使用して、ベース以降にデータが実際に変更されたかどうかを判断するため、追加のデータはバックアップによって読み取られますが、 バックアップ には書き込まれません。
読み取り専用データベースを再構築、復元、またはデタッチしてアタッチすると、差分ベース情報は失われます。 これは、 マスター データベースがユーザー データベースと同期されていないために発生します。 SQL Server データベース エンジンでは、この問題を検出または防止できません。 それ以降の差分バックアップは、最新の完全バックアップに基づいておらず、予期しない結果になる可能性があります。 新しい差分ベースを確立するには、データベースの完全バックアップを作成することをお勧めします。
Read-Only データベースでの差分バックアップの使用に関するベスト プラクティス
読み取り専用データベースの完全データベース バックアップを作成した後、後続の差分バックアップを作成する場合は、 マスター データベースをバックアップします。
マスター データベースが失われた場合は、ユーザー データベースの差分バックアップを復元する前に復元してください。
後で差分バックアップを使用する予定の読み取り専用データベースをデタッチしてアタッチする場合は、実用的になるとすぐに、読み取り専用データベースと マスター データベースの両方の完全なデータベース バックアップを作成します。
関連タスク
こちらもご覧ください
バックアップの概要 (SQL Server)
データベースの完全バックアップ (SQL Server)
データベースの完全復元 (完全復旧モデル)
データベースの完全な復元 (単純復旧モデル)
トランザクション ログ バックアップ (SQL Server)