RESTORE ステートメント (Transact-SQL)RESTORE Statements (Transact-SQL)

BACKUP コマンドで作成した SQL Database のバックアップを復元します。Restores SQL database backups taken using the BACKUP command.

お使いの特定バージョンの SQL の構文、引数、注釈、権限、例を表示するには、以下のいずれかのタブをクリックします。Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular SQL version with which you are working.

構文表記規則の詳細については、「Transact-SQL 構文表記規則」を参照してください。For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

製品をクリックしてくださいClick a product!

次の行から興味がある製品名をクリックしてみてください。In the following row, click whichever product name you are interested in. クリックした製品に合わせて、異なるコンテンツが表示されます。The click displays different content here, appropriate for whichever product you click:

* SQL Server *  * SQL Server *   SQL Database
マネージド インスタンス
SQL Database
managed instance
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

このコマンドを使用すると、次の復元シナリオを実行できます。This command enables you to perform the following restore scenarios:

  • 完全データベース バックアップからデータベース全体を復元する (完全復元)。Restore an entire database from a full database backup (a complete restore).
  • データベースの一部を復元する (部分復元)。Restore part of a database (a partial restore).
  • 特定のファイルまたはファイル グループをデータベースに復元する (ファイル復元)。Restore specific files or filegroups to a database (a file restore).
  • 特定のページをデータベースに復元する (ページ復元)。Restore specific pages to a database (a page restore).
  • トランザクション ログをデータベースに復元する (トランザクション ログ復元)。Restore a transaction log onto a database (a transaction log restore).
  • データベース スナップショットでキャプチャされた時点にデータベースを戻す。Revert a database to the point in time captured by a database snapshot.

SQL ServerSQL Server の復元シナリオの詳細については、復元と復旧の概要に関するページを参照してください。For more information about SQL ServerSQL Server restore scenarios, see Restore and Recovery Overview. 引数の説明の詳細については、RESTORE の引数に関するページを参照してください。For more information about descriptions of the arguments, see RESTORE Arguments. 別のインスタンスからデータベースを復元するときは、「 データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理 (SQL Server)」の情報を考慮してください。When restoring a database from another instance, consider the information from Manage Metadata When Making a Database Available on Another Server Instance (SQL Server).

注意

Microsoft Azure BLOB ストレージ サービスからの復元の詳細については、「Microsoft Azure BLOB ストレージ サービスを使用した SQL Server のバックアップと復元」を参照してください。For more information about restoring from the Microsoft Azure Blob storage service, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

構文Syntax

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
    [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <FILESTREAM_WITH_option>
   | , <service_broker_WITH options>
   | , \<point_in_time_WITH_options-RESTORE_DATABASE>
   } [ ,...n ]
 ]
[;]

--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
   <files_or_filegroups> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
      PARTIAL, NORECOVERY
      [  , <general_WITH_options> [ ,...n ]
       | , \<point_in_time_WITH_options-RESTORE_DATABASE>
      ] [ ,...n ]
[;]  

--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ]
[;]  

--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
   PAGE = 'file:page [ ,...n ]'
 [ , <file_or_filegroups> ] [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ]
   WITH
       NORECOVERY
      [ , <general_WITH_options> [ ,...n ] ]
[;]

--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
 [ <file_or_filegroup_or_pages> [ ,...n ] ]
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH
   {
     [ RECOVERY | NORECOVERY | STANDBY =
        {standby_file_name | @standby_file_name_var }
       ]
    | , <general_WITH_options> [ ,...n ]
    | , <replication_WITH_option>
    | , \<point_in_time_WITH_options-RESTORE_LOG>
   } [ ,...n ]
 ]
[;]

--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::=
{
   { logical_backup_device_name |
      @logical_backup_device_name_var }
 | { DISK
     | TAPE
     | URL
   } = { 'physical_backup_device_name' |
      @physical_backup_device_name_var }
}
Note: URL is the format used to specify the location and the file name for the Microsoft Azure Blob. Although Microsoft Azure storage is a service, the implementation is similar to disk and tape to allow for a consistent and seamless restore experience for all the three devices.
<files_or_filegroups>::=
{
   FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 | READ_WRITE_FILEGROUPS
}

<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
   MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
          [ ,...n ]
 | REPLACE
 | RESTART
 | RESTRICTED_USER | CREDENTIAL

--Backup Set Options
 | FILE = { backup_set_file_number | @backup_set_file_number }
 | PASSWORD = { password | @password_variable }

