バックアップの概要 (SQL Server)

どの復旧モデルでも、SQL Server データベース全体やその一部、またはデータベースの個別のファイルやファイル グループのバックアップが可能です。テーブルレベルのバックアップは作成できません。

注意注意

SQL Server のバックアップと復元は、64 ビット システムか 32 ビット システムかに関係なく、サポートされるすべてのオペレーティング システムで機能します。サポートされるオペレーティング システムについては、「SQL Server 2008 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

データのバックアップ

データのバックアップ (データ バックアップ) のスコープには、データベース全体、データベースの一部、または一連のファイルやファイル グループを指定できます。それぞれの場合について、SQL Server では完全バックアップと差分バックアップがサポートされます。

  • 完全バックアップ

    完全バックアップには、特定のデータベース、またはファイル グループやファイルのデータがすべて含まれます。さらに、データを復旧するために必要なログも含まれます。

  • 差分バックアップ

    差分バックアップは、最後に行ったデータの完全バックアップに基づきます。この最後に行った完全バックアップを差分のベース、または差分ベースといいます。差分ベースは読み書きデータの完全バックアップです。差分バックアップには、差分ベースの作成以降に変更されたデータのみが含まれます。一般に、ベース バックアップの直後に作成する差分バックアップは、完全バックアップのベースに比べてサイズが小さく、作成速度も速くなります。したがって、差分バックアップを使って頻繁にバックアップを行うと、バックアップの作成速度が向上し、データを失うリスクが減少します。通常、差分ベースは複数の連続した差分バックアップで使用します。復元時には、完全バックアップを先に復元し、続いて最新の差分バックアップを復元します。

    時間の経過と共にデータベースが更新されるにつれて、差分バックアップに含まれるデータ量が増えます。その結果、バックアップの作成と復元の速度が低下します。最終的には、再度完全バックアップを行い、新しい差分ベースと新しい差分バックアップを用意する必要が生じます。

    注意注意

    一般に差分バックアップは、1 つの差分ベースがカバーするものと同じデータ ファイルをカバーします。単純復旧モデルでは、1 つの差分バックアップに 1 つの差分ベースしか使用できません。複数のベースの使用を試みると、エラーが発生し、バックアップ操作に失敗します。完全復旧モデルでは、差分ファイル バックアップに複数のベースを使用できますが、管理が困難になる可能性があります。詳細については、「マルチベースの差分バックアップの使用」を参照してください。

各データ バックアップには、そのバックアップが最後まで復元できるように、トランザクション ログの一部が含められます。

完全復旧モデルまたは一括ログ復旧モデルでは、データ バックアップを最初に行ってから、通常のトランザクション ログ バックアップ (ログ バックアップ) を行う必要があります。各ログ バックアップは、バックアップを作成したときにアクティブだったトランザクション ログ部分に対応します。また、ログ バックアップには、以前のログ バックアップ時にバックアップされなかったすべてのログ レコードも含まれます。

データベースのバックアップ

データベース バックアップは使いやすいので、データベースのサイズが許すかぎり頻繁に行うことをお勧めします。SQL Server では次の種類のデータベース バックアップがサポートされます。

バックアップの種類

説明

データベース バックアップ

データベース全体の完全バックアップ。データベース バックアップは、バックアップが完了した時点のデータベース全体を表します。

差分データベース バックアップ

データベース内のすべてのファイルのバックアップ。このバックアップには、各ファイルの最新データベース バックアップ以降に変更されたデータ エクステントのみが含まれます。

部分バックアップ

部分バックアップと部分的な差分バックアップは、SQL Server 2005 で導入されました。これらのバックアップは、単純復旧モデルで読み取り専用のファイル グループがいくつかあるときに、データベースのバックアップに柔軟性を持たせることを目的に設計されましたが、すべての復旧モデルでサポートされます。

SQL Server 2008 では、次の種類のバックアップがサポートされます。

バックアップの種類

説明

部分バックアップ

プライマリ ファイル グループ、すべての読み取り/書き込みファイル グループ、必要に応じて指定した読み取り専用ファイルまたはファイル グループ内にあるすべてのデータをバックアップします。読み取り専用データベースの部分バックアップには、プライマリ ファイル グループのみが含まれます。

