Kopieren von Transaktionsprotokoll-Backups - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kopieren von Transaktionsprotokoll-Backups

Rufen Sie die gespeicherte Prozedur rds_tlog_backup_copy_to_S3 auf, um eine Reihe verfügbarer Transaktionsprotokoll-Backups für eine einzelne Datenbank in Ihren Amazon-S3-Bucket zu kopieren. Die gespeicherte Prozedur rds_tlog_backup_copy_to_S3 initiiert eine neue Aufgabe zum Kopieren von Transaktionsprotokoll-Backups.

Anmerkung

Die gespeicherte Prozedur rds_tlog_backup_copy_to_S3 kopiert die Transaktionsprotokoll-Backups, ohne sie anhand eines is_log_chain_broken-Attributs zu validieren. Aus diesem Grund sollten Sie eine ununterbrochene Protokollkette manuell bestätigen, bevor Sie di gespeicherte Prozedur rds_tlog_backup_copy_to_S3 ausführen. Weitere Erläuterungen finden Sie unter Validierung der Backup-Protokollkette des Transaktionsprotokolls.

Beispiel Verwendung der gespeicherten Prozedur 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];

Die folgenden Eingabeparameter sind verfügbar:

Parameter Beschreibung

@db_name

Der Datenbankname, der zum Kopieren der Transaktionsprotokoll-Backups angegeben wurde

@kms_key_arn

Ein kundenseitig verwalteter KMS-Schlüssel. Wenn Sie Ihre DB-Instance mit einem von AWS verwalteten KMS-Schlüssel verschlüsseln, müssen Sie einen kundenseitig verwalteten Schlüssel erstellen. Wenn Sie Ihre DB-Instance mit einem kundenseitig verwalteten Schlüssel verschlüsseln, können Sie denselben KMS-Schlüssel-ARN verwenden.

@backup_file_start_time

Der UTC-Zeitstempel, wie er in der Spalte [backup_file_time_utc] der Funktion rds_fn_list_tlog_backup_metadata bereitgestellt wird.

@backup_file_end_time

Der UTC-Zeitstempel, wie er in der Spalte [backup_file_time_utc] der Funktion rds_fn_list_tlog_backup_metadata bereitgestellt wird.

@starting_lsn

Die Protokollsequenznummer (LSN), wie sie in der Spalte [starting_lsn] der Funktion rds_fn_list_tlog_backup_metadata angegeben ist

@ending_lsn

Die Protokollsequenznummer (LSN), wie sie in der Spalte [ending_lsn] der Funktion rds_fn_list_tlog_backup_metadata angegeben ist.

@rds_backup_starting_seq_id

Die Protokollsequenz-ID, wie sie in der Spalte [rds_backup_seq_id] der Funktion rds_fn_list_tlog_backup_metadata angegeben ist.

@rds_backup_ending_seq_id

Die Protokollsequenz-ID, wie sie in der Spalte [rds_backup_seq_id] der Funktion rds_fn_list_tlog_backup_metadata angegeben ist.

Sie können einen Satz von Zeit-, LSN- oder Sequenz-ID-Parametern angeben. Es ist nur ein Satz von Parametern erforderlich.

Sie können auch nur einen einzelnen Parameter in einem der Sätze angeben. Wenn Sie beispielsweise nur einen Wert für den backup_file_end_time-Parameter angeben, werden alle verfügbaren Transaktionsprotokoll-Backupdateien vor diesem Zeitpunkt innerhalb des Sieben-Tage-Limits in Ihren Amazon-S3-Bucket kopiert.

Im Folgenden sind die gültigen Eingabeparameterkombinationen für die gespeicherte Prozedur rds_tlog_backup_copy_to_S3 aufgeführt.

Angegebene Parameter Erwartetes Ergebnis
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';

Kopiert Transaktionsprotokoll-Backups der letzten sieben Tage und liegt zwischen dem angegebenen Bereich von backup_file_start_time und backup_file_end_time. In diesem Beispiel kopiert die gespeicherte Prozedur Transaktionsprotokoll-Backups, die zwischen '2022-08-23 00:00:00 'und '2022-08-30 00:00:00' generiert wurden.

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

Kopiert Transaktionsprotokoll-Backups der letzten sieben Tage und beginnt mit dem angegebenen Wert für backup_file_start_time. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups von '2022-08-23 00:00:00' bis zum letzten Transaktionsprotokoll-Backup.

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