--Media Set Options
 | MEDIANAME = { media_name | @media_name_variable }
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
 | BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
 | { CHECKSUM | NO_CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Monitoring Options
 | STATS [ = percentage ]

--Tape Options.
 | { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
 | KEEP_REPLICATION

<change_data_capture_WITH_option>::=
 | KEEP_CDC

<FILESTREAM_WITH_option>::=
 | FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
 | ENABLE_BROKER
 | ERROR_BROKER_CONVERSATIONS
 | NEW_BROKER

\<point_in_time_WITH_options-RESTORE_DATABASE>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = 'lsn:lsn_number'
                 [ AFTER 'datetime']
   }

\<point_in_time_WITH_options-RESTORE_LOG>::=
 | {
   STOPAT = { 'datetime'| @datetime_var }
 | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
 | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
                 [ AFTER 'datetime']
   }

引数Arguments

引数の説明については、RESTORE の引数に関するページを参照してください。For descriptions of the arguments, see RESTORE Arguments.

復元シナリオについてAbout Restore Scenarios

SQL ServerSQL Server ではさまざまな復元シナリオがサポートされています。supports a variety of restore scenarios:

  • データベースの全体復元Complete database restore

    最初に完全データベース バックアップを行い、次に必要に応じて差分データベース バックアップ (およびログ バックアップ) の復元を行って、データベース全体を復元します。Restores the entire database, beginning with a full database backup, which may be followed by restoring a differential database backup (and log backups). 詳細については、データベースの全体復元 - 単純復旧モデルに関するページ、またはデータベースの全体復元 - 完全復旧モデルに関するページを参照してください。For more information, see Complete Database Restores - Simple Recovery Mode or Complete Database Restores - Full Recovery Model.

  • ファイル復元File restore

    マルチ ファイル グループ データベースのファイルまたはファイル グループを復元します。Restores a file or filegroup in a multi-filegroup database. 単純復旧モデルでは、ファイルは読み取り専用のファイル グループに属している必要があります。Note that under the simple recovery model, the file must belong to a read-only filegroup. 完全なファイル復元を行った後で、差分ファイル バックアップを復元できます。After a full file restore, a differential file backup can be restored. 詳細については、ファイル復元 - 完全復旧モデルに関するページ、およびファイル復元 - 単純復旧モデルに関するページを参照してください。For more information, see File Restores - Full Recovery Model and File Restores - Simple Recovery Model.

  • ページ復元Page restore

    個々のページを復元します。Restores individual pages. ページ復元は、完全復旧モデルと一括ログ復旧モデルでのみ利用できます。Page restore is available only under the full and bulk-logged recovery models. 詳細については、ページ復元 - SQL Server に関するページを参照してください。For more information, see Restore Pages - SQL Server.

  • 段階的な部分復元Piecemeal restore

    プライマリ ファイル グループと、1 つ以上のセカンダリ ファイル グループの復元から始めて、データベースを段階的に復元します。Restores the database in stages, beginning with the primary filegroup and one or more secondary filegroups. 段階的な部分復元の最初の段階では、RESTORE DATABASE を PARTIAL オプションで実行し、このとき、復元する 1 つ以上のセカンダリ ファイル グループを指定します。A piecemeal restore begins with a RESTORE DATABASE using the PARTIAL option and specifying one or more secondary filegroups to be restored. 詳細については、段階的な部分復元 - SQL Server に関するページを参照してください。For more information, see Piecemeal Restores - SQL Server.

  • 復旧のみRecovery only

    データベース内でデータの一貫性が保たれており、単にデータを使用可能にするだけの場合に行います。Recovers data that is already consistent with the database and needs only to be made available. 詳細については、データを復元しないデータベースの復旧に関するページを参照してください。For more information, see Recover a Database Without Restoring Data.

  • トランザクション ログの復元Transaction log restore.

    完全復旧モデルまたは一括ログ復旧モデルで、目的の復旧ポイントに戻すには、ログ バックアップの復元が必要です。Under the full or bulk-logged recovery model, restoring log backups is required to reach the desired recovery point. ログ バックアップの復元の詳細については、トランザクション ログ バックアップの適用 - SQL Server に関するページを参照してください。For more information about restoring log backups, see Apply Transaction Log Backups - SQL Server.

  • Always On 可用性グループのための可用性データベースの準備Prepare an availability database for an Always On availability group

    詳細については、 可用性グループに対するセカンダリ データベースの手動準備 - SQL Server に関するページを参照してください。For more information, see Manually Prepare a Secondary Database for an Availability Group - SQL Server.

  • データベース ミラーリングのためのミラー データベースの準備Prepare a mirror database for database mirroring

    詳細については、ミラーリングのためのミラー データベースの準備 - SQL Server に関するページを参照してください。For more information, see Prepare a Mirror Database for Mirroring - SQL Server.

  • オンライン復元Online Restore

    注意

    オンライン復元は、SQL ServerSQL Server の Enterprise Edition でのみ実行できます。Online restore is allowed only in Enterprise edition of SQL ServerSQL Server.

オンライン復元がサポートされている場合、データベースがオンラインになっていると、ファイル復元とページ復元は自動的にオンライン復元になり、段階的な部分復元の最初の段階の後で行われるセカンダリ ファイル グループの復元もオンライン復元になります。Where online restore is supported, if the database is online, file restores and page restores are automatically online restores and, also, restores of secondary filegroup after the initial stage of a piecemeal restore.

注意

オンライン復元には、遅延トランザクションを使用できます。Online restores can involve deferred transactions.

詳細については、オンライン復元に関するページを参照してください。For more information, see Online Restore.

RESTORE のオプションに関するその他の注意点Additional Considerations About RESTORE Options

廃止された RESTORE キーワードDiscontinued RESTORE Keywords

次のキーワードは、SQL Server 2008SQL Server 2008 では廃止されました。The following keywords were discontinued in SQL Server 2008SQL Server 2008:

廃止されたキーワードDiscontinued keyword 代替キーワードReplaced by... 代替キーワードの例Example of replacement keyword
LOADLOAD RESTORERESTORE RESTORE DATABASE
TRANSACTIONTRANSACTION LOGLOG RESTORE LOG
DBO_ONLYDBO_ONLY RESTRICTED_USERRESTRICTED_USER RESTORE DATABASE ... WITH RESTRICTED_USER

RESTORE LOGRESTORE LOG

RESTORE LOG でファイル一覧を含めて、ロールフォワード中にファイルを作成することができます。RESTORE LOG can include a file list to allow for creation of files during roll forward. この機能は、データベースへファイルを追加するときに書き込まれたログ レコードが、ログ バックアップに含まれている場合に使用します。This is used when the log backup contains log records written when a file was added to the database.

注意

データベースで完全な復旧モデルまたは一括ログ復旧モデルを使用しているときは、多くの場合、データベースの復元前にログ末尾のバックアップが必要になります。For a database using the full or bulk-logged recovery model, in most cases you must back up the tail of the log before restoring the database. RESTORE DATABASE ステートメントに WITH REPLACE 句または WITH STOPAT 句が指定されていない場合、最初にログ末尾のバックアップを行わずに、データベースを復元しようとするとエラーが発生します。これらの句は、データのバックアップ終了後の時間またはトランザクションの指定が必要となる句です。Restoring a database without first backing up the tail of the log results in an error, unless the RESTORE DATABASE statement contains either the WITH REPLACE or the WITH STOPAT clause, which must specify a time or transaction that occurred after the end of the data backup. ログ末尾のバックアップの詳細については、ログ末尾のバックアップに関するページを参照してください。For more information about tail-log backups, see Tail-Log Backups.

RECOVERY と NORECOVERY の比較Comparison of RECOVERY and NORECOVERY

ロールバックは、RESTORE ステートメントの RECOVERY および NORECOVERY オプションで制御されます。Roll back is controlled by the RESTORE statement through the [ RECOVERY | NORECOVERY ] options:

  • NORECOVERY では、ロールバックを実行しないことを指定します。NORECOVERY specifies that roll back not occur. こうすると、ロールフォワードしてそのままシーケンス内の次のステートメントを実行できます。This allows roll forward to continue with the next statement in the sequence.

    この場合、復元シーケンスでは他のバックアップを復元してそれらをロールフォワードできます。In this case, the restore sequence can restore other backups and roll them forward.

  • RECOVERY (既定) では、現在のバックアップのロールフォワードが完了した後ロールバックを実行するよう指定します。RECOVERY (the default) indicates that roll back should be performed after roll forward is completed for the current backup.

    データベースを復旧するには、復元されるデータセット全体 (ロールフォワード セット) とデータベースの間で一貫性が保たれている必要があります。Recovering the database requires that the entire set of data being restored (the roll forward set) is consistent with the database. ロールフォワード セットがデータベースと一貫性を保つことができる時点まで十分にロールフォワードされていない場合は、RECOVERY を指定すると、データベース エンジンDatabase Engineによってエラーが返されます。If the roll forward set has not been rolled forward far enough to be consistent with the database and RECOVERY is specified, the データベース エンジンDatabase Engine issues an error.

互換性サポートCompatibility Support

以前のバージョンの SQL ServerSQL Server を使用して作成された mastermodel、および msdb のバックアップを SQL Server 2017SQL Server 2017 で復元することはできません。Backups of master, model and msdb that were created by using an earlier version of SQL ServerSQL Server cannot be restored by SQL Server 2017SQL Server 2017.

注意

SQL ServerSQL Server バックアップを、そのバックアップが作成されたバージョン以前のバージョンの SQL ServerSQL Server に復元することはできません。No SQL ServerSQL Server backup be restored to an earlier version of SQL ServerSQL Server than the version on which the backup was created.

SQL ServerSQL Server の各バージョンでは、以前のバージョンとは異なる既定のパスが使用されます。Each version of SQL ServerSQL Server uses a different default path than earlier versions. そのため、以前のバージョンのバックアップが既定で保存されていた場所に作成されたデータベースを復元するには、MOVE オプションを使用する必要があります。Therefore, to restore a database that was created in the default location for earlier version backups, you must use the MOVE option. 新しい既定のパスについては、「SQL Server の既定のインスタンスおよび名前付きインスタンスのファイルの場所」を参照してください。For information about the new default path, see File Locations for Default and Named Instances of SQL Server.

以前のバージョンのデータベースを SQL Server 2017SQL Server 2017に復元すると、データベースが自動的にアップグレードされます。After you restore an earlier version database to SQL Server 2017SQL Server 2017, the database is automatically upgraded. 通常、データベースは直ちに使用可能になります。Typically, the database becomes available immediately. ただし、SQL Server 2005 (9.x)SQL Server 2005 (9.x) データベースにフルテキスト インデックスがある場合、アップグレード プロセスでは、upgrade_option サーバー プロパティの設定に応じて、インポート、リセット、または再構築が行われます。However, if a SQL Server 2005 (9.x)SQL Server 2005 (9.x) database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_option server property. アップグレード オプションがインポート (upgrade_option = 2) または再構築 (upgrade_option = 0) に設定されている場合、アップグレード中はフルテキスト インデックスを使用できなくなります。If the upgrade option is set to import (upgrade_option = 2) or rebuild (upgrade_option = 0), the full-text indexes will be unavailable during the upgrade. インデックスを作成するデータ量によって、インポートには数時間、再構築には最大でその 10 倍の時間がかかることがあります。Depending the amount of data being indexed, importing can take several hours, and rebuilding can take up to ten times longer. また、アップグレード オプションがインポートに設定されており、フルテキスト カタログが使用できない場合は、関連付けられたフルテキスト インデックスが再構築されます。Note also that when the upgrade option is set to import, the associated full-text indexes are rebuilt if a full-text catalog is not available. upgrade_option サーバー プロパティの設定を変更するには、 sp_fulltext_serviceを使用します。To change the setting of the upgrade_option server property, use sp_fulltext_service.

データベースが最初に SQL ServerSQL Serverの新しいインスタンスにアタッチまたは復元されるとき、データベース マスター キー (サービス マスター キーにより暗号化されたもの) のコピーはまだサーバーに格納されていません。When a database is first attached or restored to a new instance of SQL ServerSQL Server, a copy of the database master key (encrypted by the service master key) is not yet stored in the server. OPEN MASTER KEY を使用して、データベース マスター キー (DMK) を暗号化解除する必要があります。You must use the OPEN MASTER KEY statement to decrypt the database master key (DMK). DMK の暗号化が解除されると、 ALTER MASTER KEY REGENERATE ステートメントを使用して、サービス マスター キー (SMK) で暗号化された DMK のコピーをサーバーに提供することにより、将来、自動的に暗号化解除することも可能となります。Once the DMK has been decrypted, you have the option of enabling automatic decryption in the future by using the ALTER MASTER KEY REGENERATE statement to provision the server with a copy of the DMK, encrypted with the service master key (SMK). データベースを以前のバージョンからアップグレードした場合、新しい AES アルゴリズムを使用するように DMK を再作成する必要があります。When a database has been upgraded from an earlier version, the DMK should be regenerated to use the newer AES algorithm. DMK を再作成する方法の詳細については、ALTER MASTER KEY に関するページを参照してください。For more information about regenerating the DMK, see ALTER MASTER KEY. DMK キーを再作成して AES にアップグレードするのに必要な時間は、DMK によって保護されているオブジェクトの数によって異なります。The time required to regenerate the DMK key to upgrade to AES depends upon the number of objects protected by the DMK. DMK キーを再作成して AES にアップグレードする作業は、1 回限りで済み、今後のキー ローテーション方法には影響を与えません。Regenerating the DMK key to upgrade to AES is only necessary once, and has no impact on future regenerations as part of a key rotation strategy.

全般的な解説General Remarks

オフライン復元を実行しているときに、指定したデータベースが使用中の場合、RESTORE を実行してしばらくするとユーザーは強制的に切断されます。During an offline restore, if the specified database is in use, RESTORE forces the users off after a short delay. プライマリ ファイル グループ以外のオンライン復元では、復元するファイル グループがオフラインにならなければ、データベースの使用を続けることができます。For online restore of a non-primary filegroup, the database can stay in use except when the filegroup being restored is being taken offline. 指定したデータベース内のデータはすべて、復元されたデータに置き換えられます。Any data in the specified database is replaced by the restored data.

データベースの復旧の詳細については、復元と復旧の概要に関するページを参照してください。For more information about database recovery, see Restore and Recovery Overview.

1 つのプラットフォームから別のプラットフォームへの復元操作は、異なる種類のプロセッサ間でも、オペレーティング システムでデータベースの照合順序がサポートされていれば実行できます。Cross-platform restore operations, even between different processor types, can be performed as long as the collation of the database is supported by the operating system.

エラーが発生した場合は RESTORE を再開できます。RESTORE can be restarted after an error. また、エラーに関係なく RESTORE を続行することもできます。この場合は、復元可能なデータが復元されます (CONTINUE_AFTER_ERROR オプションを参照してください)。In addition, you can instruct RESTORE to continue despite errors, and it restores as much data as possible (see the CONTINUE_AFTER_ERROR option).

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

損傷した master データベースの復元は、特別な手順を使用して行われます。Restoring a damaged master database is performed using a special procedure. 詳細については、システム データベースのバックアップと復元に関するページを参照してください。For more information, see Back Up and Restore of System Databases.

データベースを復元すると、SQL ServerSQL Server のインスタンスのプラン キャッシュが消去されます。Restoring a database clears the plan cache for the instance of SQL ServerSQL Server. プラン キャッシュが消去されると、後続のすべての実行プランが再コンパイルされ、場合によっては、クエリ パフォーマンスが一時的に急激に低下します。Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. プラン キャッシュ内のキャッシュストアが消去されるたびに、"SQL ServerSQL Server は、一部のデータベース メンテナンス操作または再構成操作により、'%s' キャッシュストア (プラン キャッシュの一部) のキャッシュストア フラッシュを %d 個検出しました" という情報メッセージが SQL ServerSQL Server エラー ログに含まれます。For each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". このメッセージは、5 分以内にキャッシュがフラッシュされる限り、5 分間隔でログに記録されます。This message is logged every five minutes as long as the cache is flushed within that time interval.

可用性データベースを復元するには、SQL ServerSQL Server のインスタンスにデータベースを復元した後、そのデータベースを可用性グループに追加します。To restore an availability database, first restore the database to the instance of SQL ServerSQL Server, and then add the database to the availability group.

相互運用性Interoperability

データベースの設定と復元Database Settings and Restoring

復元を実行すると、ALTER DATABASE を使用して設定できるデータベース オプションの大半は、バックアップの終了時に有効となっていた値にリセットされます。During a restore, most of the database options that are settable using ALTER DATABASE are reset to the values in force at the time of the end of backup.

WITH RESTRICTED_USER オプションを使用すると、ユーザー アクセス オプションの設定の動作がオーバーライドされます。Using the WITH RESTRICTED_USER option, however, overrides this behavior for the user access option setting. ユーザー アクセス オプションの設定は、WITH RESTRICTED_USER オプションを含む RESTORE ステートメントの後で、常に設定されます。This setting is always set following a RESTORE statement, which includes the WITH RESTRICTED_USER option.

暗号化されたデータベースの復元Restoring an Encrypted Database

暗号化されたデータベースを復元するには、データベースの暗号化に使用された証明書または非対称キーにアクセスできることが必要です。To restore a database that is encrypted, you must have access to the certificate or asymmetric key that was used to encrypt the database. 証明書または非対称キーがないと、データベースは復元できません。Without the certificate or asymmetric key, the database cannot be restored. このため、バックアップが必要である間は、データベース暗号化キーの暗号化に使用する証明書を保持しておく必要があります。As a result, the certificate that is used to encrypt the database encryption key must be retained as long as the backup is needed. 詳細については、「 SQL Server Certificates and Asymmetric Keys」をご覧ください。For more information, see SQL Server Certificates and Asymmetric Keys.

vardecimal ストレージに対応したデータベースの復元Restoring a Database Enabled for vardecimal Storage

バックアップと復元は vardecimal ストレージ形式で正常に機能します。Backup and restore work correctly with the vardecimal storage format. vardecimal ストレージ形式の詳細については、sp_db_vardecimal_storage_format に関するページを参照してください。For more information about vardecimal storage format, see sp_db_vardecimal_storage_format.

フルテキスト データの復元Restore Full-Text Data

完全復元を実行すると、フルテキスト データは他のデータベース データと共に復元されます。Full-text data is restored together with other database data during a complete restore. 標準の RESTORE DATABASE database_name FROM backup_device 構文を使用すると、フルテキスト ファイルはデータベース ファイルの復元の一部として復元されます。Using the regular RESTORE DATABASE database_name FROM backup_device syntax, the full-text files are restored as part of the database file restore.

RESTORE ステートメントでは、フルテキスト データに対し、代替位置への復元、差分復元、ファイルとファイル グループの復元、ファイルとファイル グループの差分復元を行うこともできます。The RESTORE statement also can be used to perform restores to alternate locations, differential restores, file and filegroup restores, and differential file and filegroup restores of full-text data. また、RESTORE ではデータベース データと同様にフルテキスト ファイルだけを復元することもできます。In addition, RESTORE can restore full-text files only, as well as with database data.

注意

SQL Server 2005 (9.x)SQL Server 2005 (9.x) からインポートされたフルテキスト カタログもデータベース ファイルとして扱われます。Full-text catalogs imported from SQL Server 2005 (9.x)SQL Server 2005 (9.x) are still treated as database files. これらの場合は、フルテキスト カタログをバックアップするための SQL Server 2005 (9.x)SQL Server 2005 (9.x) の手順をそのまま適用できますが、バックアップ操作中の一時停止と再開は必要なくなります。For these, the SQL Server 2005 (9.x)SQL Server 2005 (9.x) procedure for backing up full-text catalogs remains applicable, except that pausing and resuming during the backup operation are no longer necessary. 詳細については、「フルテキスト カタログのバックアップと復元」を参照してください。For more information, see Backing Up and Restoring Full-Text Catalogs.

メタデータMetadata

SQL ServerSQL Server には、各サーバー インスタンスのバックアップおよび復元動作を追跡する、バックアップおよび復元の履歴テーブルが含まれています。includes backup and restore history tables that track the backup and restore activity for each server instance. 復元を実行すると、バックアップ履歴テーブルも変更されます。When a restore is performed, the backup history tables are also modified. これらのテーブルについては、バックアップの履歴とヘッダーの情報に関するページを参照してください。For information on these tables, see Backup History and Header Information.

REPLACE オプションによる影響REPLACE Option Impact

REPLACE は頻繁に使用すべきではありません。使用するのは十分に検討した後のみに限定してください。REPLACE should be used rarely and only after careful consideration. 通常、復元により、誤ってデータベースを別のデータベースで上書きしてしまうのを防ぐことができます。Restore normally prevents accidentally overwriting a database with a different database. RESTORE ステートメントで指定したデータベースが現在のサーバーに既に存在し、指定したデータベースのファミリ GUID がバックアップ セットに記録されているデータベースのファミリ GUID と異なる場合、そのデータベースは復元されません。If the database specified in a RESTORE statement already exists on the current server and the specified database family GUID differs from the database family GUID recorded in the backup set, the database is not restored. これは重要な保護機能です。This is an important safeguard.

REPLACE オプションは、通常は復元によって実行されるいくつかの重要な安全性チェックをオーバーライドします。The REPLACE option overrides several important safety checks that restore normally performs. オーバーライドされるチェックは次のとおりです。The overridden checks are as follows:

  • 別のデータベースから取得したバックアップで既存のデータベースに復元することに対するチェック。Restoring over an existing database with a backup taken of another database.

    REPLACE オプションを使用すると、バックアップ セットに含まれているどのデータベースでも既存のデータベースを上書きできます。このことは、指定したデータベース名がバックアップ セットに記録されているデータベース名と異なる場合でも当てはまります。With the REPLACE option, restore allows you to overwrite an existing database with whatever database is in the backup set, even if the specified database name differs from the database name recorded in the backup set. これにより、誤ってデータベースを別のデータベースで上書きしてしまう可能性があります。This can result in accidentally overwriting a database by a different database.

  • ログ末尾のバックアップを行っておらず、STOPAT オプションを使用しない場合に、完全復旧モデルまたは一括ログ復旧モデルを使用してデータベースに復元することに対するチェック。Restoring over a database using the full or bulk-logged recovery model where a tail-log backup has not been taken and the STOPAT option is not used.

    最近書き込まれたログをバックアップしていないので、REPLACE オプションを使用すると、コミットされた作業が失われる可能性があります。With the REPLACE option, you can lose committed work, because the log written most recently has not been backed up.

  • 既存のファイルを上書きすることに対するチェック。Overwriting existing files.

    たとえば、間違った種類のファイル (.xls ファイルなど) や、別のデータベースによって使用されているオンラインになっていないファイルを誤って上書きしてしまう場合があります。For example, a mistake could allow overwriting files of the wrong type, such as .xls files, or that are being used by another database that is not online. 復元されたデータベースが完全であっても、既存のファイルが上書きされた場合はデータが失われている可能性があります。Arbitrary data loss is possible if existing files are overwritten, although the restored database is complete.

復元の再実行Redoing a Restore

復元の結果を元に戻すことはできませんが、ファイル単位で最初からやり直して、データ コピーとロールフォワードの結果を取り消すことができます。Undoing the effects of a restore is not possible; however, you can negate the effects of the data copy and roll forward by starting over on a per-file basis. 最初からやり直すには、目的のファイルを復元してもう一度ロールフォワードを実行します。To start over, restore the desired file and perform the roll forward again. たとえば、間違って必要以上のログ バックアップを復元し、予定の停止ポイントを過ぎてしまった場合は、復元シーケンスを再開する必要があります。For example, if you accidentally restored too many log backups and overshot your intended stopping point, you would have to restart the sequence.

復元シーケンスは途中で中断でき、影響があったファイルの内容全体を復元することで再開できます。A restore sequence can be aborted and restarted by restoring the entire contents of the affected files.

データベースをデータベース スナップショットに戻すReverting a Database to a Database Snapshot

データベースを元に戻す操作 (DATABASE_SNAPSHOT オプションを使用して指定) では、ソース データベース全体をデータベース スナップショットの時点に戻します。つまり、指定したデータベース スナップショットの時点で保持されていたデータでソース データベースを上書きします。A revert database operation (specified using the DATABASE_SNAPSHOT option) takes a full source database back in time by reverting it to the time of a database snapshot, that is, overwriting the source database with data from the point in time maintained in the specified database snapshot. データベースを戻すスナップショットは、現時点で存在する唯一のスナップショットである必要があります。Only the snapshot to which you are reverting can currently exist. その後、この操作ではログが再構成されます (したがって、後でこのデータベースをユーザー エラーの時点にロールフォワードすることはできません)。The revert operation then rebuilds the log (therefore, you cannot later roll forward a reverted database to the point of user error).

失われるデータは、スナップショットの作成時点よりも後に行ったデータベースへの更新内容だけです。Data loss is confined to updates to the database since the snapshot's creation. この操作を行った後のデータベースのメタデータは、スナップショット作成時点のメタデータと同じになります。The metadata of a reverted database is the same as the metadata at the time of snapshot creation. ただし、スナップショットに戻すと、すべてのフルテキスト カタログが削除されます。However, reverting to a snapshot drops all the full-text catalogs.

データベース スナップショットに戻す操作はメディアの復旧を目的としたものではありません。Reverting from a database snapshot is not intended for media recovery. 標準的なバックアップ セットとは異なり、データベース スナップショットはデータベース ファイルの不完全なコピーです。Unlike a regular backup set, the database snapshot is an incomplete copy of the database files. データベースまたはデータベース スナップショットが壊れた場合、スナップショットに戻すことはほぼ不可能です。If either the database or the database snapshot is corrupted, reverting from a snapshot is likely to be impossible. 戻すことができても、データベースまたはデータベース スナップショットが壊れている場合は、問題が解決しない可能性が高くなります。Furthermore, even when possible, reverting in the event of corruption is unlikely to correct the problem.

元に戻す操作の制限Restrictions on Reverting

元に戻す操作は、次の状況ではサポートされません。Reverting is unsupported under the following conditions:

  • ソース データベースに読み取り専用のファイル グループまたは圧縮されたファイル グループがある。The source database contains any read-only or compressed filegroups.
  • スナップショットの作成時にオンラインだったファイルがオフラインとなっている。Any files are offline that were online when the snapshot was created.
  • 現在、複数のデータベース スナップショットが存在する。More than one snapshot of the database currently exists.

詳細については、「データベースをデータベース スナップショットに戻す」を参照してください。For more information, see Revert a Database to a Database Snapshot.

SecuritySecurity

バックアップ操作では、オプションで、メディア セットとバックアップ セットにそれぞれパスワードを設定できます。A backup operation may optionally specify passwords for a media set, a backup set, or both. メディア セットまたはバックアップ セットにパスワードが設定されている場合は、RESTORE ステートメントで正しいパスワードを指定する必要があります。When a password has been defined on a media set or backup set, you must specify the correct password or passwords in the RESTORE statement. これらのパスワードを設定しておくと、SQL ServerSQL Server ツールを使って不正に復元操作が行われたり、メディアにバックアップ セットが不正に追加されたりするのを防ぐことができます。These passwords prevent unauthorized restore operations and unauthorized appends of backup sets to media using SQL ServerSQL Server tools. ただし、パスワードで保護されたメディアは、BACKUP ステートメントの FORMAT オプションで上書きできます。However, password-protected media can be overwritten by the BACKUP statement's FORMAT option.

重要

パスワードによる保護は強力なものではありません。The protection provided by this password is weak. 権限の有無にかかわらず、ユーザーが SQL ServerSQL Server ツールを使用して不適切な復元を行わないようにすることを目的としています。It is intended to prevent an incorrect restore using SQL ServerSQL Server tools by authorized or unauthorized users. その他の手段によるバックアップ データの読み取りやパスワードの置き換えを防ぐわけではありません。It does not prevent the reading of the backup data by other means or the replacement of the password. この機能はメンテナンス モードであり、Microsoft SQL Server の将来のバージョンで削除される可能性があります。This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.バックアップ保護に最適な方法は、バックアップ テープを安全な場所に保管するか、バックアップしたディスク ファイルを適切なアクセス制御リスト (ACL) で保護することです。The best practice for protecting backups is to store backup tapes in a secure location or back up to disk files that are protected by adequate access control lists (ACLs). ACL は、バックアップを作成するディレクトリのルートに設定する必要があります。The ACLs should be set on the directory root under which backups are created.

注意

Microsoft Azure Blob Storage を使用した SQL Server のバックアップと復元に固有の情報については、「Microsoft Azure Blob ストレージ サービスを使用した SQL Server のバックアップと復元」を参照してください。For information specific to SQL Server backup and restore with the Microsoft Azure Blob storage, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

アクセス許可Permissions

復元するデータベースが存在しない場合、ユーザーは 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.

使用例Examples

次の例ではすべて、データベース全体のバックアップが既に実行されていることが前提です。All the examples assume that a full database backup has been performed.

RESTORE の例を次に示します。The RESTORE examples include the following:

注意

その他の例については、復元と復旧の概要に関するページにリストされている復元方法に関するトピックを参照してください。For additional examples, see the restore how-to topics that are listed in Restore and Recovery Overview.

A.A. データベース全体を復元するRestoring a full database

次の例では、AdventureWorksBackups 論理バックアップ デバイスからデータベース バックアップ全体を復元します。The following example restores a full database backup from the AdventureWorksBackups logical backup device. このデバイスの作成例については、「バックアップ デバイス」を参照してください。For an example of creating this device, see Backup Devices.

RESTORE DATABASE AdventureWorks2012
  FROM AdventureWorks2012Backups;

注意

データベースで完全な復旧モデルまたは一括ログ復旧モデルを使用しているときは、ほとんどの場合、SQL ServerSQL Server ではデータベースの復元前にログ末尾のバックアップが必要になります。For a database using the full or bulk-logged recovery model, SQL ServerSQL Server requires in most cases that you back up the tail of the log before restoring the database. 詳細については、ログ末尾のバックアップに関するページを参照してください。For more information, see Tail-Log Backups.

[例の先頭に戻る][Top of examples]

B.B. データベースの完全および差分バックアップの復元Restoring full and differential database backups

次の例では、Z:\SQLServerBackups\AdventureWorks2012.bak バックアップ デバイスから、データベース全体のバックアップを復元した後、差分バックアップを復元します。The following example restores a full database backup followed by a differential backup from the Z:\SQLServerBackups\AdventureWorks2012.bak backup device, which contains both backups. 復元するデータベース全体のバックアップはデバイス上の 6 番目のバックアップ セット (FILE = 6) で、差分データベース バックアップはデバイス上の 9 番目のバックアップ セット (FILE = 9) です。The full database backup to be restored is the sixth backup set on the device (FILE = 6), and the differential database backup is the ninth backup set on the device (FILE = 9). 差分バックアップが復旧されると、データベースがすぐに復旧されます。As soon as the differential backup is recovered, the database is recovered.

RESTORE DATABASE AdventureWorks2012
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
    WITH FILE = 6
      NORECOVERY;
RESTORE DATABASE AdventureWorks2012
    FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
    WITH FILE = 9
      RECOVERY;

[例の先頭に戻る][Top of examples]

C.C. RESTART 構文を使用してデータベースを復元するRestoring a database using RESTART syntax

次の例では、サーバーの電源異常による割り込みを受けた RESTART 操作を、RESTORE オプションで再起動します。The following example uses the RESTART option to restart a RESTORE operation interrupted by a server power failure.

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups WITH RESTART;

[例の先頭に戻る][Top of examples]

D.D. データベースを復元しファイルを移動するRestoring a database and move files

次の例では、データベース全体とトランザクション ログを復元し、復元したデータベースを C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data ディレクトリに移動します。The following example restores a full database and transaction log and moves the restored database into the C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data directory.

RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups
    WITH NORECOVERY,
      MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
      MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH RECOVERY;

[例の先頭に戻る][Top of examples]

E.E. BACKUP および RESTORE を使用してデータベースのコピーを作成するCopying a database using BACKUP and RESTORE

次の例では、BACKUP および RESTORE の両方のステートメントを使用して、AdventureWorks2012AdventureWorks2012 のコピーを作成します。The following example uses both the BACKUP and RESTORE statements to make a copy of the AdventureWorks2012AdventureWorks2012 database. MOVE ステートメントは、データとログ ファイルを指定の位置に復元します。The MOVE statement causes the data and log file to be restored to the specified locations. RESTORE FILELISTONLY ステートメントは、復元するデータベース内のファイル数と名前を判断するために使用します。The RESTORE FILELISTONLY statement is used to determine the number and names of the files in the database being restored. データベースの新しいコピーは、TestDB という名前になります。The new copy of the database is named TestDB. 詳細については、RESTORE FILELISTONLY に関するページを参照してください。For more information, see RESTORE FILELISTONLY.

BACKUP DATABASE AdventureWorks2012
    TO AdventureWorksBackups ;

RESTORE FILELISTONLY
    FROM AdventureWorksBackups ;

RESTORE DATABASE TestDB
    FROM AdventureWorksBackups
    WITH MOVE 'AdventureWorks2012_Data' TO 'C:\MySQLServer\testdb.mdf',
    MOVE 'AdventureWorks2012_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[例の先頭に戻る][Top of examples]

F.F. STOPAT を使って特定の時点の状態に復元するRestoring to a point-in-time using STOPAT

次の例では、データベースを 12:00 AM April 15, 2020 の状態に復元し、複数のログ バックアップが関連する復元操作を行います。The following example restores a database to its state as of 12:00 AM on April 15, 2020 and shows a restore operation that involves multiple log backups. バックアップ デバイス AdventureWorksBackupsにおいて、復元するデータベース全体のバックアップはデバイス上の 3 番目のバックアップ セット (FILE = 3)、最初のログ バックアップは 4 番目のバックアップ セット (FILE = 4)、2 番目のログ バックアップは 5 番目のバックアップ セット (FILE = 5) です。On the backup device, AdventureWorksBackups, the full database backup to be restored is the third backup set on the device (FILE = 3), the first log backup is the fourth backup set (FILE = 4), and the second log backup is the fifth backup set (FILE = 5).

RESTORE DATABASE AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=3, NORECOVERY;

RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2012
    FROM AdventureWorksBackups
    WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2012 WITH RECOVERY;

[例の先頭に戻る][Top of examples]

G.G. トランザクション ログをマークまで復元するRestoring the transaction log to a mark

次の例では、トランザクション ログを ListPriceUpdateというマーク付きトランザクションのマークまで復元します。The following example restores the transaction log to the mark in the marked transaction named ListPriceUpdate.

USE AdventureWorks2012
GO
BEGIN TRANSACTION ListPriceUpdate
    WITH MARK 'UPDATE Product list prices';
GO

UPDATE Production.Product
    SET ListPrice = ListPrice * 1.10
    WHERE ProductNumber LIKE 'BK-%';
GO

COMMIT TRANSACTION ListPriceUpdate;
GO

-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO

RESTORE DATABASE AdventureWorks2012
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO

RESTORE LOG AdventureWorks2012
  FROM AdventureWorksBackups
    WITH FILE = 4,
    RECOVERY,
    STOPATMARK = 'UPDATE Product list prices';

[例の先頭に戻る][Top of examples]

H.H. TAPE 構文を使用して復元するRestoring using TAPE syntax

次の例では、TAPE バックアップ デバイスからデータベース バックアップ全体を復元します。The following example restores a full database backup from a TAPE backup device.

RESTORE DATABASE AdventureWorks2012
    FROM TAPE = '\\.\tape0';

[例の先頭に戻る][Top of examples]

I.I. FILE および FILEGROUP 構文を使用して復元するRestoring using FILE and FILEGROUP syntax

次の例では、2 つのファイル、1 つのセカンダリ ファイル グループ、および 1 つのトランザクション ログを格納している MyDatabase という名前のデータベースを復元します。The following example restores a database named MyDatabase that has two files, one secondary filegroup, and one transaction log. このデータベースは、完全復旧モデルを使用しています。The database uses the full recovery model.

データベース バックアップは、MyDatabaseBackups という名前の論理バックアップ デバイス上のメディア セットにある 9 番目のバックアップ セットです。The database backup is the ninth backup set in the media set on a logical backup device named MyDatabaseBackups. 次に、MyDatabaseBackups デバイス上にある次の 3 つのバックアップ セット (1011、および 12) にある 3 つのログ バックアップを、WITH NORECOVERY を使用して復元します。Next, three log backups, which are in the next three backup sets (10, 11, and 12) on the MyDatabaseBackups device, are restored by using WITH NORECOVERY. 最後のログ バックアップを復元した後、データベースを復旧します。After restoring the last log backup, the database is recovered.

注意

すべてのログ バックアップが復元される前に復旧してしまわないように、復旧は別のステップとして実行します。Recovery is performed as a separate step to reduce the possibility of you recovering too early, before all of the log backups have been restored.

RESTORE DATABASE には、2 種類の FILE オプションがあることに注意してください。In the RESTORE DATABASE, notice that there are two types of FILE options. FILE のように、バックアップ デバイス名より前の FILE = 'MyDatabase_data_1' オプションでは、バックアップ セットから復元するデータベース ファイルの論理ファイル名を指定します。The FILE options preceding the backup device name specify the logical file names of the database files that are to be restored from the backup set; for example, FILE = 'MyDatabase_data_1'. このバックアップ セットは、メディア セット内の最初のデータベース バックアップではありません。したがって、メディア セット内での位置は、FILE=9 のように WITH 句の FILE オプションを使用して示されます。This backup set is not the first database backup in the media set; therefore, its position in the media set is indicated by using the FILE option in the WITH clause, FILE=9.

RESTORE DATABASE MyDatabase
    FILE = 'MyDatabase_data_1',
    FILE = 'MyDatabase_data_2',
    FILEGROUP = 'new_customers'
    FROM MyDatabaseBackups
    WITH
      FILE = 9,
      NORECOVERY;
GO  
-- Restore the log backups
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 10,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 11,
      NORECOVERY;
GO
RESTORE LOG MyDatabase
    FROM MyDatabaseBackups
    WITH FILE = 12,
      NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO

[例の先頭に戻る][Top of examples]

J.J. データベース スナップショットに戻すReverting from a database snapshot

次の例では、データベースをデータベース スナップショットに戻します。The following example reverts a database to a database snapshot. この例では、現在、データベースに 1 つだけスナップショットが存在することを想定しています。The example assumes that only one snapshot currently exists on the database. このデータベース スナップショットを作成する方法の例については、データベース スナップショットの作成に関するページを参照してください。For an example of how to create this database snapshot, see Create a Database Snapshot.

注意

スナップショットに戻すと、すべてのフルテキスト カタログが削除されます。Reverting to a snapshot drops all the full-text catalogs.

USE master;
RESTORE DATABASE AdventureWorks2012 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO

詳細については、「データベースをデータベース スナップショットに戻す」を参照してください。For more information, see Revert a Database to a Database Snapshot.

[例の先頭に戻る][Top of examples]

K.K. Microsoft Azure BLOB ストレージ サービスから復元するRestoring from the Microsoft Azure Blob storage service

次の 3 つの例では、Microsoft Azure ストレージ サービスを使用します。The three examples below involve the use of the Microsoft Azure storage service. ストレージ アカウント名は mystorageaccountです。The storage Account name is mystorageaccount. データ ファイルのコンテナーは myfirstcontainer と呼ばれます。The container for data files is called myfirstcontainer. バックアップ ファイルのコンテナーは mysecondcontainer と呼ばれます。The container for backup files is called mysecondcontainer. 保存されているアクセス ポリシーは、各コンテナーの読み取り、書き込み、削除、および一覧表示権で作成されています。A stored access policy has been created with read, write, delete, and list, rights for each container. SQL Server 資格情報は、保存されているアクセス ポリシーに関連付けられている Shared Access Signature を使用して作成されています。SQL Server credentials were created using Shared Access Signatures that are associated with the Stored Access Policies. Microsoft Azure Blob Storage を使用した SQL Server のバックアップと復元に固有の情報については、「Microsoft Azure Blob ストレージ サービスを使用した SQL Server のバックアップと復元」を参照してください。For information specific to SQL Server backup and restore with the Microsoft Azure Blob storage, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

K1.Microsoft Azure Storage サービスからデータベースの完全バックアップを復元するSalesmysecondcontainer にあるデータベースの完全バックアップは、myfirstcontainer に復元されます。K1. Restore a full database backup from the Microsoft Azure storage service A full database backup, located at mysecondcontainer, of Sales will be restored to myfirstcontainer. 現在、Sales はサーバーに存在しません。Sales does not currently exist on the server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

K2.Microsoft Azure Storage サービスからローカル ストレージにデータベースの完全バックアップを復元するSalesmysecondcontainer にあるデータベースの完全バックアップは、ローカル ストレージに復元されます。K2. Restore a full database backup from the Microsoft Azure storage service to local storage A full database backup, located at mysecondcontainer, of Sales will be restored to local storage. 現在、Sales はサーバーに存在しません。Sales does not currently exist on the server.

RESTORE DATABASE Sales
  FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
  WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
  MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
  STATS = 10;

K3.ローカル ストレージから Microsoft Azure Storage サービスにデータベース バックアップ全体を復元するK3. Restore a full database backup from local storage to the Microsoft Azure storage service

RESTORE DATABASE Sales
  FROM DISK = 'E:\BAK\Sales.bak'
  WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
  MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
  STATS = 10;

[例の先頭に戻る][Top of examples]

詳細情報More information

SQL ServerSQL Server * SQL Database
マネージド インスタンス *
* SQL Database
managed instance *
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Azure SQL Database マネージド インスタンスAzure SQL Database managed instance

このコマンドを使用すると、Azure Blob Storage アカウントの完全データベース バックアップからデータベース全体を復元できます (完全復元)。This command enables you to restore an entire database from a full database backup (a complete restore) from Azure Blob Storage account.

サポートされるその他の RESTORE コマンドについては、以下を参照してください。For other supported RESTORE commands, see:

重要

Azure SQL Database マネージド インスタンスの自動バックアップから復元する方法については、「SQL Database Restore」(SQL Database の復元) を参照してください。To restore from Azure SQL Database managed instance automatic backups, see SQL Database Restore.

構文Syntax

--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
 FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]

