復元と復旧の概要 (SQL Server)Restore and Recovery Overview (SQL Server)

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server データベースをエラーから復旧するには、データベース管理者が論理的に正しく意味のある復元シーケンスで一連の SQL ServerSQL Server バックアップを復元する必要があります。To recover a SQL ServerSQL Server database from a failure, a database administrator has to restore a set of SQL ServerSQL Server backups in a logically correct and meaningful restore sequence. SQL ServerSQL Server の復元および復旧では、次に示すように、データベース全体、データ ファイル、またはデータ ページの各バックアップからのデータの復元をサポートしています。restore and recovery supports restoring data from backups of a whole database, a data file, or a data page, as follows:

  • データベース ( データベースの全体復元)The database (a complete database restore)

    データベース全体を復元および復旧します。復元および復旧の操作中は、データベースはオフラインになります。The whole database is restored and recovered, and the database is offline for the duration of the restore and recovery operations.

  • データ ファイル ( ファイル復元)The data file (a file restore)

    データ ファイルまたはファイルのセットを復元および復旧します。A data file or a set of files is restored and recovered. ファイル復元中は、ファイルを含むファイル グループが自動的にオフラインになります。During a file restore, the filegroups that contain the files are automatically offline for the duration of the restore. オフラインのファイル グループにアクセスするとエラーが発生します。Any attempt to access an offline filegroup causes an error.

  • データ ページ ( ページ復元)The data page (a page restore)

    完全復旧モデルまたは一括ログ復旧モデルでは、個々のデータベースを復元できます。Under the full recovery model or bulk-logged recovery model, you can restore individual databases. ページ復元は、ファイル グループの数に関係なく、どのデータベースでも実行できます。Page restores can be performed on any database, regardless of the number of filegroups.

SQL ServerSQL Server のバックアップと復元は、サポートされるすべてのオペレーティング システムで機能します。backup and restore work across all supported operating systems. サポートされているオペレーティング システムについては、「 SQL Server 2016 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。For information about the supported operating systems, see Hardware and Software Requirements for Installing SQL Server 2016. 以前のバージョンの SQL ServerSQL Serverからのバックアップに対するサポートの情報については、「 RESTORE (Transact-SQL)」の「互換性サポート」のセクションを参照してください。For information about support for backups from earlier versions of SQL ServerSQL Server, see the "Compatibility Support" section of RESTORE (Transact-SQL).

このトピックの内容In this Topic:

復元シナリオの概要Overview of Restore Scenarios

復元シナリオ SQL ServerSQL Server とは、1 つ以上のバックアップからデータを復元した後にデータベースを復旧するプロセスです。A restore scenario in SQL ServerSQL Server is the process of restoring data from one or more backups and then recovering the database. サポートされている復元シナリオは、データベースの復旧モデルおよび SQL ServerSQL Serverのエディションによって異なります。The supported restore scenarios depend on the recovery model of the database and the edition of SQL ServerSQL Server.

次の表では、さまざまな復旧モデルでサポートされている復元シナリオについて説明しています。The following table introduces the possible restore scenarios that are supported for different recovery models.

Restore scenario 単純復旧モデルの場合Under simple recovery model 完全/一括ログ復旧モデルの場合Under full/bulk-logged recovery models
データベースの全体復元Complete database restore 基本的な復元ストラテジです。This is the basic restore strategy. データベースの全体復元では、データベースの完全バックアップを復元し復旧するだけになる場合があります。A complete database restore might involve simply restoring and recovering a full database backup. また、データベースの完全バックアップを復元した後で差分バックアップを復元し復旧する場合もあります。Alternatively, a complete database restore might involve restoring a full database backup followed by restoring and recovering a differential backup.

詳細については、「データベースの全体復元 (単純復旧モデル)」を参照してください。For more information, see Complete Database Restores (Simple Recovery Model).
基本的な復元ストラテジです。This is the basic restore strategy. データベースの全体復元を行うには、データベースの完全バックアップと差分バックアップ (存在する場合) を復元し、その後で後続のすべてのログ バックアップを順番に復元する必要があります。差分バックアップの復元は省略できます。A complete database restore involve restoring a full database backup and, optionally, a differential backup (if any), followed by restoring all subsequent log backups (in sequence). データベースの全体復元を完了するには、最新のログ バックアップを復旧して、さらにそれを復元します (RESTORE WITH RECOVERY)。The complete database restore is finished by recovering the last log backup and also restoring it (RESTORE WITH RECOVERY).

