トランザクション ログ バックアップの復元 (SQL Server)Restore a Transaction Log Backup (SQL Server)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このトピックでは、 SQL ServerSQL ServerSQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、トランザクション ログ バックアップを復元する方法について説明します。This topic describes how to restore a transaction log backup in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

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

はじめにBefore You Begin

前提条件Prerequisites

  • バックアップは、作成された順序で復元する必要があります。Backups must be restored in the order in which they were created. 特定のトランザクション ログ バックアップを復元する前に、まず、次に示す以前のバックアップを復元する必要があります。ただし、コミットされていないトランザクションはロールバックしません (WITH NORECOVERY)。Before you can restore a particular transaction log backup, you must first restore the following previous backups without rolling back uncommitted transactions, that is WITH NORECOVERY:

    • データベース全体のバックアップおよび、特定のトランザクション ログ バックアップの前に行われた差分バックアップがある場合は、最後の差分バックアップThe full database backup and the last differential backup, if any, taken before the particular transaction log backup. データベースの最新の完全バックアップまたは差分バックアップが作成される前に、データベースが完全復旧モデルまたは一括ログ復旧モデルを使用していた。Before the most recent full or differential database backup was created, the database must have been using the full recovery model or bulk-logged recovery model.

    • データベース全体のバックアップまたは差分バックアップ (差分バックアップを復元する場合) 以降、特定のトランザクション ログ バックアップ以前に行われたすべてのトランザクション ログ バックアップAll transaction log backups taken after the full database backup or the differential backup (if you restore one) and before the particular transaction log backup. ログ バックアップが、作成された順序で、ログ チェーンにギャップがないように、適用されている。Log backups must be applied in the sequence in which they were created, without any gaps in the log chain.

      トランザクション ログ バックアップの詳細については、「トランザクション ログ バックアップ (SQL Server)」および「トランザクション ログ バックアップの適用 (SQL Server)」を参照してください。For more information about transaction log backups, see Transaction Log Backups (SQL Server) and Apply Transaction Log Backups (SQL Server).

セキュリティSecurity

PermissionsPermissions

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

警告

通常の復元処理では、データ バックアップおよび差分バックアップと共に、 [データベースの復元] ダイアログ ボックスでログ バックアップを選択します。The normal process of a restore is to select the log backups in the Restore Database dialog box along with the data and differential backups.