引数Arguments

DATABASEDATABASE

対象のデータベースを指定します。Specifies the target database.

FROM URLFROM URL

復元操作で使用される、URL に配置された 1 つ以上のバックアップ デバイスを指定します。Specifies one or more backup devices placed on URLs that will be used for the restore operation. この URL の形式は、Microsoft Azure Storage サービスからバックアップを復元する場合に使用されます。The URL format is used for restoring backups from the Microsoft Azure storage service.

重要

URL からの復元時に複数のデバイスから復元するには、Shared Access Signature (SAS) トークンを使用する必要があります。In order to restore from multiple devices when restoring from URL, you must use Shared Access Signature (SAS) tokens. Shared Access Signature の作成例については、「SQL Server Backup to URL」と「Simplifying creation of SQL Credentials with Shared Access Signature ( SAS ) tokens on Azure Storage with Powershell」 (Powershell を使用する Azure ストレージにおける Shared Access Signature (SAS) トークンでの SQL 資格情報の作成の簡素化) を参照してください。For examples creating a Shared Access Signature, see SQL Server Backup to URL and Simplifying creation of SQL Credentials with Shared Access Signature (SAS) tokens on Azure Storage with Powershell.

n: 最大 64 個のバックアップ デバイスをコンマ区切りリストに指定できることを示すプレースホルダーです。n Is a placeholder that indicates that up to 64 backup devices may be specified in a comma-separated list.

