Amazon Relational Database Service (RDS) for SQL Server インスタンスのバックアップウィンドウが閉じられた後に、Emergent Snapshot や自分のスナップショットが実行されているのはなぜですか?
簡単な説明
Emergent Snapshot は、次の理由により Amazon RDS によって必要に応じて自動的にバックアップされます。
- SIMPLE 復旧モデルを使用した新しいデータベースの復元または作成。
- シングルアベイラビリティゾーン (AZ) インスタンスとマルチアベイラビリティゾーン (AZ) インスタンスの両方で、復旧モデルを FULL から SIMPLE/一括ログに変更。
- ポイントインタイムリカバリ (PiTR) では、RDS は DB インスタンスのトランザクションログバックアップを 5 分おきに Amazon Simple Storage Service (Amazon S3) にアップロードします。RDS がトランザクションログのバックアップを正常に取得できない場合、PiTR 中の問題を緩和するために RDS によって Emergent Snapshot がトリガーされます。
- インスタンスのパッチ適用が完了すると、RDS は Emergent Snapshot をトリガーしてインスタンスを保護します。
Amazon RDS インスタンスは、次のいずれかの方法を使用してバックアップできます。
- DB スナップショットを作成することによって、DB インスタンスを手動でバックアップします。詳細については、「DB スナップショットの作成」を参照してください。
- 自動バックアップがオンになっていることを確認することによって、DB インスタンスを自動的にバックアップします。Amazon RDS は、DB インスタンスのバックアップウィンドウ中に自動バックアップを作成して保存します。
DB インスタンスを手動または自動でバックアップすると、RDS イベントに [Backing up DB instance] (DB インスタンスのバックアップ) イベントが記録されます。自動バックアップは、希望するバックアップウィンドウに毎日実行されます。また、RDS イベントで [Emergent Snapshot Request: Databases found to still be awaiting snapshot] (Emergent Snapshot リクエスト: データベースがまだスナップショット待ちであることが判明しました) というイベントを確認すると、自動アドホックバックアップが作成されます。この自動アドホックバックアップは、インスタンスのバックアップウィンドウ外で実行されます。
注: Emergent Snapshot は正常であり、想定どおりの動作です。
解決方法
Emergent Snapshot の理由を特定するには、SQL Server エンジンのログを確認します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで、[Databases] (データベース) を選択します。
- 表示するログファイルがある DB インスタンスの名前を選択します。
- [Logs & events] (ログとイベント) タブを選択します。
- [Logs] (ログ) セクションまで下方向にスクロールします。
- (オプション) 検索用の単語を入力して結果をフィルタリングします。
- 表示するログを選択し、[View] (表示) を選択します。
Emergent Snapshot の直前にログ記録される Amazon RDS for SQL Server ログを確認して、次のようなメッセージを特定します。
BACKUP failed to complete the command BACKUP LOG Test_Database. Check the backup application log for detailed messages.
Setting database option RECOVERY to SIMPLE for database 'Test_Database'
Restore is complete on database 'Test_Database'. The database is now available.
Starting up database 'Test_Database'.
Amazon RDS for SQL Server のログには、ログバックアップの失敗と、データベース復旧モデルが SIMPLE に変更されたことが示されています。また、インスタンスで復元された新しいデータベースまたは作成された新しいデータベースも示します。
パッチが適用されたインスタンスを特定するには、RDS イベントを確認して、[Applying off-line patches to DB instance] (DB インスタンスへのオフラインパッチの適用) のようなイベントを探します。