部分的な差分バックアップ

同じセットのファイル グループの最新の部分バックアップ以降に変更されたデータ エクステントのみを含むバックアップです。

ファイル バックアップ

データベース内のファイルは、個別にバックアップおよび復元できます。ファイル バックアップを使用すると、残りのデータベースを復元しないで損傷したファイルだけを復元できるので、復旧を高速化できます。たとえば、異なるディスクに配置されている複数のファイルからデータベースが構成されていて、1 つのディスクに障害が発生した場合、障害が発生したディスク上のファイルを復元するだけで済みます。ただし、ファイル バックアップの計画と復元は複雑になる可能性があるので、ファイル バックアップを使用するのは、復元計画でのメリットが明確である場合のみにしてください。

SQL Server では、次の種類のバックアップがサポートされます。

バックアップの種類

説明

ファイル バックアップ

1 つ以上のファイルまたはファイル グループに含まれるすべてのデータの完全バックアップ。

重要な注意事項重要
単純復旧モデルでは、ファイル バックアップは基本的に読み取り専用のセカンダリ ファイル グループに限定されます。読み取りと書き取りが可能なファイル グループのファイル バックアップを作成できますが、読み取りと書き取りが可能なファイル グループを復元する前に、そのファイル グループを読み取り専用に設定し、読み取り専用ファイルの差分ファイル バックアップを行う必要があります。

ファイルの差分バックアップ

1 つ以上のファイルのバックアップ。各ファイルの最新の完全バックアップ以降に変更されたデータ エクステントが含まれます。

注意注意
単純復旧モデルでは、完全バックアップ以降にデータが読み取り専用に変更されたと見なされます。
注意注意

フルテキスト カタログのバックアップと復元を実行できます。詳細については、「SQL Server 2008 フルテキスト カタログのバックアップと復元」および「段階的な部分復元とフルテキスト インデックス」を参照してください。

トランザクション ログ バックアップ (完全復旧モデルおよび一括ログ復旧モデルのみ)。

完全復旧モデルまたは一括ログ復旧モデルでは、通常のトランザクション ログ バックアップ (ログ バックアップ) が必要になります。各ログ バックアップは、バックアップを作成したときにアクティブだったトランザクション ログ部分に対応します。また、ログ バックアップには、以前のログ バックアップ時にバックアップされなかったすべてのログ レコードも含まれます。ログ バックアップの連続したシーケンスには、データベースの完全なログ チェーンが含まれます (途切れていない状態)。完全復旧モデル、および場合によっては一括ログ復旧モデルでは、ログ チェーンが途切れていなければデータベースを任意の時点に復元できます。

最初のログ バックアップを作成する前に、データベース バックアップなどの完全バックアップを作成する必要があります。その後は、作業損失の可能性を最小限に抑えるだけでなく、トランザクション ログの切り捨てもできるように、トランザクション ログのバックアップを定期的に行う必要があります。詳細については、「トランザクション ログのバックアップ」を参照してください。

重要な注意事項重要

復元する必要があるログ バックアップの数を制限するには、定期的なデータのバックアップが不可欠です。たとえば、データベースの完全バックアップを毎週実行し、差分バックアップを毎日実行するようにスケジュールできます。

コピーのみのバックアップ

通常、バックアップを行うとデータベースが変更され、その後のバックアップの復元方法に影響します。ただし、データベース全体のバックアップや復元の手順に影響を与えない、特殊な目的にバックアップを行うと役に立つ場合があります。このため、SQL Server 2005 では、コピーのみのバックアップが導入されました。このようなバックアップは、SQL Server の通常のバックアップ シーケンスから独立しています。詳細については、「コピーのみのバックアップ」を参照してください。

バックアップ デバイス

SQL Server のバックアップは、ディスク ファイルやテープ メディアなどのバックアップ デバイスに作成されます。デバイス上の既存のバックアップに新しいバックアップを追加するか、既存の任意のバックアップを上書きできます。詳細については、「SQL Server でのバックアップ メディアの操作」を参照してください。