全般的な解説General Remarks

前提条件として、Blob Storage アカウントの URL と一致する名前、およびシークレットとして配置された Shared Access Signature を使用して、資格情報を作成する必要があります。As a prerequisite, you need to create a credential with the name that matches the blob storage account url, and Shared Access Signature placed as secret. RESTORE コマンドは、Blob Storage の URL を使用して資格情報を検索し、バックアップ デバイスの読み取りに必要な情報を探します。RESTORE command will lookup credential using the blob storage url to find the information required to read the backup device.

復元操作は非同期です。クライアント接続が切断された場合でも復元は続行されます。RESTORE operation is asynchronous - the restore continues even if client connection breaks. 接続が切断された場合は、sys.dm_operation_status ビューで復元操作の状態 (と CREATE および DROP DATABASE) を確認できます。If your connection is dropped, you can check sys.dm_operation_status view for the status of a restore operation (as well as for CREATE and DROP database).

次のデータベース オプションが設定または上書きされます。後で変更することはできません。The following database options are set/overridden and cannot be changed later:

  • NEW_BROKER (.bak ファイルでブローカーが有効になっていない場合)NEW_BROKER (if broker is not enabled in .bak file)
  • NEW_BROKER (.bak ファイルでブローカーが有効になっていない場合)ENABLE_BROKER (if broker is not enabled in .bak file)
  • AUTO_CLOSE=OFF (.bak ファイル内のデータベースに AUTO_CLOSE=ON がある場合)AUTO_CLOSE=OFF (if a database in .bak file has AUTO_CLOSE=ON)
  • RECOVERY FULL (.bak ファイル内のデータベースに SIMPLE または BULK_LOGGED 回復モードがある場合)RECOVERY FULL (if a database in .bak file has SIMPLE or BULK_LOGGED recovery mode)
  • メモリ最適化ファイルグループがソース .bak ファイルにない場合は、追加され、XTP と呼ばれます。Memory optimized filegroup is added and called XTP if it was not in the source .bak file. 既存のメモリ最適化ファイルグループはすべて XTP に名前変更されますAny existing memory optimized filegroup is renamed to XTP
  • SINGLE_USER および RESTRICTED_USER オプションは、MULTI_USER に変換されますSINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER

制限事項 - SQL Database マネージド インスタンスLimitations - SQL Database managed instance

これらの制限が適用されます。These limitations apply:

  • 複数のバックアップ セットを含む .BAK ファイルは復元できません。.BAK files containing multiple backup sets cannot be restored.
  • 複数のログ ファイルを含む .BAK ファイルは復元できません。.BAK files containing multiple log files cannot be restored.
  • .bak に FILESTREAM データが含まれている場合、復元は失敗します。Restore will fail if .bak contains FILESTREAM data.
  • アクティブなメモリ内オブジェクトがあるデータベースを含むバックアップは、General Purpose マネージド インスタンスに復元することはできません。Backups containing databases that have active In-memory objects cannot be restored to a General Purpose managed instance.
  • 読み取り専用モードのデータベースが含まれているバックアップは、現在復元することができません。Backups containing databases in read-only mode cannot currently be restored. この制限は間もなく解除される予定です。This limitation will be removed soon.

詳細については、マネージド インスタンスに関するトピックを参照してくださいFor more information, see managed instance

暗号化されたデータベースの復元Restoring an Encrypted Database

暗号化されたデータベースを復元するには、データベースの暗号化に使用された証明書または非対称キーにアクセスできることが必要です。To restore a database that is encrypted, you must have access to the certificate or asymmetric key that was used to encrypt the database. 証明書または非対称キーがないと、データベースは復元できません。Without the certificate or asymmetric key, the database cannot be restored. このため、バックアップが必要である間は、データベース暗号化キーの暗号化に使用する証明書を保持しておく必要があります。As a result, the certificate that is used to encrypt the database encryption key must be retained as long as the backup is needed. 詳細については、「 SQL Server Certificates and Asymmetric Keys」をご覧ください。For more information, see SQL Server Certificates and Asymmetric Keys.

