データを復元しないデータベースの復旧 (Transact-SQL)

適用対象:SQL Server

通常、データベースを復旧する前に、SQL Server データベースのすべてのデータを復元します。 ただし、実際にバックアップを復元しなくても、復元操作でデータベースを復旧することは可能です。たとえば、データベースと一貫性のある読み取り専用ファイルを復旧する場合などです。 これは、 復旧のみの復元と呼ばれます。 オフライン データが既にデータベースと一貫性があり、データを使用可能にするだけでよい場合、復旧のみの復元を実行することで、データベースの復旧が完了し、データがオンラインになります。

復旧のみの復元は、データベース全体、1 つまたは複数のファイル、およびファイル グループに対して行うことができます。

復旧のみのデータベース復元

復旧のみのデータベース復元は、次の場合に役に立ちます。

  • 復元シーケンスで前回のバックアップを復元したときはデータベースを復旧しなかったが、現在そのデータベースを復旧してオンラインにする必要がある場合。

  • データベースがスタンバイ モードであり、別のログ バックアップを適用せずにそのデータベースを更新可能にする場合。

復旧のみのデータベース復元の RESTORE 構文は次のとおりです。

RESTORE DATABASE *database_name* WITH RECOVERY

注意

復旧のみの復元にはバックアップは必要ないので、FROM =<backup_device> 句は使用しません。

次の例では、データを復元しない復元操作で AdventureWorks2022 サンプル データベースを復旧します。

-- Restore database using WITH RECOVERY.  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY  

復旧のみのファイル復元

復旧のみのファイル復元は、次の場合に役に立ちます。

データベースを段階的に部分復元する場合。 プライマリ ファイル グループの復元が完了した後、復元されていないのに、新しいデータベースの状態と一貫性があるファイルが 1 つ以上ある場合。これはおそらく、しばらくの間読み取り専用であったことが原因です。 このようなファイルに対して必要な作業は、復旧のみです。データをコピーする必要はありません。

復旧のみの復元操作では、オフラインのファイル グループ内のデータをオンラインにします。データのコピー フェーズ、再実行フェーズ、および元に戻すフェーズはありません。 復元の各フェーズに関する詳細については、「復元と復旧の概要 (SQL Server)」を参照してください。

復旧のみのファイル復元の RESTORE 構文は次のとおりです。

RESTORE DATABASE *database_name* { FILE **=**_logical_file_name_ | FILEGROUP **=**_logical_filegroup_name_ }[ **,**...*n* ] WITH RECOVERY

次の例は、 SalesGroup2データベースのセカンダリ ファイル グループ Sales に含まれているファイルの復旧のみのファイル復元を示しています。 プライマリ ファイル グループは段階的な部分復元の最初の手順で既に復元されており、 SalesGroup2 は復元されたプライマリ ファイル グループと一貫性があります。 このファイル グループを復旧してオンラインにするために必要なのは、次に示す 1 つのステートメントだけです。

RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;  

復旧のみの復元を使用した段階的な部分復元シナリオの完了の例

単純復旧モデル

完全復旧モデル

参照

オンライン復元 (SQL Server)
段階的な部分復元 (SQL Server)
ファイルの復元 (単純復旧モデル)
ファイル復元 (完全復旧モデル)
RESTORE (Transact-SQL)
復元と復旧の概要 (SQL Server)