ファイル復元の実行 (単純復旧モデル)

このトピックは、1 つ以上の読み取り専用セカンダリ ファイル グループが含まれている単純復旧モデルのデータベースのみに関連しています。

ファイル復元の目標は、データベース全体を復元することなく 1 つ以上の破損したファイルを復元することです。単純復旧モデルでは、読み取り専用ファイルだけにファイル バックアップがサポートされます。プライマリ ファイル グループと読み取り/書き込みセカンダリ ファイル グループは、データベース バックアップまたは部分バックアップを復元することで、常に一緒に復元されます。

注意

詳細については、「データベースの全体復元の実行 (単純復旧モデル)」または「段階的な部分復元の実行」を参照してください。

SQL Server のすべてのエディションでは、データベースがオフラインのときにファイル復元を実行できます ("オフライン ファイル復元")。SQL Server 2005 Standard、SQL Server 2005 Express Edition、および SQL Server 2005 Workgroup 以降のバージョンでは、オフライン復元のみがサポートされるため、プライマリ ファイル グループに対してファイル復元を実行するときは、必ずデータベースがオフラインになっている必要があります。SQL Server 2005 Enterprise Edition 以降のバージョンでは、データベースが既にオフラインであれば、オフライン復元が使用されます。

SQL Server 2005 Enterprise Edition 以降のバージョンでは、ファイル復元中にデータベースがオンラインであれば、データベースをオンラインにしたままファイル復元を実行できます。データベースがオンラインのときにファイルを復元および復旧することを、オンライン ファイル復元と呼びます。

これらのファイル復元のシナリオは次のとおりです。

  • オフライン ファイル復元

    オフライン ファイル復元では、破損したファイルまたはファイル グループを復元する間、データベースはオフラインになります。データベースは、復元シーケンスの最後にオンラインになります。

  • オンライン ファイル復元

    SQL Server 2005 Enterprise Edition 以降のバージョンでは、データベースがオンラインのときは、ファイル復元は自動的にオンラインで実行されます。ただし、復元中のファイルが含まれているファイル グループはすべてオフラインです。オフライン ファイル グループ内のすべてのファイルが復旧されると、そのファイル グループは自動的にオンラインになります。オンライン復元の詳細については、「オンライン復元の実行」を参照してください。

    注意

    データベースがオンラインのときは、データベースのプライマリ ファイル グループとすべての読み取り/書き込みファイル グループがすべてオンラインになっています。クエリや更新の対象にできるのは、オンラインのファイル グループだけです。復元中または復旧中のファイルを含むファイル グループなど、オフラインのファイル グループにアクセスしようとすると、エラーが発生します。

ファイルまたはファイル グループの復元

ファイル復元のシナリオは、次に示すように、適切なデータをコピーし、ロールフォワードして、復旧する単一の復元シーケンスで構成されます。

破損したファイルをファイル バックアップとファイルの差分バックアップから復元するには

  1. 破損した各ファイルを最新のファイル バックアップから復元します。

  2. 復元されたファイルごとに最新のファイルの差分バックアップを復元し、データベースを復旧します。

ファイルおよびファイル グループを復元するには

高度なトピック

ファイル復元用の Transact-SQL 復元シーケンス (単純復旧モデル)

次の Transact-SQL コードは、ファイル復元シナリオの復元シーケンスでの重要な RESTORE オプションを示しています。説明の目的に関係しない構文や詳細は、省略しています。

この復元シーケンスでは、2 つの操作を行います。1 つ目の操作では、A というセカンダリ ファイルを復元します。このファイルは、with NORECOVERY を指定して復元されます。2 つ目の操作では、B と C という他の 2 つのファイルを復元します。これらのファイルは、with RECOVERY を使用して異なるバックアップ デバイスから復元します。

ファイル復元シーケンスは、次のとおりです。

RESTORE DATABASE <database> FILE = <name_of_file_A> 
   FROM <file_backup_of_file_A> 
   WITH NORECOVERY
RESTORE DATABASE <database> FILE=<name_of_file_B>, <name_of_file_C> 
   FROM <file_backup_of_files_B_and_C> 
   WITH RECOVERY

RESTORE DATABASE <database> FILE = <name_of_file_A> 
   FROM <file_backup_of_file_A> 
   WITH NORECOVERY
RESTORE DATABASE <database> FILE=<name_of_file_B>, <name_of_file_C> 
   FROM <file_backup_of_files_B_and_C> 
   WITH RECOVERY
注意

SQL Server 2005 Enterprise Edition を使用していて、ファイル復元のためにデータベースをオフラインにする場合は、ALTER DATABASE ステートメント (ALTER DATABASE <database_name> SET OFFLINE) を実行して復元シーケンスを開始する前に、データベースをオフラインにしてください。