適用対象:SQL Server
データベースの全体復元の目的は、データベース全体を復元することです。 復元の実行中は、データベース全体がオフラインになります。 データベースの各部がオンラインになる前に、すべてのデータが一貫性のある状態に復旧されます。一貫性のある状態とは、データベースのすべての部分が同じ時点にあり、コミットされていないトランザクションが存在しない状態を示します。
単純復旧モデルでは、特定のバックアップ内にある特定の時点にデータベースを復元することはできません。
重要
不明なソースや信頼されていないソースからのデータベースのアタッチまたは復元は実行しないことをお勧めします。 このようなデータベースには、意図しない Transact-SQL コードを実行したり、スキーマまたは物理データベース構造を変更してエラーを発生させるような、悪意のあるコードが含まれている可能性があります。 不明または信頼できないソースのデータベースを使用する前に、運用サーバー以外のサーバーでそのデータベースに対し DBCC CHECKDB を実行し、さらに、そのデータベースのストアド プロシージャやその他のユーザー定義コードなどのコードを調べます。
このトピックの内容:
注
以前のバージョンのSQL Serverからのバックアップのサポートについては、RESTORE (Transact-SQL) の「互換性サポート」セクションを参照してください。
単純復旧モデルでのデータベース復元の概要
単純復旧モデルでのデータベースの完全復元には、データベースの差分バックアップを復元するかどうかに応じて、1 つまたは 2 つの RESTORE ステートメントが含まれます。 次の図に示すように、データベースの完全バックアップのみを使用する場合は、最新のバックアップを復元するだけで完了します。
データベースの差分バックアップも使用する場合は、データベースを復旧しないで最新の完全バックアップを復元してから、最新の差分バックアップを復元してデータベースを復旧します。 次に、このプロセスの図を示します。
注
データベースのバックアップを別のサーバー インスタンスに復元する予定の場合は、「 バックアップと復元によるデータベースのコピー」を参照してください。
基本的な Transact-SQL RESTORE 構文
データベースの完全バックアップを復元するための基本的なTransact-SQLRESTORE構文は次のとおりです。
RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]
注
データベースの差分バックアップも復元する場合は、WITH NORECOVERY を指定してください。
データベース バックアップを復元するための基本的な RESTORE 構文は次のとおりです。
RESTORE DATABASE database_name FROM backup_device WITH RECOVERY
例 (Transact-SQL)
次の例では、最初に BACKUP ステートメントを使用して、 AdventureWorks2025 データベースの完全なデータベース バックアップとデータベースの差分バックアップを作成する方法を示します。 その後、これらのバックアップを順に復元します。 データベースは、差分データベース バックアップ完了時の状態に復元されます。
この例は、データベースの全体復元シナリオの復元シーケンスで重要なオプションを示しています。 復元シーケンス は、1 つ以上の復元フェーズによってデータを移動する、1 つ以上の復元操作で構成されます。 説明の目的に関係しない構文や詳細は、省略しています。 データベースを復旧する際は、RECOVERY オプションを明示的に指定することをお勧めします。このオプションは既定値ですが、指定しておくと判別がつきやすくなります。
注
この例では、復旧モデルをALTER DATABASEに設定する SIMPLE ステートメントから始まります。
USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks2022 SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks2022 database.
BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE=2, RECOVERY;
GO
関連タスク
データベースの完全バックアップを復元するには
データベースの差分バックアップを復元するには
SQL Server 管理オブジェクト (SMO) を使用してバックアップを復元するには
参照
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL)
データベースの完全バックアップ (SQL Server)
差分バックアップ (SQL Server)
バックアップの概要 (SQL Server)
復元と復旧の概要 (SQL Server)