次の方法で共有


データベースの差分バックアップを復元する (SQL Server)

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 でデータベースの差分バックアップを復元する方法について説明します。

このトピックについて

開始する前に

制限事項と制約条件

  • RESTORE は、明示的または暗黙的なトランザクションでは許可されません。

  • SQL Server によって作成されたバックアップは、それより前のバージョンの SQL Serverでは復元できません。

  • SQL Server 2014 では、SQL Server 2005 以降のバージョンを使用して作成されたデータベース バックアップからユーザー データベースを復元できます。

[前提条件]

  • 完全復旧モデルまたは一括ログ復旧モデルでは、データベースを復元する前に、アクティブなトランザクション ログ (ログの末尾と呼ばれます) をバックアップする必要があります。 詳細については、「 トランザクション ログのバックアップ (SQL Server)」を参照してください。

安全

権限

復元するデータベースが存在しない場合、ユーザーは RESTORE を実行できるように CREATE DATABASE 権限を持っている必要があります。 データベースが存在する場合、RESTORE 権限は既定で sysadmin 固定サーバー ロールと dbcreator 固定サーバー ロールのメンバー、およびデータベースの所有者 (dbo) に設定されます (FROM DATABASE_SNAPSHOT オプションの場合、データベースは常に存在します)。

RESTORE 権限は、メンバーシップ情報が常にサーバーですぐに使用できるロールに付与されます。 固定データベース ロールのメンバーシップは、データベースがアクセス可能で破損していない場合にのみ確認できるため(RESTORE の実行時には常に当てはまるとは限りません)、 db_owner 固定データベース ロールのメンバーには RESTORE 権限がありません。

SQL Server Management Studio の使用

