Importieren und Exportieren von SQL-Server-Datenbanken - Amazon Relational Database Service

Importieren und Exportieren von SQL-Server-Datenbanken

Amazon RDS unterstützt die native Sicherung und Wiederherstellung für Microsoft SQL Server-Datenbanken unter Verwendung von vollständigen Sicherungsdateien (.bak-Dateien). Bei RDS greifen Sie auf in Amazon S3 gespeicherte Daten zu, anstatt das lokale Datensystem des Datenbankservers zu nutzen.

Beispielsweise können Sie auf Ihrem lokalen Server eine vollständige Sicherung erstellen, diese in S3 speichern und anschließend in einer verfügbaren Amazon RDS-DB-Instance wiederherstellen. Ebenso können Sie über RDS Sicherungen erstellen, in S3 speichern und dann dort wiederherstellen, wo Sie dies möchten.

Die native Sicherung und Wiederherstellung ist in allen AWS-Regionen für Single-AZ- und Multi-AZ-DB-Instances verfügbar, einschließlich Multi-AZ-DB-Instances mit Lesereplikaten (Read Replicas). Native Sicherung und Wiederherstellung ist für alle in Amazon RDS unterstützten Versionen von Microsoft SQL Server verfügbar.

Das folgende Diagramm veranschaulicht die unterstützten Szenarien.


			Architektur für native Sicherung und Wiederherstellung

Die Verwendung nativer .bak-Dateien ist i. d. R. die schnellste Methode zum Sichern und Wiederherstellen von Datenbanken. Es gibt viele zusätzliche Vorteile bei der Verwendung von nativer Sicherung und Wiederherstellung. Sie können z. B. Folgendes tun:

  • Migrieren von Datenbanken zu oder aus Amazon RDS

  • Verschieben von Datenbanken zwischen RDS SQL Server DB-Instances

  • Migrieren von Daten, Schemata, gespeicherten Prozeduren, Auslösern und anderem Datenbankcode in .bak-Dateien.

  • Einzelne Datenbanken anstelle von ganzen DB-Instances sichern und wiederherstellen

  • Erstellen Sie Kopien von Datenbanken zu Entwicklungs-, Test-, Schulungs- und Demozwecken.

  • Speichern und übertragen Sie Sicherungsdateien mit Amazon S3, um zusätzlichen Schutz für die Notfallwiederherstellung zu gewährleisten.

Einschränkungen und Empfehlungen

Folgende Einschränkungen gelten bei der Verwendung von nativer Sicherung und Wiederherstellung:

  • Sie können keine Sicherungen zu einem Amazon S3-Bucket in einer AWS-Region ausführen, die sich von der Ihrer Amazon RDS-DB-Instance unterscheidet, oder Wiederherstellungen aus einem solchen Bucket ausführen.

  • Es wird dringend davon abgeraten, Sicherungen aus einer Zeitzone für eine andere Zeitzone wiederherzustellen. Wenn Sie Sicherungen aus einer bestimmten Zeitzone in einer anderen Zeitzone wiederherstellen, müssen Sie Ihre Abfragen und Anwendungen auf mögliche Auswirkungen der Zeitzonenänderung überprüfen.

  • Amazon S3 hat eine Größenbeschränkung von 5 TB pro Datei. Für systemeigene Sicherungen größerer Datenbanken können Sie Multidatei-Backups verwenden.

  • Die maximale Datenbankgröße, die zu S3 gesichert werden kann, hängt vom verfügbaren Arbeitsspeicher, der CPU, der E/A-Leistung und den Netzwerkressourcen der DB-Instance ab. Je größer die Datenbank ist, umso mehr Speicher verbraucht der Sicherungsagent. Unsere Tests zeigen, dass Sie eine komprimierte Sicherung einer 16-TB-Datenbank auf unseren Instance-Typen der neusten Generation von Instance-Größen mit 2xlarge und größer erstellen können, wenn ausreichende Systemressourcen vorhanden sind.

  • Sie können gleichzeitig in nicht mehr als 10 Sicherungsdateien sichern oder aus ihnen wiederherstellen.

  • Eine differentielle Sicherung basiert auf der letzten vollständigen Sicherung. Damit differentielle Sicherungen funktionieren, darf kein Snapshot zwischen der letzten vollständigen Sicherung und der differentiellen Sicherung aufgenommen werden. Wenn Sie eine differentielle Sicherung erstellen möchten, aber ein manueller oder automatisierter Snapshot vorhandene ist, erstellen Sie eine weitere vollständige Sicherung, bevor Sie mit der differentiellen Sicherung fortfahren.

  • Differenzielle und Protokollwiederherstellungen werden für Datenbanken mit Dateien, deren file_guid (eindeutige ID) auf NULL eingestellt ist, nicht unterstützt.

  • Sie können bis zu zwei Backup- oder Wiederherstellungsaufgaben gleichzeitig ausführen.

  • Sie können keine systemeigenen Protokollsicherungen von SQL Server auf Amazon RDS ausführen.

  • RDS unterstützt native Wiederherstellungen von Datenbanken mit einer Größe bis zu 16 TB. Native Wiederherstellungen von Datenbanken auf SQL Server Express Edition sind auf 10 GB beschränkt.

  • Eine native Sicherung der Datenbank ist nicht möglich während des Wartungsfensters bzw. während Amazon RDS einen Snapshot der Datenbank aufnimmt. Wenn sich eine native Sicherungsaufgabe mit dem täglichen RDS-Sicherungsfenster überschneidet, wird die native Sicherungsaufgabe abgebrochen.

  • Bei Multi-AZ-DB-Instances können Sie nur Datenbanken nativ wiederherstellen, die im vollständigen Wiederherstellungsmodell gesichert wurden.

  • Die Wiederherstellung aus differentiellen Sicherungen auf Multi-AZ-Instances wird nicht unterstützt.

  • Das Aufrufen der RDS-Verfahren zur nativen Sicherung und Wiederherstellung innerhalb einer Transaktion wird nicht unterstützt.

  • Verwenden Sie zur Verschlüsselung Ihrer Sicherungen einen symmetrischen AWS KMS-Kundenmasterschlüssel (CMK) verwenden. Amazon RDS unterstützt keine asymmetrischen CMKs. Weitere Informationen finden Sie unter Verwenden von symmetrischen und asymmetrischen Schlüsseln im AWS Key Management Service Developer Guide.

  • Native Sicherungsdateien werden anhand des angegebenen AWS KMS-CMK verschlüsselt, der den Krypto-Modus „Nur Verschlüsselung“ nutzt. Bei der Wiederherstellung verschlüsselter Sicherheitsdateien sollten Sie stets bedenken, dass diese Dateien mit dem Krypto-Modus "Nur Verschlüsselung" verschlüsselt wurden.

  • Eine Datenbank, die eine FILESTREAM-Dateigruppe enthält, kann nicht wiederhergestellt werden.