詳細については、「データベースの全体復元 (完全復旧モデル)」を参照してください。For more information, see Complete Database Restores (Full Recovery Model)
File restore *File restore * データベース全体を復元することなく、破損した 1 つ以上の読み取り専用ファイルを復元します。Restore one or more damaged read-only files, without restoring the entire database. ファイル復元は、データベースに読み取り専用のファイル グループが少なくとも 1 つ含まれている場合だけ使用できます。File restore is available only if the database has at least one read-only filegroup. データベース全体を復元することなく、1 つ以上のファイルを復元します。Restores one or more files, without restoring the entire database. ファイル復元は、データベースがオフラインのときに実行できますが、 SQL ServerSQL Serverのエディションによってはオンラインのままでも実行できます。File restore can be performed while the database is offline or, for some editions of SQL ServerSQL Server, while the database remains online. ファイル復元の間、復元対象のファイルを含むファイル グループは常にオフラインです。During a file restore, the filegroups that contain the files that are being restored are always offline.
ページ復元Page restore 適用なしNot applicable 破損した 1 つ以上のページを復元します。Restores one or more damaged pages. ページ復元は、データベースがオフラインのときに実行できますが、 SQL ServerSQL Serverのエディションによってはオンラインのままでも実行できます。Page restore can be performed while the database is offline or, for some editions of SQL ServerSQL Server, while the database remains online. ページ復元の間、復元対象のページは常にオフラインです。During a page restore, the pages that are being restored are always offline.

現在のログ ファイルまで、ログ バックアップのチェーンが途切れていないことが必要です。ページを現在のログ ファイルまでの最新状態にするためには、それまでのログ バックアップをすべて適用する必要があります。An unbroken chain of log backups must be available, up to the current log file, and they must all be applied to bring the page up to date with the current log file.

詳細については、「ページ復元 (SQL Server)」を参照してください。For more information, see Restore Pages (SQL Server).
段階的な部分復元 *Piecemeal restore * データベースをファイル グループ レベルで段階的に復元および復旧します。プライマリ ファイル グループとすべての読み書き可能セカンダリ ファイル グループの復元から行います。Restore and recover the database in stages at the filegroup level, starting with the primary and all read/write, secondary filegroups. データベースをファイル グループ レベルでプライマリ ファイル グループから段階的に復元および復旧します。Restore and recover the database in stages at the filegroup level, starting with the primary filegroup.

* オンライン復元は、Enterprise Edition でのみサポートされます。* Online restore is supported only in the Enterprise edition.

SQL Server データベース エンジンSQL Server Database Engine では、データの復元方法に関係なく、データベース全体の論理的な一貫性が確保されないと、データベースを復旧できません。Regardless of how data is restored, before a database can be recovered, the SQL Server データベース エンジンSQL Server Database Engine guarantees that the whole database is logically consistent. たとえば、ファイルを復元する場合、データベースとの一貫性を維持できるように十分なロールフォワードを行うまでは、ファイルを復旧してオンラインにすることはできません。For example, if you restore a file, you cannot recover it and bring it online until it has been rolled far enough forward to be consistent with the database.

ファイルまたはページを復元する利点Advantages of a File or Page Restore

データベース全体ではなく、ファイルやページを復元して復旧すると、次のような利点があります。Restoring and recovering files or pages, instead of the whole database, provides the following advantages:

  • 復元するデータが少ないので、コピーと復旧にかかる時間が短縮されます。Restoring less data reduces the time required to copy and recover it.

  • SQL ServerSQL Server では、ファイルまたはページを復元する場合、復元操作中にデータベース内の他のデータをオンラインのままにすることができます。On SQL ServerSQL Server restoring files or pages might allow other data in the database to remain online during the restore operation.

復旧モデルとサポートされる復元操作Recovery Models and Supported Restore Operations

データベースで使用できる復元操作は、そのデータベースの復旧モデルによって決まります。The restore operations that are available for a database depend on its recovery model. 次の表では、特定の復元シナリオごとに、各復旧モデルによりサポートされるかどうかと、どの程度までサポートされるかを示します。The following table summarizes whether and to what extent each of the recovery models supports a given restore scenario.

復元操作Restore operation 完全復旧モデルFull recovery model 一括ログ復旧モデルBulk-logged recovery model 単純復旧モデルSimple recovery model
データの復旧Data recovery 完全な復旧 (ログが使用可能な場合)。Complete recovery (if the log is available). 一部データ損失の可能性。Some data-loss exposure. 最新の完全バックアップまたは差分バックアップ以降のデータが損失。Any data since last full or differential backup is lost.
特定の時点での復元Point-in-time restore ログ バックアップに含まれる任意の時点。Any time covered by the log backups. ログ バックアップに一括ログ記録された変更が含まれている場合は不可。Disallowed if the log backup contains any bulk-logged changes. サポートされていません。Not supported.
File restore *File restore * 完全にサポートされます。Full support. 場合によりサポートされます。 **Sometimes.** 読み取り専用セカンダリ ファイルの場合のみ使用可能です。Available only for read-only secondary files.
Page restore *Page restore * 完全にサポートされます。Full support. 場合によりサポートされます。 **Sometimes.** [なし] :None.
段階的な (ファイル グループ レベルの) 部分復元 *Piecemeal (filegroup-level) restore * 完全にサポートされます。Full support. 場合によりサポートされます。 **Sometimes.** 読み取り専用セカンダリ ファイルの場合のみ使用可能です。Available only for read-only secondary files.

