このトピックでは、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 の使用
データベースの差分バックアップを復元するには
Microsoft SQL Server データベース エンジンの適切なインスタンスに接続したら、オブジェクト エクスプローラーでサーバー名をクリックしてサーバー ツリーを展開します。
[データベース] を展開します。 データベースに応じて、ユーザー データベースを選択するか、[ システム データベース] を展開して、システム データベースを選択します。
データベースを右クリックし、[ タスク] をポイントし、[ 復元] をポイントして、[ データベース] をクリックします。
[ 全般 ] ページで、[ ソース ] セクションを使用して、復元するバックアップ セットのソースと場所を指定します。 次のいずれかのオプションを選択します。
データベース
ドロップダウン リストから復元するデータベースを選択します。 この一覧には、 msdb バックアップ履歴に従ってバックアップされたデータベースのみが含まれます。
注
バックアップが別のサーバーから取得された場合、移行先サーバーには、指定されたデータベースのバックアップ履歴情報はありません。 この場合は、[ デバイス ] を選択して、復元するファイルまたはデバイスを手動で指定します。
デバイス
ブラウズ (...) ボタンをクリックして、バックアップ デバイスの選択 (バックアップ デバイスの選択) ダイアログ ボックスを開きます。 [ バックアップ メディアの種類 ] ボックスで、一覧表示されているデバイスの種類のいずれかを選択します。 [バックアップ メディア] ボックスに 1 つ以上のデバイスを選択するには、[追加] をクリックします。
[バックアップ メディア] リスト ボックスにデバイスを追加したら、[OK] をクリックして [全般] ページに戻ります。
[ ソース: デバイス: データベース ] ボックスで、復元するデータベースの名前を選択します。
手記 この一覧は、 デバイス が選択されている場合にのみ使用できます。 選択したデバイスにバックアップがあるデータベースのみが使用できます。
[ 変換先 ] セクションの [ データベース ] ボックスには、復元するデータベースの名前が自動的に入力されます。 データベースの名前を変更するには、[ データベース] ボックス に新しい名前を入力します。
注
特定の時点で復元を停止するには、[ タイムライン ] をクリックして [ バックアップ タイムライン ] ダイアログ ボックスにアクセスします。 特定の時点でのデータベース復元の停止に関するヘルプについては、「特定の時点 への SQL Server データベースの復元 (完全復旧モデル)」を参照してください。
[ 復元するバックアップ セット ] グリッドで、復元したい差分バックアップを含むバックアップを選択します。
[復元するバックアップ セット] グリッドの列については、「データベースの復元 ([全般] ページ)」を参照してください。
[ オプション] ページの [ 復元オプション ] パネルで、状況に応じて次のいずれかのオプションを選択できます。
既存のデータベースを上書きする (WITH REPLACE)
レプリケーション設定を保持する (WITH KEEP_REPLICATION)
各バックアップを復元する前にプロンプトを表示する
復元されたデータベースへのアクセスを制限する (WITH RESTRICTED_USER)
これらのオプションの詳細については、「 データベースの復元 (オプション ページ)」を参照してください。
[ 回復状態 ] ボックスのオプションを選択します。 このボックスは、復元操作後のデータベースの状態を決定します。
RESTORE WITH RECOVERY は既定の動作であり、コミットされていないトランザクションをロールバックすることでデータベースを使用する準備が整います。 別のトランザクション ログは復元できません。 必要なすべてのバックアップを今すぐ復元する場合は、このオプションを選択します。
RESTORE WITH NORECOVERY 。データベースは非稼働状態になり、コミットされていないトランザクションはロールバックされません。 別のトランザクション ログは復元できます データベースは、復旧されるまで使用できません。
データベースを読み取り専用モードのままにする RESTORE WITH STANDBY。 コミットされていないトランザクションは元に戻されますが、元に戻す操作はスタンバイ ファイルに保存されるため、回復効果を元に戻すことができます。
オプションの説明については、「データベースの 復元 ([オプション] ページ)」を参照してください。
データベースへのアクティブな接続がある場合、復元操作は失敗します。 [ 既存の接続を閉じる] オプション をオンにして、Management Studio とデータベース間のすべてのアクティブな接続が閉じられるようにします。
各バックアップを復元する前にプロンプトを表示するには、[各復元の前にプロンプト] を選択します。 データベースが大きく、復元操作の状態を監視する場合を除き、通常、これは必要ありません。
必要に応じて、[ ファイル ] ページを使用して、データベースを新しい場所に復元します。 データベースの移動に関するヘルプについては、「 データベースを新しい場所に復元する (SQL Server)」を参照してください。
OK をクリックします。
Transact-SQL の使用
データベースの差分バックアップを復元するには
RESTORE DATABASE ステートメントを実行し、NORECOVERY 句を指定して、データベースの差分バックアップの前にあるデータベースの完全バックアップを復元します。 詳細については、「 方法: 完全バックアップを復元する」を参照してください。
RESTORE DATABASE ステートメントを実行して、データベースの差分バックアップを復元します。次のように指定します。
データベースの差分バックアップが適用されるデータベースの名前。
復元された差分データベースバックアップを格納しているバックアップデバイス。
データベースの差分バックアップの復元後に適用するトランザクション ログ バックアップがある場合は、NORECOVERY 句を使用します。 それ以外の場合は、RECOVERY 句を指定します。
完全復旧モデルまたは一括ログ復旧モデルでは、データベースの差分バックアップを復元すると、データベースの差分バックアップが完了した時点までデータベースが復元されます。 障害発生時点に復旧するには、最後の差分データベース バックアップの作成後に作成されたすべてのトランザクション ログ バックアップを適用する必要があります。 詳細については、「トランザクション ログ バックアップの適用 (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