データベースの差分バックアップの復元 (SQL Server)Restore a Differential Database Backup (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 Server 2017SQL Server 2017SQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、データベースの差分バックアップを復元する方法について説明します。This topic describes how to restore a differential database backup in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

このトピックの内容In This Topic

作業を開始する準備Before You Begin

制限事項と制約事項Limitations and Restrictions

  • RESTORE は、明示的または暗黙的なトランザクションでは使用できません。RESTORE is not allowed in an explicit or implicit transaction.

  • SQL ServerSQL Server によって作成されたバックアップは、それより前のバージョンの SQL ServerSQL Serverでは復元できません。Backups that are created by more recent version of SQL ServerSQL Server cannot be restored in earlier versions of SQL ServerSQL Server.

  • SQL Server 2017SQL Server 2017では、 SQL Server 2005 (9.x)SQL Server 2005 (9.x) 以降のバージョンを使用して作成したデータベース バックアップからユーザー データベースを復元できます。In SQL Server 2017SQL Server 2017, you can restore a user database from a database backup that was created by using SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version.

前提条件Prerequisites

  • 完全復旧モデルまたは一括ログ復旧モデルを使用する場合は、データベースを復旧する前に、ログの末尾と呼ばれるアクティブ トランザクション ログをバックアップする必要があります。Under the full or bulk-logged recovery model, before you can restore a database, you must back up the active transaction log (known as the tail of the log). 詳細については、「トランザクション ログのバックアップ (SQL Server)」を参照してください。For more information, see Back Up a Transaction Log (SQL Server).

セキュリティSecurity

PermissionsPermissions

復元するデータベースが存在しない場合、ユーザーは RESTORE を実行できる CREATE DATABASE 権限を使用する必要があります。If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute RESTORE. データベースが存在する場合、既定では、RESTORE 権限は sysadmin 固定サーバー ロールおよび dbcreator 固定サーバー ロールのメンバーと、データベースの所有者 (dbo) に与えられています (FROM DATABASE_SNAPSHOT オプションを使用する場合、データベースは常に存在します)。If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

RESTORE 権限は、サーバーでメンバーシップ情報を常に確認できるロールに与えられます。RESTORE permissions are given to roles in which membership information is always readily available to the server. 固定データベース ロールのメンバーシップは、データベースがアクセス可能で破損していない場合にのみ確認することができますが、RESTORE の実行時にはデータベースがアクセス可能で損傷していないことが必ずしも保証されないため、 db_owner 固定データベース ロールのメンバーには RESTORE 権限は与えられません。Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

SQL Server Management Studio の使用Using SQL Server Management Studio

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

  1. MicrosoftMicrosoft SQL Server データベース エンジンSQL Server Database Engineの適切なインスタンスに接続後、オブジェクト エクスプローラーでサーバー名をクリックして、サーバー ツリーを展開します。After you connect to the appropriate instance of the MicrosoftMicrosoft SQL Server データベース エンジンSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. [データベース] を展開します。Expand Databases. 復元するデータベースに応じて、ユーザー データベースを選択するか、 [システム データベース] を展開してシステム データベースを選択します。Depending on the database, either select a user database or expand System Databases, and then select a system database.

  3. データベースを右クリックして [タスク] をポイントし、 [復元] をポイントして、 [データベース] をクリックします。Right-click the database, point to Tasks, point to Restore, and then click Database.

  4. [全般] ページの 復元元のセクションを使用して、復元するバックアップ セットの復元元ファイルと場所を指定します。On the General page, use the Source section to specify the source and location of the backup sets to restore. 以下のオプションの 1 つを選択します。Select one of the following options:

    • [データベース]Database

      復元するデータベースをドロップダウン リストから選択します。Select the database to restore from the drop-down list. このリストには、 msdb バックアップ履歴に従ってバックアップされたデータベースのみが含まれます。The list contains only databases that have been backed up according to the msdb backup history.

    注意

    別のサーバーで作成されたバックアップの場合、復元先のサーバーには指定されたデータベースのバックアップ履歴情報が存在しません。If the backup is taken from a different server, the destination server will not have the backup history information for the specified database. この場合、 [デバイス] をクリックして、復元するファイルまたはデバイスを手動で指定します。In this case, select Device to manually specify the file or device to restore.

    • [デバイス]Device

      参照ボタン ( [...] ) をクリックし、 [バックアップ デバイスの選択] ダイアログ ボックスを開きます。Click the browse (...) button to open the Select backup devices dialog box. [バックアップ メディアの種類] ボックスから、デバイスの種類を 1 つ選択します。In the Backup media type box, select one of the listed device types. [バックアップ メディア] ボックスにデバイスを追加するには、 [追加] をクリックします。To select one or more devices for the Backup media box, click Add.

      [バックアップ メディア] ボックスに目的のデバイスを追加したら、 [OK] をクリックして、 [全般] ページに戻ります。After you add the devices you want to the Backup media list box, click OK to return to the General page.

      [ソース: デバイス: データベース] リスト ボックスで、復元するデータベースの名前を選択します。In the Source: Device: Database list box, select the name of the database which should be restored.

      メモ この一覧は [デバイス] をクリックした場合にのみ使用できます。Note This list is only available when Device is selected. 選択されたデバイスにバックアップを持つデータベースのみが使用できるようになります。Only databases that have backups on the selected device will be available.

  5. 復元先のセクション[データベース] ボックスに、復元するデータベースの名前が自動的に表示されます。In the Destination section, the Database box is automatically populated with the name of the database to be restored. データベースの名前を変更するには、 [データベース] ボックスに新しい名前を入力します。To change the name of the database, enter the new name in the Database box.

    注意

    特定の時点で復元を停止するには、 [タイムライン] をクリックして、 [バックアップのタイムライン] ダイアログ ボックスにアクセスします。To stop the restore at a specific point in time, click Timeline to access the Backup Timeline dialog box. 特定の時点でデータベースの復元を停止する方法については、「SQL Server データベースを特定の時点に復元する (完全復旧モデル)」を参照してください。For help with stopping a database restore at a specific point in time, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

  6. [復元するバックアップ セット] グリッドで、差分バックアップを通じて復元するバックアップを選択します。In the Backup sets to restore grid, select the backups through the differential backup that you wish to restore.

    [復元するバックアップ セット] グリッドの列の詳細については、「データベースの復元 ([全般] ページ)」を参照してください。For information about the columns in the Backup sets to restore grid, see Restore Database (General Page).

  7. [オプション] ページの [復元オプション] パネルでは、状況に応じて、次の任意のオプションを選択できます。On the Options page, in the Restore options panel, you can select any of the following options, if appropriate for your situation:

    • [既存のデータベースを上書きする (WITH REPLACE)]Overwrite the existing database (WITH REPLACE)

    • [レプリケーションの設定を保存する (WITH KEEP_REPLICATION)]Preserve the replication settings (WITH KEEP_REPLICATION)

    • [各バックアップを復元する前に確認する]Prompt before restoring each backup

    • [復元するデータベースへのアクセスを制限する (WITH RESTRICTED_USER)]Restrict access to the restored database (WITH RESTRICTED_USER)

    これらのオプションの詳細については、「データベースの復元 ([オプション] ページ)」を参照してください。For more information about these options, see Restore Database (Options Page).

  8. [復旧状態] ボックスのオプションを選択します。Select an option for the Recovery state box. このボックスの選択内容により、復元操作後のデータベースの状態が決まります。This box determines the state of the database after the restore operation.

    • [RESTORE WITH RECOVERY] : コミットされていないトランザクションをロールバックして、データベースを使用可能な状態にします。これが既定の動作です。RESTORE WITH RECOVERY is the default behavior which leaves the database ready for use by rolling back the uncommitted transactions. 別のトランザクション ログは復元できません。Additional transaction logs cannot be restored. このオプションは、必要なバックアップをすべて復元する場合に選択します。Select this option if you are restoring all of the necessary backups now.

    • [RESTORE WITH NORECOVERY] : データベースは操作不可状態のままとなり、コミットされていないトランザクションはロールバックされません。RESTORE WITH NORECOVERY which leaves the database non-operational, and does not roll back the uncommitted transactions. 別のトランザクション ログは復元できますAdditional transaction logs can be restored. データベースは、復旧されるまで使用できません。The database cannot be used until it is recovered.

    • [RESTORE WITH STANDBY] : データベースを読み取り専用モードにします。RESTORE WITH STANDBY which leaves the database in read-only mode. コミットされていないトランザクションは元に戻されますが、復旧結果を元に戻せるように元に戻す操作をスタンバイ ファイルに保存します。It undoes uncommitted transactions, but saves the undo actions in a standby file so that recovery effects can be reverted.

    オプションの詳細については、「データベースの復元 ([オプション] ページ)」を参照してください。For descriptions of the options, see Restore Database (Options Page).

  9. データベースへのアクティブな接続がある場合、復元操作は失敗します。Restore operations will fail if there are active connections to the database. とデータベース間のすべてのアクティブな接続を閉じるには、 [既存の接続を閉じる] Management StudioManagement Studio オプションをオンにします。Check the Close existing connections option to ensure that all active connections between Management StudioManagement Studio and the database are closed.

  10. 復元操作と復元操作の間に、その都度、確認のメッセージを表示するには、 [各バックアップを復元する前に確認する] をオンにします。Select Prompt before restoring each backup if you wish to be prompted between each restore operation. 通常は、その必要はありません。データベースが大きく、復元操作のステータスを監視する必要がある場合にのみ使用します。This is not usually necessary unless the database is large and you wish to monitor the status of the restore operation.

  11. (省略可) データベースを新しい場所に復元するには、 [ファイル] ページを使用します。Optionally, use the Files page to restore the database to a new location. データベースの移動に関する詳細については、「データベースを新しい場所に復元する (SQL Server)」を参照してください。For help with moving a database, see Restore a Database to a New Location (SQL Server).

  12. [OK] をクリックします。Click OK.

Transact-SQL の使用Using Transact-SQL

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

  1. NORECOVERY 句を指定して RESTORE DATABASE ステートメントを実行し、データベースの差分バックアップの前に、データベースの完全バックアップを復元します。Execute the RESTORE DATABASE statement, specifying the NORECOVERY clause, to restore the full database backup that comes before the differential database backup. 詳細については、「ソフト NUMA を使用するように完全バックアップの復元に関するページを参照してください。For more information, see How to: Restore a Full Backup.

  2. RESTORE DATABASE ステートメントを実行して、データベースの差分バックアップを復元します。そのとき、以下を指定します。Execute the RESTORE DATABASE statement to restore the differential database backup, specifying:

    • データベースの差分バックアップを適用するデータベースの名前。The name of the database to which the differential database backup is applied.

    • データベースの差分バックアップの復元元であるバックアップ デバイス。The backup device where the differential database backup is restored from.

    • NORECOVERY 句。データベースの差分バックアップを復元した後、適用するトランザクション ログ バックアップがある場合に指定します。The NORECOVERY clause if you have transaction log backups to apply after the differential database backup is restored. それ以外の場合は、RECOVERY 句を指定します。Otherwise, specify the RECOVERY clause.

  3. 完全復旧モデルでも、一括ログ復旧モデルでも、データベースの差分バックアップの復元では、データベースの差分バックアップが完了した時点にデータベースが復元されます。With the full or bulk-logged recovery model, restoring a differential database backup restores the database to the point at which the differential database backup was completed. 障害の時点にさかのぼってデータベースを復旧するには、直前のデータベースの差分バックアップを作成した後に生成されたすべてのトランザクション ログ バックアップを適用する必要があります。To recover to the point of failure, you must apply all transaction log backups created after the last differential database backup was created. 詳細については、「トランザクション ログ バックアップの適用 (SQL Server)」を参照してください。For more information, see Apply Transaction Log Backups (SQL Server).

例 (Transact-SQL)Examples (Transact-SQL)

A.A. データベースの差分バックアップの復元Restoring a differential database backup

この例では、 MyAdvWorks データベースのデータベース バックアップおよびデータベースの差分バックアップを復元します。This example restores a database and differential database backup of the MyAdvWorks database.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B.B. データベース バックアップ、データベースの差分バックアップ、およびトランザクション ログ バックアップの復元Restoring a database, differential database, and transaction log backup

この例では、 MyAdvWorks データベースのデータベース バックアップ、データベースの差分バックアップ、およびトランザクション ログ バックアップを復元します。This example restores a database, differential database, and transaction log backup of the MyAdvWorks database.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

関連タスクRelated Tasks

参照See Also

差分バックアップ (SQL Server) Differential Backups (SQL Server)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)