次の方法で共有


ファイルとファイル グループの復元 (SQL Server)

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 でファイルとファイル グループを復元する方法について説明します。

このトピックについて

開始する前に

制限事項と制約条件

  • ファイルとファイル グループを復元するシステム管理者は、復元するデータベースを現在使用している唯一のユーザーである必要があります。

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

  • 単純復旧モデルでは、ファイルは読み取り専用のファイル グループに属している必要があります。

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

  • 暗号化されたデータベースを復元するには、データベースの暗号化に使用された証明書または非対称キーにアクセスできる必要があります。 証明書または非対称キーがないと、データベースを復元できません。 その結果、バックアップが必要な限り、データベース暗号化キーの暗号化に使用される証明書を保持する必要があります。 詳細については、「 SQL Server Certificates and Asymmetric Keys」をご覧ください。

安全

権限

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

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

SQL Server Management Studio の使用

ファイルとファイル グループを復元するには

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

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

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

  4. [ ファイルとファイル グループ] をクリックすると、[ ファイルとファイル グループの復元 ] ダイアログ ボックスが開きます。

  5. [ 全般 ] ページの [ データベース へ] ボックスに、復元するデータベースを入力します。 新しいデータベースを入力するか、ドロップダウン リストから既存のデータベースを選択できます。 この一覧には、システム データベース マスターtempdb を除く、サーバー上のすべてのデータベースが含まれます。

  6. 復元するバックアップ セットのソースと場所を指定するには、次のいずれかのオプションをクリックします。

    • データベースから

      リスト ボックスにデータベース名を入力します。 この一覧には、 msdb バックアップ履歴に従ってバックアップされたデータベースのみが含まれます。

    • デバイスから

      参照ボタンをクリックしてください。 [ バックアップ デバイスの指定 ] ダイアログ ボックスで、[ バックアップ メディア の種類] リスト ボックスに表示されているデバイスの種類のいずれかを選択します。 [バックアップ メディア] リスト ボックスで 1 つ以上のデバイスを選択するには、[追加] をクリックします。

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

  7. [復元するバックアップ セットの選択] グリッドで、復元するバックアップを選択します。 このグリッドには、指定した場所で使用可能なバックアップが表示されます。 既定では、復旧計画が推奨されます。 推奨される復旧計画をオーバーライドするには、グリッド内の選択内容を変更します。 選択されていないバックアップに依存するすべてのバックアップは、自動的に選択解除されます。

    列見出し 価値観
    復元 選択したチェック ボックスは、復元するバックアップ セットを示します。
    名前 バックアップ セットの名前。
    ファイルの種類 バックアップ内のデータの種類 ( データログ、または Filestream データ) を指定します。 テーブルに含まれるデータは 、データ ファイル内にあります。 トランザクション ログ データは ログ ファイルにあります。 ファイル システムに格納されているバイナリ ラージ オブジェクト (BLOB) データは、 Filestream データ ファイル内にあります。
    タイプ 実行されるバックアップの種類: 完全差分、または トランザクション ログ
    サーバー バックアップ操作を実行した Database-Engine インスタンスの名前。
    ファイル論理名 ファイルの論理名。
    データベース バックアップ操作に関係するデータベースの名前。
    [開始日] バックアップ操作が開始された日時。クライアントのリージョン設定に表示されます。
    完了日 バックアップ操作が完了した日時。クライアントのリージョン設定に表示されます。
    サイズ バックアップ セットのサイズ (バイト単位)。
    ユーザー名 バックアップ操作を実行したユーザーの名前。
  8. 詳細オプションを表示または選択するには、[ページの選択] ウィンドウ[オプション] をクリックします。

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

    ファイル グループとして復元する
    ファイル グループ全体が復元されていることを示します。

    既存のデータベースを上書きする
    別のデータベースまたはファイルが既に同じ名前で存在する場合でも、復元操作で既存のデータベースとその関連ファイルを上書きすることを指定します。

    このオプションを選択することは、Transact-SQL RESTORE ステートメントで REPLACE オプションを使用することと同じです。

    各バックアップを復元する前にプロンプトを表示する
    各バックアップ セットを復元する前に確認を求められます。

    このオプションは、サーバーに 1 つのテープ デバイスがある場合など、さまざまなメディア セットのテープを交換する必要がある場合に特に便利です。

    復元されたデータベースへのアクセスを制限する
    復元されたデータベースを 、db_ownerdbcreator、または sysadmin のメンバーのみが使用できるようにします。

    このオプションを選択することは、Transact-SQL RESTORE ステートメントで RESTRICTED_USER オプションを使用するのと同義です。

  10. 必要に応じて、[データベース ファイルをグリッドとして復元] 内の各ファイルに新しい復元先を指定することで、データベースを新しい場所に 復元 できます。

    列見出し 価値観
    [元のファイル名] ソース バックアップ ファイルの完全パス。
    ファイルの種類 バックアップ内のデータの種類 ( データログ、または Filestream データ) を指定します。 テーブルに含まれるデータは 、データ ファイル内にあります。 トランザクション ログ データは ログ ファイルにあります。 ファイル システムに格納されているバイナリ ラージ オブジェクト (BLOB) データは、 Filestream データ ファイル内にあります。
    として復元 復元するデータベース ファイルの完全パス。 新しい復元ファイルを指定するには、テキスト ボックスをクリックし、推奨されるパスとファイル名を編集します。 Restore As 列のパスまたはファイル名を変更することは、Transact-SQL RESTORE ステートメントで MOVE オプションを使用することと同じです。
  11. 復旧状態パネルは、復元操作後のデータベースの状態を決定します。

    コミットされていないトランザクションをロールバックして、データベースを使用できる状態のままにします。 別のトランザクション ログは復元できません。 (リカバリを伴う復元)
    データベースを復旧します。 これが既定の動作です。 このオプションは、必要なすべてのバックアップを今すぐ復元する場合にのみ選択します。 このオプションは、Transact-SQL RESTORE ステートメントで WITH RECOVERY を指定することと同じです。

    データベースは操作不可のままにし、コミットされていないトランザクションはロールバックしないでください。 別のトランザクション ログは復元できます (RESTORE を NORECOVERY で実行)
    データベースを復元中の状態のままにします。 データベースを復旧するには、上記の RESTORE WITH RECOVERY オプション (上記を参照) を使用して、別の復元を実行する必要があります。 このオプションは、Transact-SQL RESTORE ステートメントで WITH NORECOVERY を指定することと同じです。

    このオプションを選択した場合、[ レプリケーション設定の保持 ] オプションは使用できません。

    [データベースを読み取り専用モードにする。 コミットされていないトランザクションをロールバックしますが、回復効果を元に戻すことができるように、ロールバック操作をファイルに保存します。 (待機状態で復元)
    データベースをスタンバイ状態のままにします。 このオプションは、Transact-SQL RESTORE ステートメントで WITH STANDBY を指定することと同じです。

    このオプションを選択するには、スタンバイ ファイルを指定する必要があります。

    元に戻すファイルのロールバック
    元に戻すファイル テキストボックスにスタンバイファイル名を指定します。 このオプションは、データベースを読み取り専用モード (RESTORE WITH STANDBY) のままにする場合に必要です。

Transact-SQL の使用

ファイルとファイル グループを復元するには

  1. RESTORE DATABASE ステートメントを実行して、ファイルとファイル グループのバックアップを復元します。次のように指定します。

    • 復元するデータベースの名前。

    • データベースの完全バックアップが復元されるバックアップ デバイス。

    • 各ファイルを復元するための FILE 句。

    • 復元する各ファイル グループの FILEGROUP 句。

    • NORECOVERY 句。 バックアップの作成後にファイルが変更されていない場合は、RECOVERY 句を指定します。

  2. ファイル バックアップの作成後にファイルが変更されている場合は、RESTORE LOG ステートメントを実行してトランザクション ログ バックアップを適用し、次のように指定します。

    • トランザクション ログの適用先となるデータベースの名前。

    • トランザクションログのバックアップを復元するためのバックアップデバイス。

    • 現在のトランザクション ログ バックアップの後に適用する別のトランザクション ログ バックアップがある場合は、NORECOVERY 句。それ以外の場合は、RECOVERY 句を指定します。

      トランザクション ログ バックアップが適用されている場合は、ファイルとファイル グループがログの最後までバックアップされた時間をカバーする必要があります (すべてのデータベース ファイルが復元されない限り)。

例 (Transact-SQL)

次の使用例は、 MyDatabase データベースのファイルとファイル グループを復元します。 データベースを現在の時刻に復元するために、2 つのトランザクション ログが適用されます。

USE master;  
GO  
-- Restore the files and filesgroups for MyDatabase.  
RESTORE DATABASE MyDatabase  
   FILE = 'MyDatabase_data_1',  
   FILEGROUP = 'new_customers',  
   FILE = 'MyDatabase_data_2',  
   FILEGROUP = 'first_qtr_sales'  
   FROM MyDatabase_1  
   WITH NORECOVERY;  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyDatabase  
   FROM MyDatabase_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyDatabase  
   FROM MyDatabase_log2  
   WITH RECOVERY;  
GO  

こちらもご覧ください

データベース バックアップの復元 (SQL Server Management Studio)
ファイルとファイル グループのバックアップ (SQL Server)
データベースの完全バックアップの作成 (SQL Server)
トランザクション ログのバックアップ (SQL Server)
トランザクション ログ バックアップの復元 (SQL Server)
RESTORE (Transact-SQL)