データベースの差分バックアップを復元するには

  1. Microsoft SQL Server データベース エンジンの適切なインスタンスに接続したら、オブジェクト エクスプローラーでサーバー名をクリックしてサーバー ツリーを展開します。

  2. [データベース] を展開します。 データベースに応じて、ユーザー データベースを選択するか、[ システム データベース] を展開して、システム データベースを選択します。

  3. データベースを右クリックし、[ タスク] をポイントし、[ 復元] をポイントして、[ データベース] をクリックします。

  4. [ 全般 ] ページで、[ ソース ] セクションを使用して、復元するバックアップ セットのソースと場所を指定します。 次のいずれかのオプションを選択します。

    • データベース

      ドロップダウン リストから復元するデータベースを選択します。 この一覧には、 msdb バックアップ履歴に従ってバックアップされたデータベースのみが含まれます。

    バックアップが別のサーバーから取得された場合、移行先サーバーには、指定されたデータベースのバックアップ履歴情報はありません。 この場合は、[ デバイス ] を選択して、復元するファイルまたはデバイスを手動で指定します。

    • デバイス

      ブラウズ (...) ボタンをクリックして、バックアップ デバイスの選択 (バックアップ デバイスの選択) ダイアログ ボックスを開きます。 [ バックアップ メディアの種類 ] ボックスで、一覧表示されているデバイスの種類のいずれかを選択します。 [バックアップ メディア] ボックスに 1 つ以上のデバイスを選択するには、[追加] をクリックします。

      [バックアップ メディア] リスト ボックスにデバイスを追加したら、[OK] をクリックして [全般] ページに戻ります。

      [ ソース: デバイス: データベース ] ボックスで、復元するデータベースの名前を選択します。

      手記 この一覧は、 デバイス が選択されている場合にのみ使用できます。 選択したデバイスにバックアップがあるデータベースのみが使用できます。

  5. [ 変換先 ] セクションの [ データベース ] ボックスには、復元するデータベースの名前が自動的に入力されます。 データベースの名前を変更するには、[ データベース] ボックス に新しい名前を入力します。

    特定の時点で復元を停止するには、[ タイムライン ] をクリックして [ バックアップ タイムライン ] ダイアログ ボックスにアクセスします。 特定の時点でのデータベース復元の停止に関するヘルプについては、「特定の時点 への SQL Server データベースの復元 (完全復旧モデル)」を参照してください。

  6. [ 復元するバックアップ セット ] グリッドで、復元したい差分バックアップを含むバックアップを選択します。

    [復元するバックアップ セット] グリッドの列については、「データベースの復元 ([全般] ページ)」を参照してください。

  7. [ オプション] ページの [ 復元オプション ] パネルで、状況に応じて次のいずれかのオプションを選択できます。

    • 既存のデータベースを上書きする (WITH REPLACE)

    • レプリケーション設定を保持する (WITH KEEP_REPLICATION)

    • 各バックアップを復元する前にプロンプトを表示する

    • 復元されたデータベースへのアクセスを制限する (WITH RESTRICTED_USER)

    これらのオプションの詳細については、「 データベースの復元 (オプション ページ)」を参照してください。

  8. [ 回復状態 ] ボックスのオプションを選択します。 このボックスは、復元操作後のデータベースの状態を決定します。

    • RESTORE WITH RECOVERY は既定の動作であり、コミットされていないトランザクションをロールバックすることでデータベースを使用する準備が整います。 別のトランザクション ログは復元できません。 必要なすべてのバックアップを今すぐ復元する場合は、このオプションを選択します。

    • RESTORE WITH NORECOVERY 。データベースは非稼働状態になり、コミットされていないトランザクションはロールバックされません。 別のトランザクション ログは復元できます データベースは、復旧されるまで使用できません。

    • データベースを読み取り専用モードのままにする RESTORE WITH STANDBY。 コミットされていないトランザクションは元に戻されますが、元に戻す操作はスタンバイ ファイルに保存されるため、回復効果を元に戻すことができます。

    オプションの説明については、「データベースの 復元 ([オプション] ページ)」を参照してください。

  9. データベースへのアクティブな接続がある場合、復元操作は失敗します。 [ 既存の接続を閉じる] オプション をオンにして、Management Studio とデータベース間のすべてのアクティブな接続が閉じられるようにします。

  10. 各バックアップを復元する前にプロンプトを表示するには、[各復元の前にプロンプト] を選択します。 データベースが大きく、復元操作の状態を監視する場合を除き、通常、これは必要ありません。

  11. 必要に応じて、[ ファイル ] ページを使用して、データベースを新しい場所に復元します。 データベースの移動に関するヘルプについては、「 データベースを新しい場所に復元する (SQL Server)」を参照してください。

  12. OK をクリックします。

Transact-SQL の使用

データベースの差分バックアップを復元するには

  1. RESTORE DATABASE ステートメントを実行し、NORECOVERY 句を指定して、データベースの差分バックアップの前にあるデータベースの完全バックアップを復元します。 詳細については、「 方法: 完全バックアップを復元する」を参照してください。

  2. RESTORE DATABASE ステートメントを実行して、データベースの差分バックアップを復元します。次のように指定します。

    • データベースの差分バックアップが適用されるデータベースの名前。

    • 復元された差分データベースバックアップを格納しているバックアップデバイス。

    • データベースの差分バックアップの復元後に適用するトランザクション ログ バックアップがある場合は、NORECOVERY 句を使用します。 それ以外の場合は、RECOVERY 句を指定します。

  3. 完全復旧モデルまたは一括ログ復旧モデルでは、データベースの差分バックアップを復元すると、データベースの差分バックアップが完了した時点までデータベースが復元されます。 障害発生時点に復旧するには、最後の差分データベース バックアップの作成後に作成されたすべてのトランザクション ログ バックアップを適用する必要があります。 詳細については、「トランザクション ログ バックアップの適用 (SQL Server)」を参照してください。

例 (Transact-SQL)

ある。 データベースの差分バックアップの復元

次の使用例は、MyAdvWorks データベースのフルバックアップと差分バックアップを復元します。

-- 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. データベース、差分データベース、トランザクション ログ バックアップの復元

次の使用例は、 MyAdvWorks データベースのデータベース、差分データベース、トランザクション ログバックアップを復元します。

-- 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  

関連タスク

こちらもご覧ください

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