このトピックでは、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 の使用
既存のファイルに対してファイルとファイル グループを復元するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開して、[データベース] を展開します。
目的のデータベースを右クリックし、[ タスク] をポイントし、[ 復元] をポイントして、[ ファイルとファイル グループ] をクリックします。
[ 全般 ] ページの [ データベース へ] ボックスに、復元するデータベースを入力します。 新しいデータベースを入力するか、ドロップダウン リストから既存のデータベースを選択できます。 この一覧には、システム データベース マスター と tempdb を除く、サーバー上のすべてのデータベースが含まれます。
復元するバックアップ セットのソースと場所を指定するには、次のいずれかのオプションをクリックします。
データベースから
リスト ボックスにデータベース名を入力します。 この一覧には、 msdb バックアップ履歴に従ってバックアップされたデータベースのみが含まれます。
デバイスから
参照ボタンをクリックしてください。 [ バックアップ デバイスの指定 ] ダイアログ ボックスで、[ バックアップ メディア の種類] リスト ボックスに表示されているデバイスの種類のいずれかを選択します。 [バックアップ メディア] リスト ボックスで 1 つ以上のデバイスを選択するには、[追加] をクリックします。
[バックアップ メディア] リスト ボックスにデバイスを追加したら、[OK] をクリックして [全般] ページに戻ります。
[復元するバックアップ セットの選択] グリッドで、復元するバックアップを選択します。 このグリッドには、指定した場所で使用可能なバックアップが表示されます。 既定では、復旧計画が推奨されます。 推奨される復旧計画をオーバーライドするには、グリッド内の選択内容を変更します。 選択されていないバックアップに依存するすべてのバックアップは、自動的に選択解除されます。
列見出し 価値観 復元 選択したチェック ボックスは、復元するバックアップ セットを示します。 名前 バックアップ セットの名前。 ファイルの種類 バックアップ内のデータの種類 ( データ、 ログ、または Filestream データ) を指定します。 テーブルに含まれるデータは 、データ ファイル内にあります。 トランザクション ログ データは ログ ファイルにあります。 ファイル システムに格納されているバイナリ ラージ オブジェクト (BLOB) データは、 Filestream データ ファイル内にあります。 タイプ 実行されるバックアップの種類: 完全、 差分、または トランザクション ログ。 サーバー バックアップ操作を実行した Database-Engine インスタンスの名前。 ファイル論理名 ファイルの論理名。 データベース バックアップ操作に関係するデータベースの名前。 [開始日] バックアップ操作が開始された日時。クライアントのリージョン設定に表示されます。 完了日 バックアップ操作が完了した日時。クライアントのリージョン設定に表示されます。 サイズ バックアップ セットのサイズ (バイト単位)。 ユーザー名 バックアップ操作を実行したユーザーの名前。 [ ページの選択 ] ウィンドウで、[ オプション] ページをクリックします。
[ 復元オプション ] パネルで、[ 既存のデータベースを上書きする (WITH REPLACE)] を選択します。 復元操作では、同じ名前の別のデータベースまたはファイルが既に存在する場合でも、既存のデータベースとその関連ファイルが上書きされます。
OK をクリックします。
Transact-SQL の使用
既存のファイルに対してファイルやファイル グループを復元するために
RESTORE DATABASE ステートメントを実行して、ファイルとファイル グループのバックアップを復元します。次のように指定します。
復元するデータベースの名前。
データベースの完全バックアップが復元されるバックアップ デバイス。
各ファイルを復元するための FILE 句。
復元する各ファイル グループの FILEGROUP 句。
同じ名前と場所の既存のファイルに対して各ファイルを復元できることを指定する REPLACE オプション。
注意事項
REPLACE オプションは慎重に使用してください。 詳細については、「..」を参照してください。
NORECOVERY オプション。 バックアップの作成後にファイルが変更されていない場合は、RECOVERY 句を指定します。
ファイル バックアップの作成後にファイルが変更されている場合は、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
こちらもご覧ください
データベース バックアップの復元 (SQL Server Management Studio)
RESTORE (Transact-SQL)
ファイルとファイル グループの復元 (SQL Server)
バックアップと復元を使用してデータベースをコピーする