* の Enterprise Edition でのみ使用できます。 SQL ServerSQL Server* Available only in the Enterprise edition of SQL ServerSQL Server

** 必要な条件については、このトピックの「 単純復旧モデルの復元に関する制限事項」を参照してください。** For the required conditions, see Restore Restrictions Under the Simple Recovery Model, later in this topic.

重要

データベースの復旧モデルにかかわらず、 SQL ServerSQL Server バックアップは、バックアップを作成したバージョンより古いバージョンの SQL ServerSQL Server では復元できません。Regardless of the recovery model of a database, a SQL ServerSQL Server backup cannot be restored by a version of SQL ServerSQL Server that is older than the version that created the backup.

単純復旧モデルでの復元シナリオRestore Scenarios Under the Simple Recovery Model

単純復旧モデルの復元操作には次の制限があります。The simple recovery model imposes the following restrictions on restore operations:

これらの制限事項のいずれかが復旧要件に適合しない場合は、完全復旧モデルの使用を検討することをお勧めします。If any of these restrictions are inappropriate for your recovery needs, we recommend that you consider using the full recovery model. 詳細については、「 バックアップの概要 (SQL Server)」を参照してください。For more information, see Backup Overview (SQL Server).

重要

データベースの復旧モデルにかかわらず、 SQL ServerSQL Server バックアップは、バックアップを作成したバージョンより古いバージョンの SQL ServerSQL Server では復元できません。Regardless of the recovery model of a database, a SQL ServerSQL Server backup cannot be restored by a version of SQL ServerSQL Server that is older than the version that created the backup.

一括ログ復旧モデルを使用した復元Restore Under the Bulk-Logged Recovery Model

このセクションでは、一括ログ復旧モデルを使用した復元の考慮事項について説明します。一括ログ復旧モデルは、完全復旧モデルの補完のみを目的としたモデルです。This section discusses restore considerations that are unique to bulk-logged recovery model, which is intended exclusively as a supplement to the full recovery model.

注意

一括ログ復旧モデルの概要については、「トランザクション ログ (SQL Server)」を参照してください。For an introduction to the bulk-logged recovery model, see The Transaction Log (SQL Server).

全般的には、一括ログ復旧モデルは完全復旧モデルに似ており、完全復旧モデルで説明されている情報はどちらにも適用されます。Generally, the bulk-logged recovery model is similar to the full recovery model, and the information described for the full recovery model also applies to both. ただし、特定の時点への復旧とオンライン復元は、一括ログ復旧モデルの影響を受けます。However, point-in-time recovery and online restore are affected by the bulk-logged recovery model.

特定の時点への復旧に関する制限Restrictions for Point-in-time Recovery

一括ログ復旧モデルで作成されたログ バックアップに一括ログ記録された変更が含まれている場合、特定の時点への復旧は実行できません。If a log backup taken under the bulk-logged recovery model contains bulk-logged changes, point-in-time recovery is not allowed. 一括変更を含むログ バックアップに対して特定の時点への復旧を実行しようとすると、復元操作が失敗します。Trying to perform point-in-time recovery on a log backup that contains bulk changes will cause the restore operation to fail.

オンライン復元に関する制限Restrictions for Online Restore

オンライン復元シーケンスは、次の条件を満たしている場合のみ実行できます。An online restore sequence works only if the following conditions are met:

  • 復元シーケンスを開始する前に、必要なログ バックアップがすべて作成されていること。All required log backups must have been taken before the restore sequence starts.

  • オンライン復元シーケンスを開始する前に、一括変更のバックアップが作成されていること。Bulk changes must be backed before starting the online restore sequence.

  • データベースに一括変更が存在する場合、すべてのファイルがオンラインであるか、機能していないことIf bulk changes exist in the database, all files must be either online ordefunct. (つまり、このデータベースの一部ではなくなっていること)。(This means that it is no longer part of the database.)

上記の条件を満たしていない場合、オンライン復元シーケンスは失敗します。If these conditions are not met, the online restore sequence fails.

注意

オンライン復元を開始する前に、完全復旧モデルに切り替えることをお勧めします。We recommend switching to the full recovery model before starting an online restore. 詳細については、「復旧モデル (SQL Server)」を参照してください。For more information, see Recovery Models (SQL Server).