トランザクション ログ バックアップを復元するにはTo restore a transaction log backup

  1. オブジェクト エクスプローラーで適切な MicrosoftMicrosoft SQL Server データベース エンジンSQL Server Database Engineのインスタンスに接続した後、サーバー名をクリックしてサーバー ツリーを展開します。After connecting 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, and, depending on the database, either select a user database or expand System Databases and select a system database.

  3. データベースを右クリックして [タスク] をポイントし、 [復元] をポイントします。次に、 [トランザクション ログ] をクリックし、 [トランザクション ログの復元] ダイアログ ボックスを開きます。Right-click the database, point to Tasks, point to Restore, and then click Transaction Log, which opens the Restore Transaction Log dialog box.

    注意

    [トランザクション ログ] がグレーで表示される場合は、最初に完全バックアップまたは差分バックアップを復元する必要があります。If Transaction Log is grayed out, you may need to restore a full or differential backup first. [データベース] バックアップ ダイアログ ボックスを使用してください。Use the Database backup dialog box.

  4. [全般] ページの [データベース] ボックスの一覧で、データベースの名前を選択します。On the General page, in the Database list box, select the name of a database. 復元状態のデータベースだけが一覧表示されます。Only databases in the restoring state are listed.

  5. 復元するバックアップ セットの復元元ファイルと場所を指定するには、次のいずれかのオプションをクリックします。To specify the source and location of the backup sets to restore, click one of the following options:

    • [データベースの以前のバックアップから]From previous backups of 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.

    • [ファイルまたはテープから]From file or tape

      参照ボタン ( [...] ) をクリックし、 [バックアップ デバイスの選択] ダイアログ ボックスを開きます。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.

  6. [復元するトランザクション ログのバックアップを選択] グリッドで、復元するバックアップを選択します。In the Select the transaction log backups to restore grid, select the backups to restore. このグリッドには、選択したデータベースで使用できるトランザクション ログ バックアップが一覧表示されます。This grid lists the transaction log backups available for the selected database. ログ バックアップは、データベースの [最初の LSN][最後の LSN] よりも大きい場合にのみ使用できます。A log backup is available only if its First LSN greater than the Last LSN of the database. ログ バックアップは、含まれているログ シーケンス番号 (LSN) の順に一覧表示され、この順序で復元する必要があります。Log backups are listed in the order of the log sequence numbers (LSN) they contain, and they must be restored in this order.

    次の表は、グリッドの列ヘッダーとその値を示しています。The following table lists the column headers of the grid and describes their values.

    [ヘッダー]Header [値]Value
    復元Restore チェック ボックスをオンにしたバックアップ セットが復元されます。Selected check boxes indicate the backup sets to be restored.
    [名前]Name バックアップ セットの名前。Name of the backup set.
    コンポーネントComponent バックアップされるコンポーネント: [データベース][ファイル] 、または <[空白>] (トランザクション ログ用)。Backed-up component: Database, File, or <blank> (for transaction logs).
    [データベース]Database バックアップ操作に関係するデータベース名。Name of the database involved in the backup operation.
    [開始日]Start Date バックアップ操作の開始日時 (クライアントの地域設定に準拠)。Date and time when the backup operation began, presented in the regional setting of the client.
    完了日Finish Date バックアップ操作の完了日時 (クライアントの地域設定に準拠)。Date and time when the backup operation finished, presented in the regional setting of the client.
    [最初の LSN]First LSN バックアップ セット内の先頭のトランザクションのログ シーケンス番号。Log sequence number of the first transaction in the backup set. ファイル バックアップの場合は空白。Blank for file backups.
    [最後の LSN]Last LSN バックアップ セット内の最後のトランザクションのログ シーケンス番号。Log sequence number of the last transaction in the backup set. ファイル バックアップの場合は空白。Blank for file backups.
    チェックポイントの LSNCheckpoint LSN バックアップが作成された時点における最新チェックポイントのログ シーケンス番号。Log sequence number of the most recent checkpoint at the time the backup was created.
    全 LSNFull LSN データベース全体の最新バックアップのログ シーケンス番号。Log sequence number of the most recent full database backup.
    [サーバー]Server バックアップ操作を実行したデータベース エンジン インスタンスの名前。Name of the Database Engine instance that performed the backup operation.
    [ユーザー名]User Name バックアップ操作を実行したユーザーの名前。Name of the user who performed the backup operation.
    サイズSize バックアップ セットのサイズ (バイト単位)。Size of the backup set in bytes.
    [位置]Position ボリューム内でのバックアップ セットの位置。Position of the backup set in the volume.
    [有効期限]Expiration バックアップ セットの期限が切れる日付と時刻。Date and time the backup set expires.
  7. 次のいずれかを選択します。Select one of the following:

    • [特定の時点]Point in time

      既定値 ( [最新の候補] ) をそのまま使用するか、または参照ボタンをクリックして [特定の時点に復元] ダイアログ ボックスを開き、特定の日付と時刻を選択します。Either retain the default (Most recent possible) or select a specific date and time by clicking the browse button, which opens the Point in Time Restore dialog box.

    • [マークされたトランザクション]Marked transaction

      以前にマークされたトランザクションにデータベースを復元します。Restore the database to a previously marked transaction. このオプションを選択すると、 [マークされたトランザクションの選択] ダイアログ ボックスが開いて、選択されたトランザクション ログ バックアップで使用できるマークされたトランザクションの一覧がグリッドに表示されます。Selecting this option launches the Select Marked Transaction dialog box, which displays a grid listing the marked transactions available in the selected transaction log backups.

      既定では、マークされたトランザクションの前まで復元され、マークされたトランザクションは復元されません。By default, the restore is up to, but excluding, the marked transaction. マークされたトランザクションも復元するには、 [マークされたトランザクションを含める] チェック ボックスをオンにします。To restore the marked transaction also, select Include marked transaction.

      次の表は、グリッドの列ヘッダーとその値を示しています。The following table lists the column headers of the grid and describes their values.

      [ヘッダー]Header [値]Value
      <空白><blank> マークを選択するためのチェック ボックスを表示します。Displays a checkbox for selecting the mark.
      トランザクション マークTransaction Mark トランザクションがコミットされたときにユーザーによって指定された、マークされたトランザクションの名前。Name of the marked transaction specified by the user when the transaction was committed.
      DateDate トランザクションがコミットされた日時。Date and time of the transaction when it was committed. トランザクションの日付と時刻は、クライアント コンピューターの日付と時刻ではなく、 msdbgmarkhistory テーブルに記録されたとおりに表示されます。Transaction date and time are displayed as recorded in the msdbgmarkhistory table, not in the client computer's date and time.
      [説明]Description トランザクションがコミットされたときにユーザーが指定したマークされたトランザクションの説明 (該当する場合)。Description of marked transaction specified by the user when the transaction was committed (if any).
      LSN (LSN)LSN マークされたトランザクションのログ シーケンス番号。Log sequence number of the marked transaction.
      [データベース]Database マークされたトランザクションがコミットされたデータベースの名前。Name of the database where the marked transaction was committed.
      [ユーザー名]User Name マークされたトランザクションをコミットしたデータベース ユーザーの名前。Name of the database user who committed the marked transaction.
  8. 詳細設定オプションを表示または選択するには、 [ページの選択] ペインの [オプション] をクリックします。To view or select the advanced options, click Options in the Select a page pane.

  9. [復元オプション] セクションには次の選択肢があります。In the Restore options section, the choices are:

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

      パブリッシュされたデータベースを、そのデータベースが作成されたサーバー以外のサーバーに復元するときに、レプリケーションの設定を保存します。Preserves the replication settings when restoring a published database to a server other than the server where the database was created.

      このオプションは、 [コミットされていないトランザクションをロールバックして、データベースを使用可能な状態にする...] オプション (後述) でのみ使用可能です。 RECOVERY オプションを指定してバックアップを復元する場合と同じになります。This option is available only with the Leave the database ready for use by rolling back the uncommitted transactions... option (described later), which is equivalent to restoring a backup with the RECOVERY option.

      このオプションをチェックすることは、 RESTORE ステートメントで Transact-SQLTransact-SQLKEEP_REPLICATION オプションを使用することと同じです。Checking this option is equivalent to using the KEEP_REPLICATION option in a Transact-SQLTransact-SQLRESTORE statement.

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

      このオプションは、各バックアップ セットの復元前 (最初のバックアップ セットでは、その後) に、復元シーケンスを続行するかどうかをたずねる [復元の続行] ダイアログ ボックスを表示します。Before restoring each backup set (after the first), this option brings up the Continue with Restore dialog box, which asks you to indicate whether you want to continue the restore sequence. このダイアログには、次のメディア セットの名前 (使用可能な場合)、バックアップ セット名、およびバックアップ セットの説明が表示されます。This dialog displays the name of the next media set (if available), the backup set name, and backup set description.

      このオプションは、異なるメディア セットのテープを交換する必要がある場合に特に役立ちます。This option is particularly useful when you must swap tapes for different media sets. たとえば、サーバーにテープ デバイスが 1 台しかない場合に使用できます。For example, you can use it when the server has only one tape device. 続行する準備ができたら [OK] をクリックします。Wait until you are ready to proceed before clicking OK.

      [いいえ] をクリックすると、データベースは復元状態のままになります。Clicking No leaves the database in the restoring state. 最後の復元が完了した後、都合のよいときに復元シーケンスを継続できます。At your convenience, you can continue the restore sequence after the last restore that completed. 次のバックアップがデータまたは差分バックアップの場合は、 [データベースの復元] タスクを再度使用します。If the next backup is a data or differential backup, use the Restore Database task again. 次のバックアップがログ バックアップの場合は、 [トランザクション ログの復元] タスクを使用します。If the next backup is a log backup, use the Restore Transaction Log task.

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

      復元するデータベースの使用を、 db_ownerdbcreator、または sysadminのメンバーだけに制限します。Makes the restored database available only to the members of db_owner, dbcreator, or sysadmin.

      このオプションをチェックすることは、 RESTORE ステートメントで Transact-SQLTransact-SQLRESTRICTED_USER オプションを使用することと同じです。Checking this option is synonymous to using the RESTRICTED_USER option in a Transact-SQLTransact-SQLRESTORE statement.

  10. [復旧状態] オプションでは、復元操作後のデータベースの状態を指定します。For the Recovery state options, specify the state of the database after the restore operation.

    • [コミットされていないトランザクションをロールバックして、データベースを使用可能な状態にする。別のトランザクション ログは復元できません。(RESTORE WITH RECOVERY)]Leave the database ready for use by rolling back uncommitted transactions. Additional transaction logs cannot be restored. (RESTORE WITH RECOVERY)

      データベースを復旧します。Recovers the database. このオプションは、 RESTORE ステートメントの Transact-SQLTransact-SQLRECOVERY オプションと同じです。This option is equivalent to the RECOVERY option in a Transact-SQLTransact-SQLRESTORE statement.

      このオプションは、復元するログ ファイルがない場合にのみ選択します。Choose this option only if you have no log files you want to restore.

    • [データベースは操作不可状態のままで、コミットされていないトランザクションはロールバックしない。別のトランザクション ログは復元できます。(RESTORE WITH NORECOVERY)]Leave the database non-operational, and do not roll back uncommitted transactions. Additional transaction logs can be restored. (RESTORE WITH NORECOVERY)

      データベースを RESTORING 状態で未復旧のままにします。Leaves the database unrecovered, in the RESTORING state. このオプションは、 RESTORE ステートメントで Transact-SQLTransact-SQLNORECOVERY オプションを使用することと同じです。This option is equivalent to using the NORECOVERY option in a Transact-SQLTransact-SQLRESTORE statement.

      このオプションを選択した場合は、 [レプリケーションの設定を保存する] オプションは使用できません。When you choose this option, the Preserve replication settings option is unavailable.

      重要

      ミラー データベースまたはセカンダリ データベースの場合は、常にこのオプションを選択します。For a mirror or secondary database, always select this option.

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

      データベースをスタンバイ状態のままにします。Leaves the database in a standby state. このオプションは、 RESTORE ステートメントで Transact-SQLTransact-SQLSTANDBY オプションを使用することと同じです。This option is equivalent to using the STANDBY option in a Transact-SQLTransact-SQLRESTORE statement.

      このオプションを選択した場合は、スタンバイ ファイルを指定する必要があります。Choosing this option requires that you specify a standby file.

  11. 必要に応じて、 [スタンバイ ファイル] ボックスで、スタンバイ ファイル名を指定します。Optionally, specify a standby file name in the Standby file text box. このオプションは、データベースを読み取り専用モードのままにする場合に必要です。This option is required if you leave the database in read-only mode. スタンバイ ファイルは参照して指定するか、またはテキスト ボックスにパス名を入力します。You can browse for the standby file or type its pathname in the text box.

