トランザクションログのバックアップのコピー - Amazon Relational Database Service

トランザクションログのバックアップのコピー

個々のデータベースの利用可能なトランザクションログのバックアップセットを Amazon S3 バケットにコピーするには、rds_tlog_backup_copy_to_S3 ストアドプロシージャを呼び出します。rds_tlog_backup_copy_to_S3 ストアドプロシージャでは、トランザクションログのバックアップをコピーする新しいタスクを開始します。

注記

rds_tlog_backup_copy_to_S3 ストアドプロシージャでは、is_log_chain_broken 属性を検証せずにトランザクションログのバックアップをコピーします。このため、rds_tlog_backup_copy_to_S3 ストアドプロシージャを実行する前に、ログチェーンが壊れていないことを手動で確認する必要があります。追加の説明については、「トランザクションログのバックアップログチェーンの検証」を参照してください。

rds_tlog_backup_copy_to_S3 ストアドプロシージャの使用例
exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='mydatabasename', [@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@backup_file_start_time='2022-09-01 01:00:15'], [@backup_file_end_time='2022-09-01 21:30:45'], [@starting_lsn=149000000112100001], [@ending_lsn=149000000120400001], [@rds_backup_starting_seq_id=5], [@rds_backup_ending_seq_id=10];

次の入力パラメータが利用可能です。

パラメータ 説明

@db_name

トランザクションログのバックアップをコピーするためのデータベース名。

@kms_key_arn

カスタマーマネージド KMS キー。AWS マネージド KMS キーで DB インスタンスを暗号化する場合は、カスタマーマネージドキーを作成する必要があります。カスタマーマネージドキーで DB インスタンスを暗号化する場合、同じ KMS キー ARN を使用できます。

@backup_file_start_time

rds_fn_list_tlog_backup_metadata 関数の [backup_file_time_utc] 列から提供された UTC タイムスタンプ。

@backup_file_end_time

rds_fn_list_tlog_backup_metadata 関数の [backup_file_time_utc] 列から提供された UTC タイムスタンプ。

@starting_lsn

rds_fn_list_tlog_backup_metadata 関数の [starting_lsn] 列から提供されたログシーケンス番号 (LSN)

@ending_lsn

rds_fn_list_tlog_backup_metadata 関数の [ending_lsn] 列から提供されたログシーケンス番号 (LSN)。

@rds_backup_starting_seq_id

rds_fn_list_tlog_backup_metadata 関数の [rds_backup_seq_id] 列から提供されたシーケンス ID。

@rds_backup_ending_seq_id

rds_fn_list_tlog_backup_metadata 関数の [rds_backup_seq_id] 列から提供されたシーケンス ID。

時間、LSN、シーケンス ID のいずれかのパラメータセットを指定できます。必要なパラメータは 1 セットだけです。

また、どのセットでもパラメータを 1 つだけ指定できます。例えば、backup_file_end_time パラメータの値のみを指定すると、7 日間の制限内であれば、それ以前に利用可能なすべてのトランザクションログのバックアップファイルが Amazon S3 バケットにコピーされます。

rds_tlog_backup_copy_to_S3 ストアドプロシージャの有効な入力パラメータの組み合わせは次のとおりです。

指定されたパラメータ 予想される結果
exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_start_time='2022-08-23 00:00:00', @backup_file_end_time='2022-08-30 00:00:00';

過去 7 日間のトランザクションログのバックアップをコピーします。このバックアップは、指定された backup_file_start_time から backup_file_end_time の範囲に存在します。この例では、ストアドプロシージャは「2022-08-23 00:00:00」から「2022-08-30 00:00:00」の間に生成されたトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_start_time='2022-08-23 00:00:00';

指定された backup_file_start_time を起点として、過去 7 日間のトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは「2022-08-23 00:00:00」のトランザクションログのバックアップを最新のトランザクションログのバックアップにコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_end_time='2022-08-30 00:00:00';

指定された backup_file_end_time まで、過去 7 日間のトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは「2022-08-23 00:00:00」から「2022-08-30 00:00:00」までのトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @starting_lsn =1490000000040007, @ending_lsn = 1490000000050009;

過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。このバックアップは、指定された starting_lsn から ending_lsn の範囲にあります。この例では、ストアドプロシージャは、LSN 範囲が 1490000000040007 から 1490000000050009 までの過去 7 日間のトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @starting_lsn =1490000000040007;

指定された starting_lsn から、過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは LSN 1490000000040007 からのトランザクションログのバックアップを最新のトランザクションログのバックアップにコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @ending_lsn =1490000000050009;

指定された ending_lsn まで、過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは、LSN が 1490000000050009 までの過去 7 日間のトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000, @rds_backup_ending_seq_id= 5000;

過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。このバックアップは、指定された rds_backup_starting_seq_id から rds_backup_ending_seq_id の範囲に存在します。この例では、ストアドプロシージャは、seq_id 2000 から seq_id 5000 までの rds バックアップシーケンス ID の範囲内で、過去 7 日間のトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000;

指定された rds_backup_starting_seq_id から、過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは seq_id 2000 から始まる最新のトランザクションログのバックアップを最新のトランザクションログのバックアップにコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_ending_seq_id= 5000;

指定された rds_backup_ending_seq_id まで、過去 7 日間の利用可能なトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは、seq_id 5000 までの過去 7 日間のトランザクションログのバックアップをコピーします。

exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000; @rds_backup_ending_seq_id= 2000;

過去 7 日以内に利用可能な場合、指定された rds_backup_starting_seq_id で 1 つのトランザクションログのバックアップをコピーします。この例では、ストアドプロシージャは、seq_id が 2000 の 1 つのトランザクションログのバックアップをコピーします (過去 7 日以内に存在する場合)。

トランザクションログのバックアップログチェーンの検証

トランザクションログのバックアップにアクセスするように設定されたデータベースでは、自動バックアップ保持が有効になっている必要があります。自動バックアップ保持により、DB インスタンスのデータベースが FULL 復旧モデルに設定されます。データベースのポイントインタイム復元をサポートするには、データベース復旧モデルを変更しないでください。データベース復旧モデルを変更すると、ログチェーンが壊れる可能性があります。データベースは FULL 復旧モデルに設定しておくことをお勧めします。

トランザクションログのバックアップをコピーする前にログチェーンを手動で検証するには、rds_fn_list_tlog_backup_metadata 関数を呼び出して is_log_chain_broken 列の値を確認します。値が「1」の場合、現在のログのバックアップと前回のログのバックアップの間でログチェーンが壊れていたことを示します。

次の例は、rds_fn_list_tlog_backup_metadata ストアドプロシージャからの出力のログチェーンが壊れていることを示しています。

rds_fn_list_tlog_backup_metadata からの出力で、壊れたログチェーンを表示します。

通常のログチェーンでは、特定の rds_sequence_id の first_lsn のログシーケンス番号 (LSN) 値は、前の rds_sequence_id の last_lsn の値と一致する必要があります。この図では、rds_sequence_id が 45 の first_lsn の値は 90987 ですが、その前の rds_sequence_id が 44 の last_lsn 値 90985 と一致しません。

SQL Server のトランザクションログアーキテクチャとログシーケンス番号の詳細については、Microsoft SQL Server ドキュメントの「トランザクションログの論理アーキテクチャ」を参照してください。