オンライン復元の実行方法の詳細については、「オンライン復元 (SQL Server)」を参照してください。For information about how to perform an online restore, see Online Restore (SQL Server).

データベース復旧アドバイザー (SQL Server Management Studio)Database Recovery Advisor (SQL Server Management Studio)

データベース復旧アドバイザーにより、最適な復元シーケンスを実装する復元プランを容易に構築できるようになります。The Database Recovery Advisor facilitates constructing restore plans that implement optimal correct restore sequences. お客様からご要望のあった、データベース復元に関するさまざまな既知の問題の解決や機能強化が実施されました。Many known database restore issues and enhancements requested by customers have been addressed. データベース復旧アドバイザーによって導入された主な機能強化は次のとおりです。Major enhancements introduced by the Database Recovery Advisor include the following:

  • 復元プラン アルゴリズム: 特に、複雑な復元シナリオの復元プランの構築に使用されるアルゴリズムが大幅に改善されました。Restore-plan algorithm: The algorithm used to construct restore plans has improved significantly, particularly for complex restore scenarios. 特定の時点への復元時の分岐シナリオなど、多数のエッジ ケースが以前のバージョンの SQL ServerSQL Serverよりも効率的に処理されます。Many edge cases, including forking scenarios in point-in-time restores, are handled more efficiently than in previous versions of SQL ServerSQL Server.

  • 特定の時点への復元: データベース復旧アドバイザーにより、特定の時点へのデータベースの復元が大幅に簡素化されます。Point-in-time restores: The Database Recovery Advisor greatly simplifies restoring a database to a given point in time. バックアップの視覚的タイムラインにより、特定の時点への復元のサポートが大幅に強化されています。A visual backup timeline significantly enhances support for point-in-time restores. この視覚的タイムラインにより、データベースを復元する際の目的の復旧ポイントとして適切な時点を特定できます。This visual timeline allows you to identify a feasible point in time as the target recovery point for restoring a database. タイムラインにより、分岐した復旧パス (複数の復旧分岐にまたがるパス) をたどることが容易になります。The timeline facilitates traversing a forked recovery path (a path that spans recovery forks). 特定の時点への復元プランには、目的の時点 (日時) への復元に関連するバックアップが自動的に含まれます。A given point-in-time restore plan automatically includes the backups that are relevant to the restoring to your target point in time (date and time). 詳細については、「SQL Server データベースを特定の時点に復元する (完全復旧モデル)」を参照してください。For more information, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

データベース復旧アドバイザーの詳細については、 SQL ServerSQL Server Manageability の次のブログを参照してください。For more information, see about the Database Recovery Advisor, see the following SQL ServerSQL Server Manageability blogs:

高速データベース復旧Accelerated database recovery

SQL Server 2019 プレビュー CTP 2.3 では、オンプレミスの SQL Server 用に高速データベース復旧が導入されました。SQL Server 2019 preview CTP 2.3 introduces Accelerated database recovery for SQL Server on-premises. 高速データベース復旧では、SQL Server データベース エンジンの復旧プロセスの再設計により、データベースの可用性が大幅に向上します (実行時間の長いトランザクションが存在する場合は特に)。Accelerated database recovery greatly improves database availability, especially in the presence of long running transactions, by redesigning the SQL Server database engine recovery process. データベース復旧とは、トランザクション的に一貫した (クリーンな) 状態で各データベースを開始させるために SQL Server で使用されるプロセスです。Database recovery is the process SQL Server uses for each database to start at a transactionally consistent - or clean - state. 高速データベース復旧が有効なデータベースでは、フェールオーバーまたは他のクリーンではないシャットダウンの後の復旧が、非常に速く完了します。A database, with accelerated database recovery enabled, completes recovery significantly faster after a fail over or other non-clean shutdown.

SQL Server 2019SQL Server 2019 CTP 2.3 以降では、次の構文を使用してデータベースごとに高速データベース復旧を有効にできます。You can enable accelerated database recovery per-database on SQL Server 2019SQL Server 2019 CTP 2.3 or later using the following syntax:

ALTER DATABASE <db_name> SET ACCELERATED_DATABASE_RECOVERY = {ON | OFF}

注意

Azure SQL DB では、この機能は既定で有効になるので、利用するためにこの構文を使用する必要はありません。This syntax is not required to take advantage of this feature in Azure SQL DB, where it is on by default.

大規模なトランザクションの多いクリティカルなデータベースがある場合は、プレビュー期間中にこの機能を試してください。If you have critical databases that are prone to large transactions, experiment with this feature during the preview. フィードバックをSQL ServerSQL Serverチームにお送りください。Provide feedback to SQL ServerSQL Server team.

関連コンテンツRelated Content

[なし] :None.

参照See Also

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