SQLServerには3つのリカバリモデルがあります。シンプル、フル、バルクログ。各データベースは、これらの設定の1つを使用します。
バックアップと復元の操作は、データベースのリカバリモデルのコンテキスト内で行われます
ALTER DATABASEを使用して、データベースのリカバリモデルを変更できます。 SET RECOVERYとともにステートメント オプション。
ALTER DATABASEを使用するときに使用できるオプション リカバリモデルを設定するには、次のようにします。
SIMPLE-
FULL -
BULK_LOGGED
ALTERが必要になります このような変更を行うためのデータベースの権限。
例
PetHotelというデータベースがあるとします。 。
sys.databasesにクエリを実行することで、現在のリカバリモデルを確認できます。 カタログビュー:
SELECT
name,
recovery_model_desc
FROM sys.databases
WHERE name = 'PetHotel'; 結果:
+----------+-----------------------+ | name | recovery_model_desc | |----------+-----------------------| | PetHotel | SIMPLE | +----------+-----------------------+
PetHotel データベースは現在、単純なリカバリモデルを使用しています。
完全復旧モデルに変更しましょう:
USE master;
ALTER DATABASE PetHotel
SET RECOVERY FULL; 完了しました。
結果を確認しましょう:
SELECT
name,
recovery_model_desc
FROM sys.databases
WHERE name = 'PetHotel'; 結果:
+----------+-----------------------+ | name | recovery_model_desc | |----------+-----------------------| | PetHotel | FULL | +----------+-----------------------+
リカバリモデルは指定どおりに正常に変更されました。
重要な考慮事項
単純リカバリモードから他のモードに切り替える場合、切り替えは最初のデータバックアップ後にのみ有効になります。
したがって、単純リカバリモードから完全または一括ログリカバリモデルに切り替えるとすぐに、データベースの完全バックアップまたは差分バックアップを作成してログチェーンを開始する必要があります。
からに切り替えた場合 シンプルリカバリモデルの場合は、トランザクションログをバックアップするためにスケジュールされたジョブを必ず無効にしてください(シンプルリカバリモデルはログバックアップを使用しません)。
また、バルクリカバリモデルは、特にバルク操作用です。この目的で完全復旧モデルから一括ロギングモデルに切り替える場合は、一括操作を実行した後、完全復旧モードに戻す必要があります。
一括ログ復旧モデルから完全復旧モデルに切り替えた後は、必ずログをバックアップしてください。
各リカバリモデルの概要については、MicrosoftWebサイトのリカバリモデルを参照してください。