データベースの全体復元の実行 (単純復旧モデル)

データベースの全体復元の目的は、データベース全体を復元することです。復元の実行中は、データベース全体がオフラインになります。データベースの各部がオンラインになる前に、すべてのデータが一貫性のある状態に復旧されます。一貫性のある状態とは、データベースのすべての部分が同じ時点にあり、コミットされていないトランザクションが存在しない状態を示します。

単純復旧モデルでは、特定のバックアップ内にある特定の時点にデータベースを復元することはできません。

データベース全体の復元

単純復旧モデルでのデータベース全体の復元は、データベースの差分バックアップを復元する必要があるかどうかに応じて 1 つまたは 2 つの RESTORE ステートメントで行われます。

データベースの完全バックアップのみを使用する場合は、最新のバックアップを復元するだけで完了します。データベースの差分バックアップも使用する場合は、データベースを復旧しないで最新の完全バックアップを復元してから、最新の差分バックアップを復元してデータベースを復旧します。

データベースを完全に復元する場合は、1 つの復元シーケンスを使用する必要があります。次の例は、データベースの全体復元シナリオの復元シーケンスで重要なオプションを示しています。復元シーケンスは、1 つ以上の復元フェーズによってデータを移動する、1 つ以上の復元操作で構成されます。説明の目的に関係しない構文や詳細は、省略しています。

データベースは完全バックアップ時の状態に復元されます。データベースを復元する際は、RECOVERY オプションを明示的に指定することをお勧めします。このオプションは既定値ですが、指定しておくと判別がつきやすくなります。

次の例では、まず BACKUP ステートメントを使用して、AdventureWorks データベースの完全バックアップと差分バックアップを作成します。その後、これらのバックアップを順に復元します。

ms186216.note(ja-jp,SQL.90).gifメモ :
この例の先頭では、ALTER DATABASE ステートメントを使用して復旧モデルを SIMPLE に設定しています。
USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
   WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH FILE=2, RECOVERY;
GO

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

データベース バックアップを復元する際に使用する、RESTORE の基本構文を次に示します。

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

ms186216.note(ja-jp,SQL.90).gifメモ :
データベースの差分バックアップも復元する場合は、WITH NORECOVERY を指定してください。

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

データベースの差分バックアップを復元する際に使用する、RESTORE の基本構文を次に示します。

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

SQL Server 管理オブジェクト (SMO) を使用してバックアップを復元するには

SQL Server の以前のバージョンのバックアップに対するサポート

SQL Server 2005 では、SQL Server 7.0、SQL Server 2000、または SQL Server 2005 を使用して作成されたデータベース バックアップを復元できます。ただし、SQL Server 7.0 または SQL Server 2000 を使用して作成された mastermodel、および msdb のバックアップは、SQL Server 2005 では復元できません。

SQL Server 2005 では、以前のバージョンとは異なる既定パスを使用します。そのため、SQL Server 7.0 または SQL Server 2000 の既定の場所で作成されたデータベースをバックアップから復元するには、MOVE オプションを使用する必要があります。新しい既定パスの詳細については、「SQL Server 2005 の既定のインスタンスおよび名前付きインスタンスのファイルの場所」を参照してください。

ms186216.note(ja-jp,SQL.90).gifメモ :
SQL Server 6.5 以前のバージョンで作成されたデータベース バックアップは互換性のない形式なので、SQL Server 2005 では復元できません。SQL Server 6.5 以前のバージョンを使用して作成されたデータベースを SQL Server 2005 にアップグレードする方法については、「SQL Server 6.5 以前のバージョンからのデータベースのコピー」を参照してください。

参照

概念

データベースの完全バックアップ
データベースの差分バックアップ
単純復旧モデルでのバックアップ
データベース復元時の復旧時間の短縮
単純復旧モデルの復元に関する制限事項
SQL Server でのバックアップの復元と復旧の動作について

その他の技術情報

RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL)
SQL Server データベースの復元シーケンスの処理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

新しい内容 :
  • 「データベース全体の復元」セクションに、RESTORE の基本構文を追加しました。
変更内容 :
  • 例の BACKUP ステートメントと RESTORE ステートメントで、論理バックアップ デバイスを指定するのではなく、DISK オプションを使用して物理バックアップ デバイスを指定するように変更しました。