データベースの全体復元 (単純復旧モデル)Complete Database Restores (Simple Recovery Model)

適用対象: ○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

データベースの全体復元の目的は、データベース全体を復元することです。In a complete database restore, the goal is to restore the whole database. 復元の実行中は、データベース全体がオフラインになります。The whole database is offline for the duration of the restore. データベースの各部がオンラインになる前に、すべてのデータが一貫性のある状態に復旧されます。一貫性のある状態とは、データベースのすべての部分が同じ時点にあり、コミットされていないトランザクションが存在しない状態を示します。Before any part of the database can come online, all data is recovered to a consistent point in which all parts of the database are at the same point in time and no uncommitted transactions exist.

単純復旧モデルでは、特定のバックアップ内にある特定の時点にデータベースを復元することはできません。Under the simple recovery model, the database cannot be restored to a specific point in time within a specific backup.

重要

不明なソースや信頼されていないソースからデータベースをアタッチまたは復元しないことをお勧めします。We recommend that you do not attach or restore databases from unknown or untrusted sources. そのようなデータベースには、意図しない Transact-SQLTransact-SQL コードを実行したり、スキーマまたは物理データベース構造を変更することによりエラーを発生させる悪意のあるコードが含まれている可能性があります。These databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. 不明または信頼できないソースのデータベースを使用する前に、運用サーバー以外のサーバーでそのデータベースに対し DBCC CHECKDB を実行し、さらに、そのデータベースのストアド プロシージャやその他のユーザー定義コードなどのコードを調べます。Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database.

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

注意

以前のバージョンの 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).

単純復旧モデルでのデータベース復元の概要Overview of Database Restore Under the Simple Recovery Model

単純復旧モデルでのデータベース全体の復元は、データベースの差分バックアップを復元する必要があるかどうかに応じて 1 つまたは 2 つの RESTORE ステートメントで行われます。A full database restore under the simple recovery model involves one or two RESTORE statements, depending on whether you want to restore a differential database backup. 次の図に示すように、データベースの完全バックアップのみを使用する場合は、最新のバックアップを復元するだけで完了します。If you are using only a full database backup, just restore the most recent backup, as shown in the following illustration.

データベースの完全バックアップのみを復元Restoring only a full database backup

データベースの差分バックアップも使用する場合は、データベースを復旧しないで最新の完全バックアップを復元してから、最新の差分バックアップを復元してデータベースを復旧します。If you are also using a differential database backup, restore the most recent full database backup without recovering the database, and then restore the most recent differential database backup and recover the database. 次の図に、このプロセスを示します。The following illustration shows this process.

データベース全体と差分バックアップを復元Restoring full and differential database backups

注意

データベースのバックアップを別のサーバー インスタンスに復元する予定の場合は、「 バックアップと復元によるデータベースのコピー」を参照してください。If you plan to restore a database backup onto a different server instance, see Copy Databases with Backup and Restore.

基本的な Transact-SQL RESTORE 構文Basic Transact-SQL RESTORE Syntax

データベースの完全バックアップを復元する際に使用する、 Transact-SQLTransact-SQLRESTORE の基本構文を次に示します。The basic Transact-SQLTransact-SQLRESTORE syntax for restoring a full database backup is:

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

注意

データベースの差分バックアップも復元する場合は、WITH NORECOVERY を指定してください。Use WITH NORECOVERY if you plan to also restore a differential database backup.

データベース バックアップを復元する際に使用する、 RESTORE の基本構文を次に示します。The basic RESTORE syntax for restoring a database backup is:

RESTORE DATABASE database_name FROM backup_device WITH RECOVERYRESTORE DATABASE database_name FROM backup_device WITH RECOVERY

例 (Transact-SQL)Example (Transact-SQL)

次の例では、まず BACKUP ステートメントを使用して、 AdventureWorks2012AdventureWorks2012 データベースの完全バックアップと差分バックアップを作成します。The following example first shows how to use the BACKUP statement to create a full database backup and a differential database backup of the AdventureWorks2012AdventureWorks2012 database. その後、これらのバックアップを順に復元します。The example then restores these backups in sequence. データベースは、差分データベース バックアップ完了時の状態に復元されます。The database is restored to its state as of the time that the differential database backup finished.

この例は、データベースの全体復元シナリオの復元シーケンスで重要なオプションを示しています。The example shows the critical options in a restore sequence for the complete database restore scenario. 復元シーケンス は、1 つ以上の復元フェーズによってデータを移動する、1 つ以上の復元操作で構成されます。A restore sequence consists of one or more restore operations that move data through one or more of the phases of restore. 説明の目的に関係しない構文や詳細は、省略しています。Syntax and details that are not relevant to this purpose are omitted. データベースを復旧する際は、RECOVERY オプションを明示的に指定することをお勧めします。このオプションは既定値ですが、指定しておくと判別がつきやすくなります。When you recover a database, we recommend explicitly specifying the RECOVERY option for clarity, even though it is the default.

注意

この例の先頭では、 ALTER DATABASE ステートメントを使用して復旧モデルを SIMPLEに設定しています。The example starts with an ALTER DATABASE statement that sets the recovery model to SIMPLE.

USE master;  
--Make sure the database is using the simple recovery model.  
ALTER DATABASE AdventureWorks2012 SET RECOVERY SIMPLE;  
GO  
-- Back up the full AdventureWorks2012 database.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
  WITH FORMAT;  
GO  
--Create a differential database backup.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'  
   WITH DIFFERENTIAL;  
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=1, NORECOVERY;  
--Restore the differential backup (from backup set 2).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=2, RECOVERY;  
GO  

関連タスクRelated Tasks

データベースの完全バックアップを復元するにはTo restore a full database backup

データベースの差分バックアップを復元するにはTo restore a differential database backup

SQL Server 管理オブジェクト (SMO) を使用してバックアップを復元するにはTo restore a backup by using SQL Server Management Objects (SMO)

参照See Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL) sp_addumpdevice (Transact-SQL)
データベースの完全バックアップ (SQL Server) Full Database Backups (SQL Server)
差分バックアップ (SQL Server) Differential Backups (SQL Server)
バックアップの概要 (SQL Server) Backup Overview (SQL Server)
復元と復旧の概要 (SQL Server)Restore and Recovery Overview (SQL Server)