Transact-SQL の使用Using Transact-SQL

重要

指定があいまいにならないよう、すべての RESTORE ステートメントにおいて WITH NORECOVERY または WITH RECOVERY を常に明示的に指定することをお勧めします。We recommend that you always explicitly specify either WITH NORECOVERY or WITH RECOVERY in every RESTORE statement to eliminate ambiguity. これは、スクリプトを作成するときに特に重要です。This is particularly important when writing scripts.

トランザクション ログ バックアップを復元するにはTo restore a transaction log backup

  1. 次の項目を指定して RESTORE LOG ステートメントを実行し、トランザクション ログ バックアップを適用します。Execute the RESTORE LOG statement to apply the transaction log backup, specifying:

    • トランザクション ログが適用されるデータベースの名前。The name of the database to which the transaction log will be applied.

    • 適用するトランザクション ログ バックアップが格納されているバックアップ デバイス。The backup device where the transaction log backup will be restored from.

    • NORECOVERY 句。The NORECOVERY clause.

    このステートメントの基本構文は次のとおりです。The basic syntax for this statement is as follows:

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERYRESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.

    database_name は、データベース名です。<backup_device> は、復元するログ バックアップを保持するデバイスの名前です。Where database_name is the name of database and <backup_device>is the name of the device that contains the log backup being restored.

  2. 適用する必要があるトランザクション ログ バックアップごとに、手順 1. を繰り返します。Repeat step 1 for each transaction log backup you have to apply.

  3. 復元シーケンスの最後のバックアップを復元した後、データベースを復旧するには、次のステートメントのいずれかを使用します。After restoring the last backup in your restore sequence, to recover the database use one of the following statements:

    • 最後の RESTORE LOG ステートメントの一部としてデータベースを復旧する。Recover the database as part of the last RESTORE LOG statement:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • 個別の RESTORE DATABASE ステートメントを使用してデータベースの復旧を待機する。Wait to recover the database by using a separate RESTORE DATABASE statement:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      データベースの復旧を待機すると、必要なログ バックアップがすべて復元されていることを確認できます。Waiting to recover the database gives you the opportunity to verify that you have restored all of the necessary log backups. これは、特定の時点への復元を実行する際の操作として、多くの場合は推奨される方法です。This approach is often advisable when you are performing a point-in-time restore.

    重要

    ミラー データベースを作成している場合は、復旧ステップを省略します。If you are creating a mirror database, omit the recovery step. ミラー データベースは、RESTORING 状態のままにする必要があります。A mirror database must remain in the RESTORING state.

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