Kopiert Transaktionsprotokoll-Backups der letzten sieben Tage bis zum angegebenen Wert für backup_file_end_time. In diesem Beispiel kopiert die gespeicherte Prozedur Transaktionsprotokoll-Backups von '2022-08-23 00:00:00' bis '2022-08-30 00:00:00'.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind und zwischen dem angegebenen Bereich von starting_lsn und ending_lsn liegen. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups der letzten sieben Tage mit einem LSN-Bereich zwischen 1490000000040007 und 1490000000050009.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind, ab dem für starting_lsn angegebenen Wert. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups von LSN 1490000000040007 bis zum letzten Transaktionsprotokoll-Backup.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind, bis zu dem für ending_lsn angegebenen Wert. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups ab der letzten sieben Tage bis zum LSN-Bereich 1490000000050009.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind und sich im angegebenen Bereich von rds_backup_starting_seq_id bis rds_backup_ending_seq_id befinden. In diesem Beispiel kopiert die gespeicherte Prozedur Transaktionsprotokoll-Backups ab den letzten sieben Tagen und innerhalb des angegebenen Sequenz-ID-Bereichs für RDS-Backups, beginnend bei seq_id 2000 bis seq_id 5000.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind, ab dem für rds_backup_starting_seq_id angegebenen Wert. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups ab seq_id 2000 bis zum letzten Transaktionsprotokoll-Backup.

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

Kopiert Transaktionsprotokoll-Backups, die in den letzten sieben Tagen verfügbar sind, bis zu dem für rds_backup_ending_seq_id angegebenen Wert. In diesem Beispiel kopiert die gespeicherte Prozedur die Transaktionsprotokoll-Backups ab der letzten sieben Tage bis zu seq_id 5000.

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

Kopiert ein einzelnes Transaktionsprotokoll-Backup mit der angegebenen rds_backup_starting_seq_id, sofern innerhalb der letzten sieben Tage verfügbar. Bei diesem Beispiel kopiert die gespeicherte Prozedur ein einzelnes Transaktionsprotokoll-Backup mit einer seq_id von 2000, falls es innerhalb der letzten sieben Tage existiert.

Validierung der Backup-Protokollkette des Transaktionsprotokolls

Für Datenbanken, die für den Zugriff auf Transaktionsprotokoll-Backups konfiguriert sind, muss die automatische Aufbewahrung von Backups aktiviert sein. Durch die automatische Aufbewahrung von Backups werden die Datenbanken auf der DB-Instance auf das FULL-Wiederherstellungsmodell eingestellt. Um die zeitpunktbezogene Wiederherstellung für eine Datenbank zu unterstützen, sollten Sie das Datenbank-Wiederherstellungsmodell nicht ändern, da dies zu einer fehlerhaften Protokollkette führen kann. Wir empfehlen, die Datenbank auf das FULL-Wiederherstellungsmodell einzustellen.

Um die Protokollkette manuell zu validieren, bevor Sie die Transaktionsprotokoll-Backups kopieren, rufen Sie die rds_fn_list_tlog_backup_metadata-Funktion auf und überprüfen Sie die Werte in der is_log_chain_broken-Spalte. Ein Wert von „1" gibt an, dass die Protokollkette zwischen dem aktuellen Protokoll-Backup und dem vorherigen Protokoll-Backup unterbrochen wurde.

Das folgende Beispiel zeigt eine defekte Protokollkette in der Ausgabe der gespeicherten Prozedur rds_fn_list_tlog_backup_metadata.

Ausgabe von rds_fn_list_tlog_backup_metadata mit Anzeige einer defekten Protokollkette.

In einer normalen Protokollette sollte der LSN-Wert (Log Sequence Number) für first_lsn für eine bestimmte rds_sequence_id mit dem Wert von last_lsn in der vorangegangenen rds_sequence_id übereinstimmen. In dem Bild hat die rds_sequence_id 45 einen first_lsn-Wert von 90987, was nicht mit dem last_lsn-Wert von 90985 für den vorangegangenen Wert von rds_sequence_id 44 übereinstimmt.

Weitere Informationen zur Transaktionsprotokollarchitektur und zu den Protokollsequenznummern von SQL Server finden Sie in der Dokumentation von Microsoft SQL Server unter Transaction Log Logical Architecture.