アクセス許可Permissions

ユーザーは、RESTORE を実行できるためには、CREATE DATABASE 権限を持っている必要があります。The user must have CREATE DATABASE permissions to be able to execute RESTORE.

CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];

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.

使用例Examples

次の例では、資格情報の作成を含め、URL からのコピーのみのデータベース バックアップを復元します。The following examples restore a copy only database backup from URL, including the creation of a credential.

A.A. 4 つのバックアップ デバイスからデータベースを復元するRestore database from four backup devices


-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
      SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'

データベースが既に存在する場合は、次のエラーが表示されます。The following error is shown if the database already exists:

Msg 1801, Level 16, State 1, Line 9
Database 'WideWorldImportersStandard' already exists. Choose a different database name.

B.B. 変数を使用して指定されたデータベースを復元するRestore database specified via variable

DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';

RESTORE DATABASE @db_name
FROM URL = @url

C.C. restore ステートメントの進行状況を追跡するTrack progress of restore statement

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'

注意

このビューではおそらく、2 つの復元要求が表示されます。This view will probably show two restore requests. 1 つはクライアントによって送信された元の RESTORE ステートメントであり、もう 1 つはクライアントの接続が失敗した場合でも実行されるバックグラウンドの RESTORE ステートメントです。One is original RESTORE statement sent by the client, and the another one is background RESTORE statement that is executing even if the client connection fails.