Wenn Ihre Datenbank beim Anlegen, Kopieren und Wiederherstellen der Sicherungsdatei offline sein kann, empfehlen wir, Ihre Datenbank mithilfe nativer Sicherung und Wiederherstellung zu RDS zu migrieren, Wenn Ihre Datenbank vor Ort nicht offline sein kann, empfiehlt sich die Verwendung von AWS Database Migration Service für die Migration Ihrer Datenbank zu Amazon RDS. Weitere Informationen finden Sie unter Was ist AWS Database Migration Service?

Native Sicherung und Wiederherstellung ist nicht als Ersatz für die Datenwiederherstellungsfunktionen der regionsübergreifenden Snapshot-Kopierfunktion gedacht. Sie sollten die Snapshot-Kopierfunktion nur zum Kopieren Ihres Datenbank-Snapshots in eine andere AWS-Region für regionenübergreifende Notfallwiederherstellung in Amazon RDS verwenden. Weitere Informationen finden Sie unter Kopieren eines -Snapshots.

Einrichtung für native Sicherung und Wiederherstellung

Zum Einrichten der nativen Sicherung und Wiederherstellung benötigen Sie drei Komponenten:

  1. Einen Amazon S3-Bucket zum Speichern Ihrer Sicherungsdateien

    Sie müssen für Ihre Sicherungsdateien einen S3-Bucket verwenden und dann die Sicherungen hochladen, die Sie zu RDS migrieren möchten. Wenn Sie bereits über einen Amazon S3-Bucket verfügen, können Sie diesen verwenden. Andernfalls können Sie einen Bucket erstellen. Alternativ können Sie wählen, dass ein neuer Bucket für Sie erstellt wird, wenn Sie die Option SQLSERVER_BACKUP_RESTORE mithilfe der AWS Management Console hinzufügen.

    Für Informationen zur Verwendung von S3 können Sie dem Amazon Simple Storage Service Handbuch Erste Schritte eine einfache Einführung entnehmen. Detaillierte Informationen finden Sie im Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

  2. Eine AWS Identity and Access Management (IAM)-Rolle für den Zugriff auf den Bucket.

    Wenn Sie bereits über eine IAM-Rolle verfügen, können Sie diese verwenden. Alternativ können Sie wählen, dass eine neue IAM-Rolle für Sie erstellt wird, wenn Sie die Option SQLSERVER_BACKUP_RESTORE mithilfe der AWS Management Console hinzufügen. Alternativ können Sie manuell eine neue Rolle erstellen.

    Wenn Sie eine neue IAM-Rolle manuell erstellen möchten, verwenden Sie die Methode, die im nächsten Abschnitt besprochen wird. Führen Sie dasselbe aus, wenn Sie einer vorhandenen IAM-Rolle Vertrauensstellungen und Berechtigungsrichtlinien zuordnen möchten.

  3. Die Option SQLSERVER_BACKUP_RESTORE in einer Optionsgruppe auf Ihrer DB-Instance

    Zur Aktivierung der nativen Sicherung und Wiederherstellung auf Ihrer DB-Instance fügen Sie einer Optionsgruppe auf Ihrer DB-Instance die Option SQLSERVER_BACKUP_RESTORE hinzu. Weitere Informationen und Anweisungen finden Sie unter Unterstützung für native Sicherung und Wiederherstellung in SQL Server.

Manuelles Erstellen einer IAM-Rolle für native Sicherung und Wiederherstellung

Wenn Sie manuell eine neue IAM-Rolle zur Verwendung mit nativer Sicherung und Wiederherstellung erstellen möchten, ist dies möglich. In diesem Fall erstellen Sie eine Rolle für die Delegierung der Berechtigungen vom Amazon RDS-Service zu Ihrem Amazon S3-Bucket. Wenn Sie eine IAM-Rolle erstellen, fügen Sie eine Vertrauensstellung und eine Berechtigungsrichtlinie an. Die Vertrauensstellung ermöglicht es RDS, diese Rolle zu übernehmen. Die Berechtigungsrichtlinie definiert die Aktionen, die über diese Rolle ausgeführt werden können. Weitere Informationen zum Erstellen der Rolle finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service.