既定では、 AdventureWorks2012AdventureWorks2012 データベースは単純復旧モデルを使用します。By default, the AdventureWorks2012AdventureWorks2012 database uses the simple recovery model. 以下の例では、次に示すように、完全復旧モデルが使用されるようにデータベースを変更する必要があります。The following examples require modifying the database to use the full recovery model, as follows:

ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  

A.A. 1 つのトランザクション ログ バックアップの適用Applying a single transaction log backup

次の例では、まず AdventureWorks2012AdventureWorks2012 というバックアップ デバイスに存在するデータベースの完全バックアップを使用して AdventureWorks2012_1データベースを復元します。The following example starts by restoring the AdventureWorks2012AdventureWorks2012 database by using a full database backup that resides on a backup device named AdventureWorks2012_1. 次に、 AdventureWorks2012_logというバックアップ デバイスにある最初のトランザクション ログ バックアップを適用します。The example then applies the first transaction log backup that resides on a backup device named AdventureWorks2012_log. 最後に、データベースを復旧します。Finally, the example recovers the database.

RESTORE DATABASE AdventureWorks2012  
   FROM AdventureWorks2012_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 1,  
   WITH NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

B.B. 複数のトランザクション ログ バックアップの適用Applying multiple transaction log backups

次の例では、まず AdventureWorks2012AdventureWorks2012 というバックアップ デバイスに存在するデータベースの完全バックアップを使用して AdventureWorks2012_1データベースを復元します。The following example starts by restoring the AdventureWorks2012AdventureWorks2012 database by using a full database backup that resides on a backup device named AdventureWorks2012_1. 次に、 AdventureWorks2012_logという名前のバックアップ デバイスにある最初の 3 つのトランザクション ログ バックアップを、1 つずつ適用します。The example then applies, one by one, the first three transaction log backups that reside on a backup device named AdventureWorks2012_log. 最後に、データベースを復旧します。Finally, the example recovers the database.

RESTORE DATABASE AdventureWorks2012  
   FROM AdventureWorks2012_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 2,  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 3,  
   WITH NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

関連タスクRelated Tasks

参照See Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
トランザクション ログ バックアップの適用 (SQL Server)Apply Transaction Log Backups (SQL Server)