既存のファイルにファイルとファイル グループを復元する (SQL Server)

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

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • ファイルとファイル グループを既存のファイルに復元する方法:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

  • 復元するデータベースは、ファイルとファイル グループの復元作業を行うシステム管理者以外のユーザーによって使用されていない状態にしておく必要があります。

  • RESTORE は、明示的または暗黙的なトランザクションでは使用できません。

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

  • 暗号化されたデータベースを復元するには、データベースの暗号化に使用された証明書または非対称キーにアクセスできることが必要です。 証明書または非対称キーがないと、データベースは復元できません。 このため、バックアップが必要である間は、データベース暗号化キーの暗号化に使用する証明書を保持しておく必要があります。 詳細については、「SQL Server の証明書と非対称キー」を参照してください。

セキュリティ

権限

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

RESTORE 権限は、サーバーでメンバーシップ情報を常に確認できるロールに与えられます。 固定データベース ロールのメンバーシップは、データベースがアクセス可能で損傷していない場合にのみ確認することができますが、RESTORE の実行時にはデータベースがアクセス可能で損傷していないことが必ずしも保証されないため、db_owner 固定データベース ロールのメンバーには RESTORE 権限は与えられません。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

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

  1. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続して、そのインスタンスを展開します。次に、[データベース] を展開します。

  2. 目的のデータベースを右クリックし、[タスク][復元] の順にポイントし、[ファイルおよびファイル グループ] をクリックします。

  3. [全般] ページの [復元先データベース] ボックスに、復元するデータベースの名前を入力します。 新しいデータベースを入力するか、ドロップダウン リストから既存のデータベースを選択します。 このリストには、システム データベース master および tempdb を除いた、サーバー上のすべてのデータベースが表示されます。

  4. 復元するバックアップ セットの復元元ファイルと場所を指定するには、次のいずれかのオプションをクリックします。

    • [復元元データベース]

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

    • [復元元デバイス]

      参照ボタンをクリックします。 [バックアップ デバイスの指定] ダイアログ ボックスで、[バックアップ メディアの種類] ボックスの一覧からいずれかのデバイスの種類を選択します。 [バックアップ メディア] ボックスに 1 つまたは複数のデバイスを選択するには、[追加] をクリックします。

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

  5. [復元するバックアップ セットの選択] グリッドで、復元するバックアップを選択します。 このグリッドには、指定された場所に対して使用可能なバックアップが表示されます。 既定では、復旧計画が推奨されています。 推奨された復旧計画を上書きする場合は、グリッド内の選択肢を変更できます。 バックアップの選択を解除すると、それに依存するその他のバックアップも自動的に選択が解除されます。

    列見出し

    [復元]

    このチェック ボックスをオンにすると、バックアップ セットが復元されます。

    名前

    バックアップ セットの名前です。

    [ファイルの種類]

    バックアップに含まれるデータの種類として、データログFILESTREAM データのいずれかを指定します。 テーブルに含まれるデータの種類は、データ ファイルです。 トランザクション ログ データの種類は、ログ ファイルです。 ファイル システムに格納されたバイナリ ラージ オブジェクト (BLOB) データの種類は、FILESTREAM データ ファイルです。

    実行されたバックアップの種類です。[完全][差分]、または [トランザクション ログ] のいずれかを指定します。

    [サーバー]

    バックアップ操作を実行するデータベース エンジン インスタンスの名前です。

    [ファイルの論理名]

    ファイルの論理名です。

    [データベース]

    バックアップ操作に呼び出されるデータベース名です。

    [開始日]

    バックアップ操作が始まった日時で、クライアントの地域設定で表示されます。

    [完了日]

    バックアップ操作が終了した日時で、クライアントの地域設定で表示されます。

    [サイズ]

    バックアップ セットのサイズ (バイト単位) です。

    [ユーザー名]

    バックアップ操作を実行したユーザーの名前。

  6. [ページの選択] ペインの [オプション] ページをクリックします。

  7. [復元オプション] パネルで、[既存のデータベースを上書きする (WITH REPLACE)] をクリックします。 同じ名前を持つ別のデータベースまたはファイルが既に存在している場合でも、復元操作は、既存のデータベースおよび関連ファイルを上書きします。

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

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

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

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

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

    • 復元する各ファイルに対応する FILE 句。

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

    • REPLACE オプション。各ファイルを、同じ名前および同じ場所の既存のファイルに復元できるよう指定します。

      注記注意

      REPLACE オプションは慎重に使用してください。 詳細については、以下のトピックを参照してください。

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

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

    • トランザクション ログが適用されるデータベースの名前。

    • 復元するトランザクション ログのバックアップが格納されているバックアップ デバイス。

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

      トランザクション ログ バックアップを適用する場合、そのバックアップには、ファイルとファイル グループのバックアップが作成された時刻の情報が格納されている必要があります。

例 (Transact-SQL)

次の例では、MyNwind データベースのファイルとファイル グループを復元し、同じ名前の既存のファイルを置き換えます。 データベースを現在の時刻に復元するために、2 つのトランザクション ログも適用されます。

USE master;
GO
-- Restore the files and filesgroups for MyNwind.
RESTORE DATABASE MyNwind
   FILE = 'MyNwind_data_1',
   FILEGROUP = 'new_customers',
   FILE = 'MyNwind_data_2',
   FILEGROUP = 'first_qtr_sales'
   FROM MyNwind_1
   WITH NORECOVERY,
   REPLACE;
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log1
   WITH NORECOVERY;
GO
-- Apply the last transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log2
   WITH RECOVERY;
GO

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

タスク

データベースのバックアップの復元 (SQL Server Management Studio)

参照

RESTORE (Transact-SQL)

概念

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

バックアップと復元によるデータベースのコピー