Wie führe ich native Backups einer DB-Instance auf Amazon RDS durch, auf der SQL Server ausgeführt wird?

Lesedauer: 4 Minute
0

Ich möchte wissen, wie ich native Backups meiner SQL-Server-Datenbanken auf Amazon RDS durchführe und die Backups in Amazon S3 speichere. Ich möchte herausfinden, wie ich diese Backups auf derselben oder einer anderen RDS-DB-Instance wiederherstellen kann, auf der SQL Server ausgeführt wird.

Kurzbeschreibung

Mit Amazon-RDS-Backups kannst du die Backup-Datei in Amazon Simple Storage Service (Amazon S3) speichern. Du kannst die Datenbank-Backup-Datei auch für die Wiederherstellung auf derselben oder einer anderen DB-Instance des Typs Amazon RDS for SQL Server verwenden.

Amazon RDS unterstützt native Backups und Wiederherstellungen für Microsoft-SQL-Server-Datenbanken. Du kannst ein vollständiges Backup deiner On-Premises-Datenbank erstellen und die Datei in Amazon S3 speichern. Anschließend kannst du das Backup in einer vorhandenen DB-Instance von Amazon RDS wiederherstellen, auf der SQL Server ausgeführt wird. Du kannst dieses Backup auch auf einem lokalen Server oder auf einer anderen DB-Instance von Amazon RDS wiederherstellen, auf der SQL Server ausgeführt wird. Weitere Informationen findest du unter Wiederherstellen einer Sicherung auf der Microsoft-Website.

Lösung

Bevor du mit dem nativen Backup beginnst, stelle sicher, dass du über die folgenden Komponenten verfügst:

Gehe folgendermaßen vor, um eine native Sicherung der SQL-Server-Datenbank einzurichten:

  1. Öffne die Amazon-RDS-Konsole und wähle im Navigationsbereich Optionsgruppen aus.
  2. Wähle Gruppe erstellen aus und gib den Namen, die Beschreibung, die Engine und die Engine-Version deines Servers ein.
  3. Wähle Erstellen aus.
  4. Wähle die Optionsgruppe aus, die du erstellt hast, und wähle Option hinzufügen aus.
  5. Wähle SQLSERVER_BACKUP_RESTORE aus. Es hat sich bewährt, eine neue IAM-Rolle zu erstellen und dann Option hinzufügen auszuwählen, damit deine IAM-Rolle über die erforderlichen Berechtigungen verfügt.
  6. Wähle deinen S3-Bucket aus oder erstelle einen neuen S3-Bucket.
  7. Wähle dann Sofort anwenden und Option hinzufügen aus.
  8. Ordne die Optionsgruppe der DB-Instance zu, indem du im Navigationsbereich Datenbanken und dann die Instance auswählst, die gesichert werden soll.
  9. Wähle Aktionen und dann Ändern aus.
  10. Wähle unter Datenbankoptionen die Optionsgruppe aus, die du erstellt hast, und klicke auf Sofort anwenden und Weiter.
  11. Überprüfe die Informationen und wähle dann DB-Instance ändern aus. Diese Änderung der Optionsgruppe führt nicht zu Ausfallzeit, da kein Instance-Neustart erforderlich ist.
  12. Warten Sie, bis sich der Status von Ausstehend in Verfügbar ändert. Verwende dann den Hauptbenutzer deiner RDS-Instance, um über SQL Server Management Studio eine Verbindung zur DB-Instance herzustellen.
  13. Wähle dann Neue Abfrage aus und gib eine der folgenden SQL-Anweisungen ein, um das Backup der gewünschten Datenbank zu starten:

Starten des Backups für unverschlüsselte Datenbanken

exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@overwrite_S3_backup_file=1;

Starten des Backups für verschlüsselte Datenbanken

exec msdb.dbo.rds_backup_database @source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',  
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_S3_backup_file=1;

Hinweis: Ersetze in diesen Beispielen database_name, bucket_name, file_name_and_extension, region, account-id und key-id so, dass sie deinem Szenario entsprechen. Du kannst das im S3-Bucket generierte Backup verwenden, um die Benutzerdatenbank auf einer neuen RDS-DB-Instance wiederherzustellen. Wenn die gespeicherte Prozedur rds_backup_database oder rds_restore_database aufgerufen wird, wird die Aufgabe gestartet und die Informationen über die Aufgabe werden ausgegeben.

Wenn der Lebenszyklusstatus der Aufgabe ERFOLG lautet, ist die Aufgabe abgeschlossen. Anschließend kannst du die Amazon-S3-Konsole öffnen, den Bucket auswählen, in dem du das Backup der Benutzerdatenbank erstellt hast, und die Backup-Datei anzeigen. Um die DB-Instance wiederherzustellen, lade diese Datei herunter oder verwende die Backup-Datei der Benutzerdatenbank. Du kannst dieselbe DB-Instance des Typs Amazon RDS for SQL Server oder in einer neuen RDS-DB-Instance wiederherstellen.

Verwende eine der folgenden SQL-Anweisungen, um die Wiederherstellung aus dem im S3-Bucket verfügbaren Backup durchzuführen:

Wiederherstellen unverschlüsselter Datenbanken

exec msdb.dbo.rds_restore_database @restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

Wiederherstellen verschlüsselter Datenbanken

exec msdb.dbo.rds_restore_database @restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3::: bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';

Du kannst die Aufgaben-ID abrufen, nachdem du die Backup- oder Wiederherstellungsanweisung ausgeführt hast. Oder du kannst das folgende Skript verwenden, um alle abgeschlossenen und ausstehenden Aufgaben für eine bestimmte Datenbank zu identifizieren:

exec msdb.dbo.rds_task_status @db_name='database_name'

Verwende diese SQL-Anweisung, um den Status des Auftrags zu verfolgen:

exec msdb..rds_task_status @task_id= 5

Eine Liste potenzieller Fehler und Lösungen findest du unter Migrating Microsoft SQL Server Enterprise Workloads to Amazon RDS.

Verwandte Informationen

Introduction to backups

Backing up, restoring, and exporting data

Importing and exporting SQL Server databases using native backup and restore