バックアップのスケジュール

バックアップの実行によって、実行中のトランザクションが受ける影響はわずかです。したがってバックアップは、通常の運用時に実行できます。バックアップ時には、SQL Server により、データベース ファイルからバックアップ デバイスに直接データがコピーされます。データは変更されないので、バックアップ中に実行されているトランザクションに遅延は生じません。そのため、実稼働ワークロードへの影響は最小限にとどめて SQL Server バックアップを実行できます。バックアップ中の同時実行の制限事項の詳細については、後の「SQL Server でのバックアップ操作の制限事項」を参照してください。

バックアップは、設定した間隔で自動的に実行されるようにスケジュールできます。データベース バックアップとログ バックアップの定期バックアップ ジョブのスケジュール設定方法の詳細については、「メンテナンス プラン ウィザード」を参照してください。

バックアップの圧縮

SQL Server 2008 Enterprise 以降のバージョンでは、バックアップの圧縮がサポートされ、SQL Server 2008 以降のバージョンでは、圧縮されたバックアップを復元することができます。詳細については、「バックアップの圧縮 (SQL Server)」を参照してください。

SQL Server でのバックアップ操作の制限事項

SQL Server 2005 以降のバージョンでは、オンラインでデータベースを使用中であってもバックアップを行うことができます。ただし、次の制限事項があります。

オフライン データはバックアップできない

オフライン データを暗黙的または明示的に参照するバックアップ操作は失敗します。よく見られる例を次に示します。

  • データベースの完全バックアップを要求したが、データベースのいずれかのファイル グループがオフラインである場合。データベースの完全バックアップにはすべてのファイル グループが暗黙的に含まれるため、この操作は失敗します。

    このデータベースをバックアップするには、ファイル バックアップを使用し、オンラインのファイル グループのみを指定します。

  • 部分バックアップを要求したが、読み取り/書き込みファイル グループがオフラインの場合。部分バックアップにはすべての読み取り/書き込みファイル グループが必要なので、この操作は失敗します。

  • 特定のファイルのファイル バックアップを要求したが、いずれかのファイルがオンラインでない場合。操作は失敗します。オンライン ファイルをバックアップするには、ファイル一覧からオフライン ファイルを削除し、操作を繰り返します。

通常、1 つ以上のデータ ファイルを使用できない状態でも、ログ バックアップは続行できます。ただし、一括ログ復旧モデルで行われた一括ログ変更がいずれかのファイルに含まれている場合、バックアップを続行するにはすべてのファイルをオンラインにする必要があります。

バックアップ中の同時実行の制限事項

SQL Server では、オンライン バックアップを使って、使用中のデータベースをバックアップできます。バックアップ中はほとんどの操作が可能です。たとえば、INSERT、UPDATE、または DELETE ステートメントはバックアップ操作中でも使用できます。ただし、データベースの作成中または削除中にバックアップ操作を開始しようとすると、データベースの作成または削除操作が完了するまで、またはバックアップがタイムアウトするまで、バックアップ操作が待機します。

データベース バックアップやトランザクション ログ バックアップ中に、次の操作を実行することはできません。

  • ADD FILE または REMOVE FILE のいずれかのオプションが指定された ALTER DATABASE ステートメントなどのファイル管理操作。

  • データベースまたはファイルの圧縮操作。これには自動圧縮操作も含まれます。

  • バックアップ操作実行中にデータベース ファイルを作成または削除しようとすると、作成操作または削除操作は失敗します。

バックアップ操作がファイル管理操作または圧縮操作の実行と重複すると、競合が発生します。競合する操作のどちらが先に開始されたかにかかわらず、1 つ目の操作によって設定されたロックのタイムアウトを 2 つ目の操作が待機します (タイムアウト期間はセッション タイムアウトの設定によって制御されます)。ロックがタイムアウト期間内に解放されると、2 つ目の操作が続行されます。ロックがタイムアウトすると、2 つ目の操作は失敗になります。

注意注意

バックアップの作成方法の詳細については、「SQL Server データベースの完全バックアップおよび差分バックアップの作成」および「トランザクション ログのバックアップ」を参照してください。