SQL ServerSQL Server SQL Database
マネージド インスタンス
SQL Database
managed instance
* Analytics
Platform System (PDW) *
* Analytics
Platform System (PDW) *

 

分析プラットフォーム システムAnalytics Platform System

データベース バックアップから Parallel Data WarehouseParallel Data Warehouse アプライアンスに、Parallel Data WarehouseParallel Data Warehouse ユーザー データベースを復元します。Restores a Parallel Data WarehouseParallel Data Warehouse user database from a database backup to a Parallel Data WarehouseParallel Data Warehouse appliance. データベースは、Parallel Data WarehouseParallel Data Warehouse BACKUP DATABASE - Analytics Platform System コマンドによって以前に作成されたバックアップから復元されます。The database is restored from a backup that was previously created by the Parallel Data WarehouseParallel Data Warehouse BACKUP DATABASE - Analytics Platform System command. バックアップ操作および復元操作を使用してディザスター リカバリー計画を作成したり、アプライアンス間でデータベースを移動したりします。Use the backup and restore operations to build a disaster recovery plan, or to move databases from one appliance to another.

注意

master データベースの復元には、アプライアンスのログイン情報の復元が含まれます。Restoring master includes restoring appliance login information. マスターを復元するには、Configuration Manager ツールの [Restore the master Database](master データベースの復元) ページを使用します。To restore master, use the Restore the master Database page in the Configuration Manager tool. 制御ノードへのアクセス許可を持つ管理者は、この操作を実行することができます。An administrator with access to the Control node can perform this operation. Parallel Data WarehouseParallel Data Warehouse データベース バックアップの詳細については、Parallel Data Warehouse 製品ドキュメントParallel Data Warehouse product documentation の 「バックアップと復元」に関するセクションをご覧ください。For more information about Parallel Data WarehouseParallel Data Warehouse database backups, see "Backup and Restore" in the Parallel Data Warehouse 製品ドキュメントParallel Data Warehouse product documentation.

構文Syntax


-- Restore the master database
-- Use the Configuration Manager tool.

Restore a full user database backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\full_backup_directory'
[;]

--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
    FROM DISK = '\\UNC_path\differential_backup_directory'
    WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]

--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
    FROM DISK = '\\UNC_path\backup_directory'
[;]

引数Arguments

RESTORE DATABASE database_name: ユーザー データベースを database_name と呼ばれるデータベースに復元するように指定します。RESTORE DATABASE database_name Specifies to restore a user database to a database called database_name. 復元するデータベースには、バックアップされているソース データベースと異なる名前を付けることができます。The restored database can have a different name than the source database that was backed up. database_name は、復元先のアプライアンス上にデータベースとしてまだ存在することができません。database_name cannot already exist as a database on the destination appliance. 使用可能なデータベース名の詳細については、Parallel Data Warehouse 製品ドキュメントParallel Data Warehouse product documentationの「オブジェクトの名前付け規則」を参照してください。For more details on permitted database names, see "Object Naming Rules" in the Parallel Data Warehouse 製品ドキュメントParallel Data Warehouse product documentation.

ユーザー データベースを復元すると、アプライアンスに対して、データベースの完全バックアップが復元され、その後、必要応じて差分バックアップが復元されます。Restoring a user database restores a full database backup and then optionally restores a differential backup to the appliance. ユーザー データベースの復元には、データベース ユーザーとデータベース ロールの復元が含まれます。A restore of a user database includes restoring database users, and database roles.

FROM DISK = '\\UNC_path\backup_directory': Parallel Data WarehouseParallel Data Warehouse によってバックアップ ファイルが復元されるネットワーク パスとディレクトリ。FROM DISK = '\\UNC_path\backup_directory' The network path and directory from which Parallel Data WarehouseParallel Data Warehouse will restore the backup files. たとえば、FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'。For example, FROM DISK = '\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.

backup_directory: 完全バックアップまたは差分バックアップが格納されているディレクトリの名前を指定します。backup_directory Specifies the name of a directory that contains the full or differential backup. たとえば、完全バックアップまたは差分バックアップに対して RESTORE HEADERONLY 操作を実行することができます。For example, you can perform a RESTORE HEADERONLY operation on a full or differential backup.

full_backup_directory: 完全バックアップが格納されているディレクトリの名前を指定します。full_backup_directory Specifies the name of a directory that contains the full backup.

differential_backup_directory: 差分バックアップが格納されているディレクトリの名前を指定します。differential_backup_directory Specifies the name of the directory that contains the differential backup.

  • パスとバックアップ ディレクトリが既に存在し、これらが完全に修飾された汎用名前付け規則 (UNC) パスとして指定されている必要があります。The path and backup directory must already exist and must be specified as a fully qualified universal naming convention (UNC) path.
  • バックアップ ディレクトリのパスにはローカル パスを指定できません。Parallel Data WarehouseParallel Data Warehouse アプライアンス ノード上の場所とすることもできません。The path to the backup directory cannot be a local path and it cannot be a location on any of the Parallel Data WarehouseParallel Data Warehouse appliance nodes.
  • UNC パスとバックアップ ディレクトリ名の最大長は 200 文字です。The maximum length of the UNC path and backup directory name is 200 characters.
  • サーバーまたはホストは IP アドレスとして指定する必要があります。The server or host must be specified as an IP address.

RESTORE HEADERONLY: ユーザー データベースの 1 つのバックアップに関するヘッダー情報のみを返すように指定します。RESTORE HEADERONLY Specifies to return only the header information for one user database backup. 特に、ヘッダー フィールドにはバックアップに関するテキストの説明と、バックアップの名前が含まれます。Among other fields, the header includes the text description of the backup, and the backup name. バックアップ名は、バックアップ ファイルを格納するディレクトリの名前と同じである必要はありません。The backup name does not need to be the same as the name of the directory that stores the backup files.

RESTORE HEADERONLY の結果は、SQL ServerSQL Server RESTORE HEADERONLY の結果の後でパターン化されます。RESTORE HEADERONLY results are patterned after the SQL ServerSQL Server RESTORE HEADERONLY results. 結果には 50 を超える列が含まれます。ただし、全部が Parallel Data WarehouseParallel Data Warehouse で使用されるわけではありません。The result has over 50 columns, which are not all used by Parallel Data WarehouseParallel Data Warehouse. SQL ServerSQL Server RESTORE HEADERONLY の結果に含まれる列の説明については、RESTORE HEADERONLY に関するページを参照してください。For a description of the columns in the SQL ServerSQL Server RESTORE HEADERONLY results, see RESTORE HEADERONLY.

アクセス許可Permissions

CREATE ANY DATABASE アクセス許可が必要です。Requires the CREATE ANY DATABASE permission.

バックアップ ディレクトリにアクセスし、そこから読み取るための権限を有する Windows アカウントが必要です。Requires a Windows account that has permission to access and read from the backup directory. Parallel Data WarehouseParallel Data Warehouse に Windows アカウント名とパスワードを保存する必要もあります。You must also store the Windows account name and password in Parallel Data WarehouseParallel Data Warehouse.

エラー処理Error Handling