Für die Funktion zur nativen Sicherung und Wiederherstellung verwenden Sie ähnliche Vertrauensbeziehungen und Berechtigungsrichtlinien wie in den in diesem Abschnitt gezeigten Beispielen. Im folgenden Beispiel wird der Dienstprinzipalname rds.amazonaws.com als Alias für alle Dienstkonten verwendet. In den anderen Beispielen wird durch Angabe eines Amazon-Ressourcennamens (ARN) einem anderen Konto, einem anderen Benutzer oder einer anderen Rolle der Zugriff auf die Vertrauensrichtlinie gewährt.

Beispiel Vertrauensbeziehung für native Sicherung und Wiederherstellung

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

Im folgenden Beispiel wird ein ARN zur Angabe einer Ressource verwendet. Weitere Informationen zur Verwendung von ARNs finden Sie unter Amazon-Ressourcennamen (ARNs).

Beispiel Berechtigungsrichtlinie für native Sicherung und Wiederherstellung ohne Verschlüsselungsunterstützung

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/*" } ] }

Beispiel Berechtigungsrichtlinie für native Sicherung und Wiederherstellung mit Verschlüsselungsunterstützung

Wenn Sie Ihre Sicherungsdateien verschlüsseln möchten, geben Sie in Ihrer Berechtigungsrichtlinie einen Verschlüsselungsschlüssel an. Weitere Informationen zu Verschlüsselungsschlüsseln finden Sie unter Erste Schritte im AWS Key Management Service Developer Guide.

Anmerkung

Sie müssen zur Verschlüsselung Ihrer Sicherungen einen symmetrischen AWS KMS-Kundenmasterschlüssel (CMK) verwenden. Amazon RDS unterstützt keine asymmetrischen CMKs. Weitere Informationen finden Sie unter Verwenden von symmetrischen und asymmetrischen Schlüsseln im AWS Key Management Service Developer Guide.

Die IAM-Rolle muss darüber hinaus ein Schlüsselbenutzer und Schlüsseladministrator für den AWS KMS-CMK sein, d. h., sie muss in der Schlüsselrichtlinie angegeben werden. Weitere Informationen finden Sie unter Erstellen symmetrischer CMKs im AWS Key Management Service Developer Guide.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/*" } ] }

Verwenden von nativer Sicherung und Wiederherstellung

Sobald Sie native Sicherung und Wiederherstellung konfiguriert haben, können Sie mit deren Verwendung beginnen. Bauen Sie zuerst eine Verbindung zu Ihrer Microsoft SQL Server-Datenbank auf, und rufen Sie dann eine gespeicherte Amazon RDS-Prozedur auf, um die Aufgabe zu erledigen. Anleitungen zum Herstellen einer Verbindung zu Ihrer Datenbank finden Sie unter Herstellen einer Verbindung zu einer DB-Instance in der Microsoft SQL Server-Datenbank-Engine.

Einige der gespeicherten Prozeduren verlangen, dass Sie einen Amazon-Ressourcennamen (ARN) für Ihren Amazon S3-Bucket und die Datei angeben. Das Format Ihres ARN ist arn:aws:s3:::bucket_name/file_name.extension. Amazon S3 erfordert keine Kontonummer oder AWS-Region in ARNs.

Wenn Sie auch einen optionalen AWS KMS-Kundenmasterschlüssel (CMK) angeben, lautet das Format für die ARN des Schlüssels arn:aws:kms:region:account-id:key/key-id. Weitere Informationen finden Sie unter Amazon-Ressourcennamen (ARNs) und AWS-Service-Namespaces. Sie müssen zur Verschlüsselung Ihrer Sicherungen einen symmetrischen AWS KMS-Kundenmasterschlüssel (CMK) verwenden. Amazon RDS unterstützt keine asymmetrischen CMKs. Weitere Informationen finden Sie unter Verwenden von symmetrischen und asymmetrischen Schlüsseln im AWS Key Management Service Developer Guide.

Anmerkung

Unabhängig davon, ob Sie einen KMS-CMK verwenden, aktivieren die systemeigenen Sicherungs- und Wiederherstellungsaufgaben standardmäßig die serverseitige Advanced Encryption Standard (AES) 256-Bit-Verschlüsselung für Dateien, die zu S3 hochgeladen werden.

Anleitungen zum Aufrufen der einzelnen gespeicherten Prozeduren finden Sie in den folgenden Themen:

Sichern einer Datenbank

Verwenden Sie zum Sichern Ihrer Datenbank die gespeicherte Prozedur rds_backup_database.

Anmerkung

Eine Sicherung der Datenbank ist nicht möglich während des Wartungsfensters, oder wenn Amazon RDS gerade einen Snapshot der Datenbank erfasst.

Verwendung

exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension', [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@overwrite_s3_backup_file=0|1], [@type='DIFFERENTIAL|FULL'], [@number_of_files=n];

Die folgenden Parameter sind erforderlich:

  • @source_db_name – Der Name der zu sichernden Datenbank.

  • @s3_arn_to_backup_to – Der ARN, der den Amazon S3-Bucket für die Sicherung angibt, mit dem Namen der Sicherungsdatei.

    Die Datei kann eine beliebige Erweiterung haben, üblicherweise wird jedoch .bak verwendet.

Die folgenden Parameter sind optional:

  • @kms_master_key_arn – Der ARN für den symmetrischen AWS KMS-CMK, der zum Verschlüsseln des Elements verwendet wird.

    • Sie können den Standard-Verschlüsselungsschlüssel nicht verwenden. Wenn Sie den Standardschlüssel verwenden, wird die Datenbank nicht gesichert.

    • Wenn Sie keine AWS KMS-Schlüsselkennung angeben, wird die Sicherungsdatei nicht verschlüsselt. Weitere Informationen finden Sie unter Verschlüsseln von Amazon RDS-Ressourcen.

    • Wenn Sie einen AWS KMS-CMK angeben, wird die clientseitige Verschlüsselung verwendet.

    • Amazon RDS unterstützt keine asymmetrischen CMKs. Weitere Informationen finden Sie unter Verwenden von symmetrischen und asymmetrischen Schlüsseln im AWS Key Management Service Developer Guide.

  • @overwrite_s3_backup_file – Ein Wert, der angibt, ob eine vorhandene Sicherungsdatei überschrieben werden soll.

    • 0 – Eine vorhandene Datei wird nicht überschrieben. Dieser Wert ist der Standard.

      Wenn Sie @overwrite_s3_backup_file auf 0 setzen, wird ein Fehler ausgegeben, wenn die Datei bereits vorhanden ist.

    • 1 – Eine vorhandene Datei mit dem angegebenen Namen wird überschrieben, auch wenn es sich nicht um eine Sicherungsdatei handelt.

  • @type – Der Typ der Sicherung.

    • DIFFERENTIAL – Erstellt eine differentielle Sicherung.

    • FULL – Erstellt eine vollständige Sicherung. Dieser Wert ist der Standard.

    Eine differentielle Sicherung basiert auf der letzten vollständigen Sicherung. Damit differentielle Sicherungen funktionieren, darf kein Snapshot zwischen der letzten vollständigen Sicherung und der differentiellen Sicherung aufgenommen werden. Wenn Sie eine differentielle Sicherung erstellen wollen und ein Snapshot existiert, erstellen Sie eine weitere vollständige Sicherung, bevor Sie mit der differentiellen Sicherung fortfahren.

    Sie können die letzte vollständige Sicherung oder den Snapshot mit der folgenden Beispiel-SQL-Abfrage suchen:

    select top 1 database_name , backup_start_date , backup_finish_date from msdb.dbo.backupset where database_name='mydatabase' and type = 'D' order by backup_start_date desc;
  • @number_of_files – Die Anzahl der Dateien, in die die Sicherung aufgeteilt wird (aufgeschlüsselt). Die maximale Anzahl ist 10.

    • Die Sicherung mehrerer Dateien wird sowohl für vollständige als auch für differenzielle Sicherungen unterstützt.

    • Wenn Sie den Wert 1 eingeben oder den Parameter weglassen, wird eine einzelne Sicherungsdatei erstellt.

    Geben Sie das Präfix an, das den Dateien gemeinsam ist, und danach das Suffix mit einem Sternchen (*). Das Sternchen kann sich an einer beliebigen Stelle im file_name-Teil des S3-ARN befinden. Das Sternchen wird durch eine Reihe von alphanumerischen Zeichenfolgen in den generierten Dateien ersetzt, beginnend mit 1-of-number_of_files.

    Wenn beispielsweise die Dateinamen im S3-ARN backup*.bak lauten und Sie @number_of_files=4 festlegen, sind die generierten Sicherungsdateien backup1-of-4.bak, backup2-of-4.bak, backup3-of-4.bak und backup4-of-4.bak.

    • Wenn einer der Dateinamen bereits vorhanden und @overwrite_s3_backup_file 0 ist, wird ein Fehler ausgegeben.

    • Sicherungen mehrerer Dateien können nur ein Sternchen im file_name-Teil des S3-ARN haben.

    • Sicherungen einer einzelnen Datei können beliebig viele Sternchen im file_name-Teil des S3-ARN haben. Sternchen werden nicht aus dem generierten Dateinamen entfernt.

Beispiele

Beispiel für eine differenzielle Sicherung

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak', @overwrite_s3_backup_file=1, @type='DIFFERENTIAL';

Beispiel für eine vollständige Sicherung mit Verschlüsselung

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE', @overwrite_s3_backup_file=1, @type='FULL';

Beispiel für eine Sicherung mehrerer Dateien

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @number_of_files=4;

Beispiel für eine differenzielle Sicherung mehrerer Dateien

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @type='DIFFERENTIAL', @number_of_files=4;

Beispiel für eine Sicherung mehrerer Dateien mit Verschlüsselung

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE', @number_of_files=4;

Beispiel für eine Sicherung mehrerer Dateien mit S3-Überschreibung

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @overwrite_s3_backup_file=1, @number_of_files=4;

Beispiel für eine Sicherung einer einzelnen Datei mit dem Parameter @number_of_files

In diesem Beispiel wird eine Sicherungsdatei mit dem Namen backup*.bak generiert.

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @number_of_files=1;

Wiederherstellen einer Datenbank

Rufen Sie zur Wiederherstellung Ihrer Datenbank die gespeicherte Prozedur rds_restore_database auf. Amazon RDS erstellt einen anfänglichen Snapshot der Datenbank nach Abschluss der Wiederherstellung und wenn die Datenbank offen ist.

Verwendung

exec msdb.dbo.rds_restore_database @restore_db_name='database_name', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension', @with_norecovery=0|1, [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@type='DIFFERENTIAL|FULL'];

Die folgenden Parameter sind erforderlich:

  • @restore_db_name – Der Name der wiederherzustellenden Datenbank.

  • @s3_arn_to_restore_from – Der ARN, der das Amazon S3-Präfix und den Namen der Sicherungsdateien anzeigt, die zum Wiederherstellen der Datenbank verwendet werden.

    • Geben Sie für die Sicherung einer einzelnen Datei den gesamten Dateinamen an.

    • Geben Sie für die Sicherung mehrerer Dateien das Präfix an, das den Dateien gemeinsam ist, und danach das Suffix mit einem Sternchen (*).

    • Wenn @s3_arn_to_restore_from leer ist, wird die folgende Fehlermeldung ausgegeben: S3 ARN prefix cannot be empty (Präfix des S3-ARN kann nicht leer sein).

Der folgende Parameter ist für differentielle Wiederherstellungen erforderlich, für vollständige Wiederherstellungen jedoch optional.

  • @with_norecovery – Die für die Wiederherstellungsoperation zu verwendende Wiederherstellungsklausel.

    • Setzen Sie sie für die Wiederherstellung mit RECOVERY auf 0. In diesem Fall ist die Datenbank nach der Wiederherstellung online.

    • Setzen Sie sie für die Wiederherstellung mit NORECOVERY auf 1. In diesem Fall verbleibt die Datenbank nach dem Abschluss der Wiederherstellungsaufgabe im Status RESTORING. Diese Vorgehensweise erlaubt spätere differentielle Wiederherstellungen.

    • Geben Sie für DIFFERENTIELLE Wiederherstellungen 0 oder 1 an.

    • Für FULL-Wiederherstellungen ist dieser Wert standardmäßig 0.

Die folgenden Parameter sind optional:

  • @kms_master_key_arn – Wenn Sie die Sicherungsdatei verschlüsselt haben, der AWS KMS-Kundenmasterschlüssel (CMK) zum Entschlüsseln der Datei.

    Wenn Sie einen AWS KMS-CMK angeben, wird die clientseitige Verschlüsselung verwendet.

  • @type – Der Typ der Wiederherstellung. Gültige Typen sind DIFFERENTIAL und FULL. Der Standardwert ist FULL.

Anmerkung

Bei differentiellen Wiederherstellungen muss sich die Datenbank entweder im Status RESTORING befinden, oder es muss bereits eine Aufgabe existieren, die mit NORECOVERY wiederherstellt.

Sie können differentielle Sicherungen nicht später wiederherstellen, während die Datenbank online ist.

Sie können keine Wiederherstellungsaufgabe für eine Datenbank absenden, für die bereits eine Wiederherstellungsaufgabe mit RECOVERY aussteht.

Vollständige Wiederherstellungen mit NORECOVERY und differentielle Wiederherstellungen werden auf Multi-AZ-Instances nicht unterstützt.

Das Wiederherstellen einer Datenbank auf einer Multi-AZ-Instance mit Read Replicas ist dem Wiederherstellen einer Datenbank auf einer Multi-AZ-Instance vergleichbar. Sie müssen keine zusätzlichen Aktionen ausführen, um eine Datenbank auf einem Replikat wiederherzustellen.

Beispiele

Beispiel für die Wiederherstellung einer einzelnen Datei

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';

Beispiel für die Wiederherstellung mehrerer Dateien

Um Fehler beim Wiederherstellen mehrerer Dateien zu vermeiden, stellen Sie sicher, dass alle Sicherungsdateien dasselbe Präfix haben, und dass dieses Präfix von keinen anderen Dateien verwendet wird.

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';

Beispiel für eine vollständige Datenbankwiederherstellung mit RECOVERY

Die folgenden drei Beispiele führen die gleiche Aufgabe durch, vollständige Wiederherstellung mit RECOVERY.

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', [@type='DIFFERENTIAL|FULL'];
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=0;

Beispiel für eine vollständige Datenbankwiederherstellung mit Verschlüsselung

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';

Beispiel für eine vollständige Datenbankwiederherstellung mit NORECOVERY

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=1;

Beispiel für eine differenzielle Wiederherstellung mit NORECOVERY

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=1;

Beispiel für eine differenzielle Wiederherstellung mit RECOVERY

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=0;

Wiederherstellen eines Protokolls

Zum Wiederherstellen Ihres Protokolls rufen Sie die gespeicherte Prozedur rds_restore_log auf.

Verwendung

exec msdb.dbo.rds_restore_log @restore_db_name='database_name', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name/log_file_name.extension', [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@with_norecovery=0|1], [@stopat='datetime'];

Die folgenden Parameter sind erforderlich:

  • @restore_db_name – Der Name der Datenbank, deren Protokoll wiederhergestellt werden soll.

  • @s3_arn_to_restore_from – Der ARN mit dem Amazon S3-Präfix und dem Namen der Protokolldatei für die Wiederherstellung des Protokolls. Die Datei kann eine beliebige Erweiterung verwenden, üblicherweise wird jedoch .trn verwendet.

    Wenn @s3_arn_to_restore_from leer ist, wird die folgende Fehlermeldung ausgegeben: S3 ARN prefix cannot be empty (Präfix des S3-ARN kann nicht leer sein).

Die folgenden Parameter sind optional:

  • @kms_master_key_arn – Wenn Sie das Protokoll verschlüsselt haben, der AWS KMS-Kundenmasterschlüssel (CMK) zum Entschlüsseln des Protokolls.

  • @with_norecovery – Die für die Wiederherstellungsoperation zu verwendende Wiederherstellungsklausel. Dieser Wert ist standardmäßig 1.

    • Setzen Sie ihn für die Wiederherstellung mit RECOVERY auf 0. In diesem Fall ist die Datenbank nach der Wiederherstellung online. Sie können differentielle Protokollsicherungen nicht später wiederherstellen, während die Datenbank online ist.

    • Setzen Sie sie für die Wiederherstellung mit NORECOVERY auf 1. In diesem Fall verbleibt die Datenbank nach dem Abschluss der Wiederherstellungsaufgabe im Status RESTORING. Diese Vorgehensweise erlaubt spätere Protokollwiederherstellungen.

  • @stopat – Ein Wert, der angibt, dass die Datenbank zu ihrem Zustand am angegebenen Datum und zur angegebenen Uhrzeit (im Datetime-Format) wiederhergestellt wird. Nur vor diesem angegebenen Zeitpunkt geschriebene Transaktionsprotokolldatensätze werden auf die Datenbank angewendet.

    Wenn dieser Parameter nicht angegeben wird (NULL ist), wird das vollständige Protokoll wiederhergestellt.

Anmerkung

Bei Protokollwiederherstellungen muss sich die Datenbank entweder im Status RESTORING befinden, oder es muss bereits eine Aufgabe existieren, die mit NORECOVERY wiederherstellt.

Sie können differentielle Protokollsicherungen nicht wiederherstellen, während die Datenbank online ist.

Sie können keine Protokollwiederherstellungsaufgabe für eine Datenbank absenden, für die bereits eine Wiederherstellungsaufgabe mit RECOVERY aussteht.

Protokollwiederherstellungen werden auf Multi-AZ-Instances nicht unterstützt.

Beispiele

Beispiel für eine Protokollwiederherstellung

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';

Beispiel für eine Protokollwiederherstellung mit Verschlüsselung

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';

Beispiel für eine Protokollwiederherstellung mit NORECOVERY

Die folgenden zwei Beispiele führen die gleiche Aufgabe durch, die Protokollwiederherstellung mit NORECOVERY.

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=1;
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';

Beispiel für eine Protokollwiederherstellung mit RECOVERY

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0;

Beispiel für eine Protokollwiederherstellung mit STOPAT-Klausel

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0, @stopat='2019-12-01 03:57:09';

Abschluss einer Datenbankwiederherstellung

Wenn die letzte Wiederherstellungsaufgabe auf der Datenbank mit @with_norecovery=1 durchgeführt wurde, befindet sich die Datenbank jetzt im Status RESTORING. Öffnen Sie diese Datenbank für den normalen Betrieb mit der gespeicherten Prozedur rds_finish_restore.

Verwendung

exec msdb.dbo.rds_finish_restore @db_name='database_name';
Anmerkung

Für diese Vorgehensweise muss sich die Datenbank im Status RESTORING ohne ausstehende Wiederherstellungsaufgaben befinden.

Die rds_finish_restore-Prozedur wird auf Multi-AZ-Instances nicht unterstützt.

Verwenden Sie zum Abschluss der Wiederherstellung der Datenbank die Master-Anmeldeinformationen. Sie können auch die Benutzeranmeldung verwenden, die zuletzt die Datenbank oder das Protokoll mit NORECOVERY wiederhergestellt hat.

Arbeiten mit teilweise wiederhergestellten Datenbanken

Verwerfen einer teilweise wiederhergestellten Datenbank

Verwenden Sie zum Verwerfen einer teilweise wiederhergestellten Datenbank (die im Status RESTORING verbleibt) die gespeicherte Prozedur rds_drop_database.

exec msdb.dbo.rds_drop_database @db_name='database_name';
Anmerkung

Sie können keine DROP-Datenbankanfrage für eine Datenbank absenden, für die bereits eine ausstehende Wiederherstellungs- oder Wiederherstellungsabschlussaufgabe besteht.

Verwenden Sie zum Verwerfen der Datenbank die Master-Anmeldung. Sie können auch die Benutzeranmeldung verwenden, die zuletzt die Datenbank oder das Protokoll mit NORECOVERY wiederhergestellt hat.

Verhaltensweisen für Snapshot- und zeitpunktbezogene Wiederherstellungen für teilweise wiederhergestellte Datenbanken

Teilweise wiederhergestellte Datenbanken in der Quell-Instance (die im Status RESTORING verbleiben) werden während der Snapshot-Wiederherstellung und der zeitpunktbezogenen Wiederherstellung von der Ziel-Instance verworfen.

Abbrechen einer Aufgabe

Zum Abbruch einer Sicherungs- oder Wiederherstellungsaufgabe rufen Sie die gespeicherte Prozedur rds_cancel_task auf.

Anmerkung

Eine FINISH_RESTORE-Aufgabe kann nicht abgebrochen werden.

Verwendung

exec msdb.dbo.rds_cancel_task @task_id=ID_number;

Der folgende Parameter ist erforderlich:

  • @task_id – ID der abzubrechenden Aufgabe Sie erhalten die ID der Aufgabe durch den Aufruf von rds_task_status.

Verfolgen des Status von Aufgaben

Um den Status Ihrer Sicherungs- oder Wiederherstellungsaufgaben zu verfolgen, rufen Sie die gespeicherte Prozedur rds_task_status auf. Wenn Sie keine Parameter angeben, gibt die gespeicherte Prozedur den Status aller Aufgaben zurück. Der Status für Aufgaben wird etwa alle zwei Minuten aktualisiert. Der Abfrageverlauf wird 36 Tage gespeichert.

Verwendung

exec msdb.dbo.rds_task_status [@db_name='database_name'], [@task_id=ID_number];

Die folgenden Parameter sind optional:

  • @db_name – Name der Datenbank, für die der Aufgabenstatus angezeigt werden soll

  • @task_id – ID der Aufgabe, für die der Aufgabenstatus angezeigt werden soll

Beispiele

Beispiel für die Auflistung des Status für eine bestimmte Aufgabe

exec msdb.dbo.rds_task_status @task_id=5;

Beispiel für die Auflistung des Status für eine bestimmte Datenbank und Aufgabe

exec msdb.dbo.rds_task_status @db_name='my_database', @task_id=5;

Beispiel für die Auflistung aller Aufgaben und ihrer Status auf einer bestimmten Datenbank

exec msdb.dbo.rds_task_status @db_name='my_database';

Beispiel für die Auflistung aller Aufgaben und ihrer Status auf der aktuellen Instance

exec msdb.dbo.rds_task_status;

Antwort

Die gespeicherte Prozedur rds_task_status gibt die folgenden Spalten zurück.

Spalte Beschreibung

task_id

Die ID der Aufgabe.

task_type

Aufgabentyp je nach Eingabeparametern, wie folgt:

  • Für Sicherungsaufgaben:

    • BACKUP_DB – Vollständige Datenbanksicherung

    • BACKUP_DB_DIFFERENTIAL – Differentielle Datenbanksicherung

  • Für Wiederherstellungsaufgaben:

    • RESTORE_DB – Vollständige Datenbankwiederherstellung mit RECOVERY

    • RESTORE_DB_NORECOVERY – Vollständige Datenbankwiederherstellung mit NORECOVERY

    • RESTORE_DB_DIFFERENTIAL – Differentielle Datenbankwiederherstellung mit RECOVERY

    • RESTORE_DB_DIFFERENTIAL_NORECOVERY – Differentielle Datenbankwiederherstellung mit NORECOVERY

    • RESTORE_DB_LOG – Protokollwiederherstellung mit RECOVERY

    • RESTORE_DB_LOG_NORECOVERY – Protokollwiederherstellung mit NORECOVERY

  • Für Aufgaben, die eine Wiederherstellung abschließen:

    • FINISH_RESTORE – Abschluss der Wiederherstellung und Öffnen der Datenbank

Amazon RDS erstellt einen anfänglichen Snapshot der Datenbank nach ihrer Öffnung oder nach dem Abschluss der folgenden Wiederherstellungsaufgaben:

  • RESTORE_DB

  • RESTORE_DB_DIFFERENTIAL

  • RESTORE_DB_LOG

  • FINISH_RESTORE

database_name

Der Name der Datenbank, der die Aufgabe zugeordnet ist.

% complete

Der Fortschritt der Aufgabe als Prozentwert.

duration (mins)

Zeitdauer für die Ausführung der Aufgabe (in Minuten).

lifecycle

Der Status der Aufgabe. Die folgenden Status sind möglich:

  • CREATED: Sobald Sie rds_backup_database oder rds_restore_database aufrufen, wird eine Aufgabe angelegt und der Status auf CREATED gesetzt.

  • IN_PROGRESS: Nach dem Start einer Sicherungs- oder Wiederherstellungsaufgabe wird der Status auf IN_PROGRESS gesetzt. Es kann bis zu 5 Minuten dauern, bis sich der Status von CREATED zu IN_PROGRESS ändert.

  • SUCCESS: Nach dem Abschluss einer Sicherungs- oder Wiederherstellungsaufgabe wird der Status auf SUCCESS gesetzt.

  • ERROR: Wenn eine Sicherungs- oder Wiederherstellungsaufgabe fehlschlägt, wird der Status auf ERROR gesetzt. Weitere Informationen über den Fehler können Sie der Spalte task_info entnehmen.

  • CANCEL_REQUESTED: Sobald Sie rds_cancel_task aufrufen, wird der Status der Aufgabe auf CANCEL_REQUESTED gesetzt.

  • CANCELLED: Nachdem die Aufgabe abgebrochen wurde, wird der Status der Aufgabe auf CANCELLED gesetzt.

task_info

Zusätzliche Informationen über die Aufgabe.

Wenn während des Sicherns oder Wiederherstellens einer Datenbank ein Fehler auftritt, enthält diese Spalte Informationen über den Fehler. Eine Liste möglicher Fehler und Abhilfemaßnahmen finden Sie unter Fehlersuche.

last_updated

Datum und Uhrzeit der letzten Aktualisierung des Aufgabenstatus. Der Status wird jeweils nach 5 Prozent Fortschritt aktualisiert.

created_at

Datum und Uhrzeit, an denen die Aufgabe angelegt wurde.

S3_object_arn Der ARN mit dem Amazon S3-Präfix und dem Namen der Datei, die gesichert oder wiederhergestellt wird.

overwrite_s3_backup_file

Wert des Parameters @overwrite_s3_backup_file, der beim Aufruf einer Sicherungsaufgabe angegeben wurde. Weitere Informationen finden Sie unter Sichern einer Datenbank.

KMS_master_key_arn Der ARN für den AWS KMS-CMK, der für die Verschlüsselung (für Sicherungen) und die Entschlüsselung (für Wiederherstellungen) verwendet wird.
filepath Gilt nicht für native Sicherungs- und Wiederherstellungsaufgaben
overwrite_file Gilt nicht für native Sicherungs- und Wiederherstellungsaufgaben

Komprimieren von Sicherungsdateien

Zur Platzersparnis in Ihrem Amazon S3-Bucket können Sie Ihre Sicherungsdateien komprimieren. Weitere Informationen zum Komprimieren von Sicherungsdateien finden Sie unter Sicherungskomprimierung in der Microsoft-Dokumentation.

Die Komprimierung Ihrer Sicherungsdateien wird für die folgenden Datenbankversionen unterstützt:

  • Microsoft SQL Server Enterprise Edition

  • Microsoft SQL Server Standard Edition

Um die Komprimierung für Ihre Sicherungsdateien einzuschalten, führen Sie den folgenden Code aus:

exec rdsadmin..rds_set_configuration 'S3 backup compression', 'true';

Um die Komprimierung für Ihre Sicherungsdateien auszuschalten, führen Sie den folgenden Code aus:

exec rdsadmin..rds_set_configuration 'S3 backup compression', 'false';

Fehlersuche

Die folgenden Probleme können bei der Verwendung von nativer Sicherung und Wiederherstellung auftreten.

Problem Vorschläge für die Fehlerbehebung

Access Denied

Der Sicherungs- oder Wiederherstellungsprozess kann nicht auf die Sicherungsdatei zugreifen. Dies hat normalerweise Ursachen wie die folgenden:

  • Verweis auf einen falschen Bucket. Verweis auf einen Bucket unter Verwendung eines falschen Formats. Verweis auf einen Dateinamen ohne Verwendung des ARN.

  • Falsche Berechtigungen für die Bucket-Datei. Wenn die Datei beispielsweise von einem anderen Konto als dem erstellt wurde, mit dem jetzt darauf zugegriffen werden soll, müssen die richtigen Berechtigungen hinzugefügt werden.

  • Eine falsche oder unvollständige IAM-Richtlinie. Ihre IAM-Rolle muss alle erforderlichen Elemente enthalten, also beispielsweise auch die korrekte Version. Die Elemente werden unter Importieren und Exportieren von SQL-Server-Datenbanken beschrieben.

BACKUP DATABASE WITH COMPRESSION isn't supported on <edition_name> Edition

Die Komprimierung Ihrer Sicherungsdateien wird nur für Microsoft SQL Server Enterprise Edition und Standard Edition unterstützt. .

Weitere Informationen finden Sie unter Komprimieren von Sicherungsdateien.

Key <ARN> does not exist

Sie haben versucht, eine verschlüsselte Sicherung wiederherzustellen, haben aber keinen Verschlüsselungsschlüssel angegeben. Prüfen Sie Ihren Verschlüsselungsschlüssel und versuchen Sie es erneut.

Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank.

Please reissue task with correct type and overwrite property

Wenn Sie versuchen, Ihre Datenbank zu sichern, und Sie den Namen einer bereits vorhandenen Datei angeben, aber die Eigenschaft "overwrite" auf "false" gesetzt haben, schlägt der Sicherungsvorgang fehl. Geben Sie zur Korrektur dieses Fehlers entweder den Namen einer noch nicht vorhandenen Datei an, oder setzen Sie die Eigenschaft "overwrite" auf "true".

Weitere Informationen finden Sie unter Sichern einer Datenbank.

Zudem ist es möglich, dass Sie Ihre Datenbank wiederherstellen wollten, aber versehentlich die gespeicherte Prozedur rds_backup_database aufgerufen haben. Rufen Sie in diesem Fall stattdessen die gespeicherte Prozedur rds_restore_database auf.

Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank.

Wenn Sie Ihre Datenbank wiederherstellen wollten und die gespeicherte Prozedur rds_restore_database aufgerufen haben, vergewissern Sie sich, dass Sie den Namen einer gültigen Sicherungsdatei angegeben haben.

Weitere Informationen finden Sie unter Verwenden von nativer Sicherung und Wiederherstellung.

Please specify a bucket that is in the same region as RDS instance

Eine Sicherung in bzw. Wiederherstellung aus einem Amazon S3-Bucket in einer AWS-Region, die von der Ihrer Amazon RDS-DB-Instance abweicht, ist nicht möglich. Sie können mithilfe der Amazon S3-Replikation die Sicherungsdatei in die korrekte AWS-Region kopieren.

Weitere Informationen finden Sie unter Regionenübergreifende Replikation in der Amazon S3-Dokumentation.

The specified bucket does not exist

Stellen Sie sicher, dass Sie den korrekten ARN für Ihren Bucket und die Datei im richtigen Format angegeben haben.

Weitere Informationen finden Sie unter Verwenden von nativer Sicherung und Wiederherstellung.

User <ARN> is not authorized to perform <kms action> on resource <ARN>

Sie haben einen verschlüsselten Vorgang angefragt, aber keine geeigneten AWS KMS-Berechtigungen angegeben. Überprüfen Sie, ob Sie die korrekten Berechtigungen haben oder fügen Sie diese hinzu.

Weitere Informationen finden Sie unter Einrichtung für native Sicherung und Wiederherstellung.

The Restore task is unable to restore from more than 10 backup file(s). Please reduce the number of files matched and try again. Reduzieren Sie die Anzahl der Dateien, aus denen Sie wiederherstellen möchten. Sie können jede einzelne Datei bei Bedarf größer machen.