RESTORE DATABASE を実行すると、次の条件下でエラーが発生します。The RESTORE DATABASE command results in errors under the following conditions:

  • 復元するデータベースの名前が、ターゲット アプライアンス上に既に存在しています。The name of the database to restore already exists on the target appliance. 名前の衝突を回避するには、一意のデータベース名を選択するか、または復元を実行する前に既存のデータベースを削除します。To avoid this, choose a unique database name, or drop the existing database before running the restore.
  • バックアップ ディレクトリ内に無効なバックアップ ファイル セットが存在します。There is an invalid set of backup files in the backup directory.
  • データベースを復元するにはログイン権限が不十分です。The login permissions are not sufficient to restore a database.
  • Parallel Data WarehouseParallel Data Warehouse には、バックアップが保存されているネットワーク上の場所にアクセスする適切な権限がありません。does not have the correct permissions to the network location where the backup files are located.
  • バックアップ ディレクトリ用のネットワーク上の場所が存在しないか、その場所が使用できません。The network location for the backup directory does not exist, or is not available.
  • 計算ノードまたは制御コントロール上のディスク領域が不足しています。There is insufficient disk space on the Compute nodes or Control node. Parallel Data WarehouseParallel Data Warehouse では、復元を開始する前に、アプライアンス上に十分なディスク領域が存在するかどうかを確認しません。does not confirm that sufficient disk space exists on the appliance before initiating the restore. そのため、RESTORE DATABASE ステートメントの実行中にディスク領域不足エラーが生成される可能性があります。Therefore, it is possible to generate an out-of-disk-space error while running the RESTORE DATABASE statement. ディスク領域の不足が発生すると、Parallel Data WarehouseParallel Data Warehouse は復元をロールバックします。When insufficient disk space occurs, Parallel Data WarehouseParallel Data Warehouse rolls back the restore.
  • データベースを復元するターゲット アプライアンスにある計算ノードの数が、データベースがバックアップされたソース アプライアンス上の計算ノードの数と比べて少なくなっています。The target appliance to which the database is being restored has fewer Compute nodes than the source appliance from which the database was backed up.
  • データベースの復元は、トランザクション内から試行されます。The database restore is attempted from within a transaction.

全般的な解説General Remarks

Parallel Data WarehouseParallel Data Warehouse は、データベースの復元が成功したかどうかを追跡します。tracks the success of database restores. データベースの差分バックアップを復元する前に、Parallel Data WarehouseParallel Data Warehouse は、データベースの完全復元が正常に完了していることを確認します。Before restoring a differential database backup, Parallel Data WarehouseParallel Data Warehouse verifies the full database restore finished successfully.

復元後、ユーザー データベースのデータベース互換性レベルは 120 となります。After a restore, the user database will have database compatibility level 120. これは、元の互換性レベルに関係なく、すべてのデータベースに当てはまります。This is true for all databases regardless of their original compatibility level.

より多くの計算ノードを備えたアプライアンスへの復元Restoring to an Appliance With a Larger Number of Compute Nodes

小型のアプライアンスから大型のアプライアンスにデータベースを復元すると、再割り当てによってトランザクション ログが増えるため、DBCC SHRINKLOG (Azure SQL Data Warehouse) を実行します。Run DBCC SHRINKLOG (Azure SQL Data Warehouse) after restoring a database from a smaller to larger appliance since redistribution will increase transaction log.

より多くの計算ノードを備えたアプライアンスにバックアップを復元すると、計算ノードの数に比例して、割り当てられるデータベースのサイズが大きくなります。Restoring a backup to an appliance with a larger number of Compute nodes grows the allocated database size in proportion to the number of Compute nodes.

たとえば、2 つのノードを備えたアプライアンス (ノードあたり 30 GB) から 6 つのノードを備えたアプライアンスに 60 GB のデータベースを復元する場合、Parallel Data WarehouseParallel Data Warehouse は、6 つのノードを備えたアプライアンス上に 180 GB のデータベース (6 ノード、ノードあたり 30 GB) を作成します。For example, when restoring a 60 GB database from a 2-node appliance (30 GB per node) to a 6-node appliance, Parallel Data WarehouseParallel Data Warehouse creates a 180 GB database (6 nodes with 30 GB per node) on the 6-node appliance. Parallel Data WarehouseParallel Data Warehouse はまず 2 つのノードに復元することでソースの構成と一致させ、次に 6 つのノードすべてにデータを再割り当てします。initially restores the database to 2 nodes to match the source configuration, and then redistributes the data to all 6 nodes.

再割り当て後の各計算ノードでは、小さい方のソース アプライアンス上の各計算ノードと比べて、含まれる実際のデータが少なくなり、空き領域が大きくなります。After the redistribution each Compute node will contain less actual data and more free space than each Compute node on the smaller source appliance. 追加の領域を使用して、データベースにデータを追加します。Use the additional space to add more data to the database. 復元されたデータベースのサイズが必要以上に大きい場合は、ALTER DATABASE - PDW を使用してデータベース ファイルのサイズを縮小することができます。If the restored database size is larger than you need, you can use ALTER DATABASE - PDW to shrink the database file sizes.

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

以下の制限事項と制約において、ソース アプライアンスとはデータベースのバックアップが作成されたアプライアンスであり、ターゲット アプライアンスとはデータベースの復元先のアプライアンスです。For these limitations and restrictions, the source appliance is the appliance from which the database backup was created, and the target appliance is the appliance to which the database will be restored.

  • データベースの復元によって、統計は自動的に再構築されません。Restoring a database does not automatically rebuild statistics.
  • アプライアンス上で一度に実行できる RESTORE DATABASE ステートメントまたは BACKUP DATABASE ステートメントは 1 つだけです。Only one RESTORE DATABASE or BACKUP DATABASE statement can be running on the appliance at any given time. 複数のバックアップ ステートメントと復元ステートメントが同時に送信された場合、アプライアンスはそれらをキューに配置し、一度に 1 つずつ処理します。If multiple backup and restore statements are submitted concurrently, the appliance will put them into a queue and process them one at a time.
  • データベースのバックアップの復元先は、ソース アプライアンスと同数またはそれより多くのノードを備える Parallel Data WarehouseParallel Data Warehouse ターゲット アプライアンスである必要があります。You can only restore a database backup to a Parallel Data WarehouseParallel Data Warehouse target appliance that has the same number or more Compute nodes than the source appliance. ソース アプライアンスより計算ノード数が少ないアプライアンスをターゲットにすることはできません。The target appliance cannot have fewer Compute nodes than the source appliance.
  • SQL Server 2012 PDW のハードウェアを備えるアプライアンスで作成したバックアップを、SQL Server 2008 R2 のハードウェアを備えるアプライアンスに復元することはできません。You cannot restore a backup that was created on an appliance that has SQL Server 2012 PDW hardware to an appliance that has SQL Server 2008 R2 hardware. この制約は、当初 SQL Server 2008 R2 PDW のハードウェアを備えたアプライアンスを購入し、今はこのアプライアンスで SQL Server 2012 PDW のソフトウェアを実行している場合であっても適用されます。This holds true even if the appliance was originally purchased with the SQL Server 2008 R2 PDW hardware and is now running SQL Server 2012 PDW software.

ロックLocking

DATABASE オブジェクトに対して排他的ロックを実行します。Takes an exclusive lock on the DATABASE object.

使用例Examples

A.A. RESTORE の単純な例Simple RESTORE examples

次の例では、完全バックアップを SalesInvoices2013 データベースに復元します。The following example restores a full backup to the SalesInvoices2013 database. バックアップ ファイルは、\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full ディレクトリに格納されています。The backup files are stored in the \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full directory. SalesInvoices2013 データベースはターゲット アプライアンス上に存在することがまだ許可されていないので、このコマンドを実行しても失敗しエラーが返されます。The SalesInvoices2013 database cannot already exist on the target appliance or this command will fail with an error.

RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

B.B. 完全および差分バックアップを復元します。Restore a full and differential backup

次の例では、完全バックアップを復元してから、差分バックアップを SalesInvoices2013 データベースに復元します。The following example restores a full, and then a differential backup to the SalesInvoices2013 database

データベースの完全バックアップは、'\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' ディレクトリに格納されている完全バックアップから復元されます。The full backup of the database is restored from the full backup which is stored in the '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' directory. 復元が正常に完了した場合、差分バックアップは SalesInvoices2013 データベースに復元されます。差分バックアップは、"\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff" ディレクトリに格納されています。If the restore completes successfully, the differential backup is restored to the SalesInvoices2013 database.The differential backup is stored in the '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff' directory.

RESTORE DATABASE SalesInvoices2013
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

C.C. バックアップ ヘッダーの復元Restoring the backup header

この例では、データベース バックアップ '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' のヘッダー情報を復元します。This example restores the header information for database backup '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full' . コマンドを実行すると、Invoices2013Full バックアップに関する情報を含む行が 1 つ生成されます。The command results in one row of information for the Invoices2013Full backup.

RESTORE HEADERONLY
    FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]

ヘッダー情報を使用すれば、バックアップの内容を確認したり、バックアップの復元を試みる前にターゲット復元アプライアンスが、ソース バックアップ アプライアンスと互換性があるかどうかを確認したりすることができます。You can use the header information to check the contents of a backup, or to make sure the target restoration appliance is compatible with the source backup appliance before attempting to restore the backup.

参照See Also