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.
Importieren und Exportieren von SQL Serverdatenbanken mit systemeigener Sicherung und Wiederherstellung
Amazon RDS unterstützt systemeigene Backups und Wiederherstellungen für Microsoft SQL Server-Datenbanken mithilfe vollständiger Backup-Dateien (.bak-Dateien). Wenn Sie verwendenRDS, greifen Sie auf Dateien zu, die in Amazon S3 gespeichert sind, anstatt das lokale Dateisystem auf dem Datenbankserver zu verwenden.
Sie können beispielsweise ein vollständiges Backup von Ihrem lokalen Server erstellen, es auf S3 speichern und es dann auf einer vorhandenen RDS Amazon-DB-Instance wiederherstellen. Sie können auch Backups von S3 erstellenRDS, sie auf S3 speichern und sie dann wiederherstellen, wo immer Sie möchten.
Native Sicherung und Wiederherstellung sind in allen AWS Regionen für Single-AZ- und Multi-AZ-DB-Instances verfügbar, einschließlich Multi-AZ-DB-Instances mit Read Replicas. Die native Sicherung und Wiederherstellung ist für alle auf Amazon unterstützten Editionen von Microsoft SQL Server verfügbarRDS.
Das folgende Diagramm veranschaulicht die unterstützten Szenarien.
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 nativer Backups und Wiederherstellungen. Sie können z. B. Folgendes tun:
-
Migrieren Sie Datenbanken zu oder von AmazonRDS.
-
Verschieben Sie Datenbanken zwischen RDS vier 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-, Trainings- und Demozwecken.
-
Speichern und übertragen Sie Sicherungsdateien mit Amazon S3, um zusätzlichen Schutz für die Notfallwiederherstellung zu gewährleisten.
-
Erstellen Sie native Backups von Datenbanken, bei denen die transparente Datenverschlüsselung (TDE) aktiviert ist, und stellen Sie diese Backups in lokalen Datenbanken wieder her. Weitere Informationen finden Sie unter Support für transparente Datenverschlüsselung im SQL Server.
-
Stellen Sie native Backups von lokalen Datenbanken wieder her, die RDS für SQL Server-DB-Instances TDE aktiviert wurden. Weitere Informationen finden Sie unter Support für transparente Datenverschlüsselung im SQL Server.
Inhalt
- Einschränkungen und Empfehlungen
- Einrichtung für native Backups und Wiederherstellungen
- Verwenden nativer Backups und Wiederherstellungen
- Komprimieren von Sicherungsdateien
- Fehlerbehebung
- Importieren und Exportieren von SQL Server-Daten mithilfe anderer Methoden
Einschränkungen und Empfehlungen
Folgende Einschränkungen gelten bei der Verwendung nativer Backups und Wiederherstellungen:
-
Sie können keine Backups in einem Amazon S3-Bucket in einer anderen AWS Region als Ihrer Amazon RDS DB-Instance erstellen oder aus einem solchen Bucket wiederherstellen.
-
Sie können eine Datenbank nicht mit dem gleichen Namen wie eine vorhandene Datenbank wiederherstellen. Die Namen der Datenbank sind eindeutig.
-
Es wird dringend davon abgeraten, Backups aus einer Zeitzone für eine andere Zeitzone wiederherzustellen. Wenn Sie Backups 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 Backups größerer Datenbanken können Sie Multidatei-Backups verwenden.
-
Die maximale Datenbankgröße, die in S3 gesichert werden kann, hängt von den verfügbaren Speicher-CPU, I/O- und Netzwerkressourcen auf der DB-Instance ab. Je größer die Datenbank ist, umso mehr Speicher verbraucht der Sicherungsagent. Unsere Tests zeigen, dass Sie ein komprimiertes Backup einer 16-TB-Datenbank auf unseren Instance-Typen der neuesten 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.
-
Ein differentielles Backup basiert auf dem letzten vollständigen Backup. Damit differentielle Backups funktionieren, darf kein Snapshot zwischen dem letzten vollständigen Backup und dem differentiellen Backup aufgenommen werden. Wenn Sie ein differentielles Backup erstellen möchten, aber ein manueller oder automatisierter Snapshot vorhanden ist, erstellen Sie ein weiteres vollständiges Backup, bevor Sie mit dem differentiellen Backup fortfahren.
-
Differenzielle und Protokollwiederherstellungen werden für Datenbanken mit Dateien, deren file_guid (eindeutige ID) auf eingestellt ist, nicht unterstütz
NULL
. -
Sie können bis zu zwei Backup- oder Wiederherstellungsaufgaben gleichzeitig ausführen.
-
Sie können keine systemeigenen Protokollsicherungen vom SQL Server auf Amazon durchführenRDS.
-
RDSunterstützt native Wiederherstellungen von Datenbanken mit bis zu 16 TB. Systemeigene Wiederherstellungen von Datenbanken in der SQL Server Express Edition sind auf 10 GB begrenzt.
-
Sie können während des Wartungsfensters oder zu einem Zeitpunkt, zu dem Amazon gerade dabei RDS ist, einen Snapshot der Datenbank zu erstellen, kein systemeigenes Backup durchführen. Wenn sich eine native Backup-Aufgabe mit dem RDS täglichen Backup-Fenster überschneidet, wird die native Backup-Aufgabe abgebrochen.
-
Bei Multi-AZ-DB-Instances können Sie nur Datenbanken nativ wiederherstellen, die im vollständigen Wiederherstellungsmodell gesichert wurden.
-
Die Wiederherstellung aus differentiellen Backups auf Multi-AZ-Instances wird nicht unterstützt.
-
Das Aufrufen der RDS Verfahren für systemeigenes Backup und Wiederherstellung innerhalb einer Transaktion wird nicht unterstützt.
-
Verwenden Sie eine symmetrische Verschlüsselung AWS KMS key , um Ihre Backups zu verschlüsseln. Amazon unterstützt RDS keine asymmetrischen KMS Schlüssel. Weitere Informationen finden Sie unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.
-
Systemeigene Sicherungsdateien werden mit dem angegebenen KMS Schlüssel im Kryptomodus „Nur Verschlüsselung“ verschlüsselt. Bei der Wiederherstellung verschlüsselter Sicherheitsdateien sollten Sie stets bedenken, dass diese Dateien mit dem Krypto-Modus "Nur Verschlüsselung" verschlüsselt wurden.
-
Sie können keine Datenbank wiederherstellen, die eine FILESTREAM Dateigruppe enthält.
Wenn Ihre Datenbank offline sein kann, während die Sicherungsdatei erstellt, kopiert und wiederhergestellt wird, empfehlen wir, dass Sie die systemeigene Sicherung und Wiederherstellung verwenden, um sie zu migrierenRDS. Wenn Ihre lokale Datenbank nicht offline sein kann, empfehlen wir Ihnen, die zu verwenden, um Ihre Datenbank AWS Database Migration Service zu Amazon RDS zu migrieren. Weitere Informationen finden Sie unter Was ist AWS Database Migration Service?
Native Backups und Wiederherstellungen sind nicht als Ersatz für die Datenwiederherstellungsfunktionen der regionsübergreifenden Snapshot-Kopierfunktion gedacht. Wir empfehlen Ihnen, Snapshot Copy zu verwenden, um Ihren Datenbank-Snapshot für die regionsübergreifende Notfallwiederherstellung in Amazon RDS in eine andere AWS Region zu kopieren. Weitere Informationen finden Sie unter Kopieren eines DB-Snapshots.
Einrichtung für native Backups und Wiederherstellungen
Zum Einrichten nativer Backup und Wiederherstellungen benötigen Sie drei Komponenten:
-
Einen Amazon S3-Bucket zum Speichern Ihrer Sicherungsdateien
Sie müssen über einen S3-Bucket verfügen, den Sie für Ihre Backup-Dateien verwenden können, und müssen dann Backups hochladen, zu denen Sie migrieren möchtenRDS. 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.Weitere Informationen zur Verwendung von S3 finden Sie im Benutzerhandbuch für Amazon Simple Storage Service.
-
Eine AWS Identity and Access Management (IAM) -Rolle für den Zugriff auf den Bucket.
Wenn Sie bereits eine IAM Rolle haben, können Sie diese verwenden. Sie können wählen, ob eine neue IAM Rolle für Sie erstellt werden soll, wenn Sie die
SQLSERVER_BACKUP_RESTORE
Option hinzufügen, indem Sie die AWS Management Console. Alternativ können Sie manuell eine neue Rolle erstellen.Wenn Sie eine neue IAM Rolle manuell erstellen möchten, gehen Sie wie im nächsten Abschnitt beschrieben vor. Gehen Sie genauso vor, wenn Sie einer vorhandenen IAM Rolle Vertrauensbeziehungen und Berechtigungsrichtlinien zuordnen möchten.
-
Die Option
SQLSERVER_BACKUP_RESTORE
in einer Optionsgruppe auf Ihrer DB-InstanceZur Aktivierung nativer Backups und Wiederherstellungen 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 Backup in SQL Server.
Manuelles Erstellen einer IAM Rolle für systemeigenes Backup und Wiederherstellung
Wenn Sie manuell eine neue IAM Rolle für die native Sicherung und Wiederherstellung erstellen möchten, können Sie dies tun. In diesem Fall erstellen Sie eine Rolle, um Berechtigungen vom RDS Amazon-Service an Ihren Amazon S3-Bucket zu delegieren. Wenn Sie eine IAM Rolle erstellen, fügen Sie eine Vertrauensbeziehung und eine Berechtigungsrichtlinie hinzu. Die Vertrauensbeziehung ermöglicht esRDS, 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 zu nativen Backups und Wiederherstellungen 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 geben wir einen Amazon-Ressourcennamen (ARN) an, um ein anderes Konto, einen Benutzer oder eine Rolle zu identifizieren, auf die wir in der Vertrauensrichtlinie Zugriff gewähren.
Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel aws:SourceArn
und aws:SourceAccount
in ressourcenbasierten Vertrauensbeziehungen, um die Berechtigungen des Services auf eine bestimmte Ressource zu beschränken. Dies ist der effektivste Weg, um sich vor dem verwirrtes Stellvertreterproblem zu schützen.
Sie können beide globalen Bedingungskontextschlüssel verwenden und der Wert aws:SourceArn
enthält die Konto-ID. Stellen Sie in diesen Fällen sicher, dass der Wert aws:SourceAccount
und das Konto im Wert aws:SourceArn
dieselbe Konto-ID verwenden, wenn sie in derselben Anweisung verwendet werden.
-
Verwenden von
aws:SourceArn
wenn Sie einen serviceübergreifenden Zugriff für eine einzelne Ressource wünschen. -
Verwenden von
aws:SourceAccount
wenn Sie zulassen möchten, dass eine Ressource in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft wird.
Stellen Sie in der Vertrauensbeziehung sicher, dass Sie den aws:SourceArn
globalen Bedingungskontextschlüssel mit allen ARN Ressourcen verwenden, die auf die Rolle zugreifen. Stellen Sie bei nativen Backups und Wiederherstellungen sicher, dass Sie sowohl die DB-Optionsgruppe als auch die DB-Instances einschließen, wie im folgenden Beispiel gezeigt.
Beispiel Vertrauensbeziehung mit globalem Kontextschlüssel für native Backups und Wiederherstellungen
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Im folgenden Beispiel wird eine Ressource verwendetARN, um eine Ressource anzugeben. Weitere Informationen zur Verwendung ARNs finden Sie unter Amazon-Ressourcennamen (ARNs).
Beispiel Berechtigungsrichtlinie für native Backups und Wiederherstellungen ohne Verschlüsselungsunterstützung
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
Beispiel Berechtigungsrichtlinie für native Backups und Wiederherstellungen 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 -Entwicklerhandbuch.
Anmerkung
Sie müssen einen symmetrischen KMS Verschlüsselungsschlüssel verwenden, um Ihre Backups zu verschlüsseln. Amazon unterstützt RDS keine asymmetrischen KMS Schlüssel. Weitere Informationen finden Sie unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.
Die IAM Rolle muss außerdem ein Schlüsselbenutzer und ein Schlüsseladministrator für den KMS Schlüssel sein, d. h. er muss in der Schlüsselrichtlinie angegeben werden. Weitere Informationen finden Sie im AWS Key Management Service Developer Guide unter Creating symmetric Encryption KMS Keys.
{ "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:::amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
Verwenden nativer Backups und Wiederherstellungen
Sobald Sie native Backups und Wiederherstellungen konfiguriert haben, können Sie mit deren Verwendung beginnen. Zuerst stellen Sie eine Verbindung zu Ihrer Microsoft SQL Server-Datenbank her und rufen dann eine RDS gespeicherte Amazon-Prozedur auf, um die Arbeit 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.
Für einige der gespeicherten Prozeduren müssen Sie einen Amazon-Ressourcennamen (ARN) für Ihren Amazon S3-Bucket und Ihre Amazon S3-Datei angeben. Das Format für Ihr ARN istarn:aws:s3:::
. Amazon S3 benötigt keine Kontonummer oder AWS Region inARNs.bucket_name
/file_name.extension
Wenn Sie auch einen optionalen KMS Schlüssel angeben, lautet das ARN Format für den Schlüsselarn:aws:kms:
. Weitere Informationen finden Sie unter Amazon-Ressourcennamen (ARNs) und AWS Service-Namespaces. Sie müssen einen symmetrischen KMS Verschlüsselungsschlüssel verwenden, um Ihre Backups zu verschlüsseln. Amazon unterstützt RDS keine asymmetrischen KMS Schlüssel. Weitere Informationen finden Sie unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.region
:account-id
:key/key-id
Anmerkung
Unabhängig davon, ob Sie einen KMS Schlüssel verwenden oder nicht, ermöglichen die systemeigenen Sicherungs- und Wiederherstellungsaufgaben standardmäßig die serverseitige 256-Bit-Verschlüsselung mit Advanced Encryption Standard (AES) für auf S3 hochgeladene Dateien.
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
Während des Wartungsfensters oder während Amazon RDS einen Snapshot erstellt, können Sie keine Datenbank sichern.
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
— Die ARN Angabe des Amazon S3 S3-Buckets, der für das Backup verwendet werden soll, sowie der Name der Backup-Datei.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 KMS Verschlüsselungsschlüssel, der zur Verschlüsselung des Elements verwendet werden soll.-
Sie können den Standard-Verschlüsselungsschlüssel nicht verwenden. Wenn Sie den Standardschlüssel verwenden, wird die Datenbank nicht gesichert.
-
Wenn Sie keine KMS Schlüssel-ID angeben, wird die Sicherungsdatei nicht verschlüsselt. Weitere Informationen finden Sie unter RDSAmazon-Ressourcen verschlüsseln.
-
Wenn Sie einen KMS Schlüssel angeben, wird die clientseitige Verschlüsselung verwendet.
-
Amazon unterstützt RDS keine asymmetrischen KMS Schlüssel. Weitere Informationen finden Sie unter Erstellen symmetrischer KMS Verschlüsselungsschlüssel im AWS Key Management Service Entwicklerhandbuch.
-
-
@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 Backup.-
DIFFERENTIAL
– Erstellt eine differentielle Backup. -
FULL
– Erstellt eine vollständige Backup. 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 ein differentielles Backup erstellen wollen und ein Snapshot existiert, erstellen Sie ein weiteres vollständiges Backup, bevor Sie mit dem differentiellen Backup fortfahren.
Mithilfe der folgenden SQL Beispielabfrage können Sie nach der letzten vollständigen Sicherung oder dem letzten Snapshot 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 das Backup aufgeteilt wird (aufgeschlüsselt). Die maximale Anzahl ist 10.-
Das Backup mehrerer Dateien wird sowohl für vollständige als auch für differenzielle Backups 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 an einer beliebigen Stelle in derfile_name
Teil des S3ARN. Das Sternchen wird durch eine Reihe von alphanumerischen Zeichenfolgen in den generierten Dateien ersetzt, beginnend mit1-of-
.number_of_files
Wenn die Dateinamen im S3 beispielsweise
backup*.bak
und von Ihnen festgelegt ARN sind@number_of_files=4
, lauten die generierten Sicherungsdateienbackup1-of-4.bak
backup2-of-4.bak
,backup3-of-4.bak
, undbackup4-of-4.bak
.-
Wenn einer der Dateinamen bereits vorhanden und
@overwrite_s3_backup_file
0 ist, wird ein Fehler ausgegeben. -
Backups mit mehreren Dateien können nur ein Sternchen im
file_name
Teil des S3. ARN -
Backups einzelner Dateien können eine beliebige Anzahl von Sternchen in der
file_name
Teil des S3. ARN Sternchen werden nicht aus dem generierten Dateinamen entfernt.
-
Beispiele
Beispiel für eine differenzielle Backup
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 ein vollständiges Backup 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 ein Backup 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 ein differenzielles Backup 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 ein Backup 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 ein Backup 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 ein Backup einer einzelnen Datei mit dem Parameter @number_of_files
In diesem Beispiel wird eine Sicherungsdatei mit dem Namen generier backup*.bak
.
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 zum Wiederherstellen Ihrer Datenbank die gespeicherte Prozedur rds_restore_database
auf. Amazon RDS erstellt einen ersten Snapshot der Datenbank, nachdem die Wiederherstellungsaufgabe abgeschlossen und die Datenbank geöffnet 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. Die Namen der Datenbank sind eindeutig. Sie können eine Datenbank nicht mit dem gleichen Namen wie eine vorhandene Datenbank wiederherstellen. -
@s3_arn_to_restore_from
— Die ARN Angabe des Amazon S3 S3-Präfixes und der Namen der Sicherungsdateien, die zur Wiederherstellung der Datenbank verwendet wurden.-
Geben Sie für das Backup einer einzelnen Datei den gesamten Dateinamen an.
-
Geben Sie für das Backup mehrerer Dateien das Präfix an, das den Dateien gemeinsam ist, und danach das Suffix mit einem Sternchen (
*
). -
Wenn leer
@s3_arn_to_restore_from
ist, wird die folgende Fehlermeldung zurückgegeben: DasARNS3-Präfix darf 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.-
Stellen Sie es auf, mit
0
dem wiederhergestellt werden sollRECOVERY. In diesem Fall ist die Datenbank nach der Wiederherstellung online. -
Stellen Sie es auf, mit
1
dem wiederhergestellt werden sollNORECOVERY. In diesem Fall verbleibt die Datenbank nach Abschluss der Wiederherstellungsaufgabe in dem RESTORING Zustand. Diese Vorgehensweise erlaubt spätere differentielle Wiederherstellungen. -
Geben Sie für DIFFERENTIAL Wiederherstellungen
0
oder an1
. -
Für
FULL
-Wiederherstellungen ist dieser Wert standardmäßig0
.
-
Die folgenden Parameter sind optional:
-
@kms_master_key_arn
— Wenn Sie die Sicherungsdatei verschlüsselt haben, der KMS Schlüssel, der zum Entschlüsseln der Datei verwendet werden soll.Wenn Sie einen KMS Schlüssel angeben, wird die clientseitige Verschlüsselung verwendet.
-
@type
– Der Typ der Wiederherstellung. Gültige Typen sindDIFFERENTIAL
undFULL
. Der Standardwert istFULL
.
Anmerkung
Für differenzielle Wiederherstellungen muss sich entweder die Datenbank im RESTORING Status befinden, oder es muss bereits eine Aufgabe vorhanden sein, mit der eine Wiederherstellung durchgeführt werden kannNORECOVERY.
Sie können differentielle Backups nicht später wiederherstellen, während die Datenbank online ist.
Sie können keine Wiederherstellungsaufgabe für eine Datenbank einreichen, für die bereits eine ausstehende Wiederherstellungsaufgabe vorliegtRECOVERY.
Vollständige Wiederherstellungen mit NORECOVERY und differenzielle 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 der vollständigen Datenbankwiederherstellung mit RECOVERY
Die folgenden drei Beispiele führen dieselbe Aufgabe aus, vollständige Wiederherstellung mitRECOVERY.
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 der vollständigen 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 der differenziellen 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 der differenziellen 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
— ARN Angabe des Amazon S3 S3-Präfixes und des Namens der Protokolldatei, die zur Wiederherstellung des Protokolls verwendet wurde. Die Datei kann eine beliebige Erweiterung haben, üblicherweise wird jedoch.trn
verwendet.Wenn leer
@s3_arn_to_restore_from
ist, wird die folgende Fehlermeldung zurückgegeben: DasARNS3-Präfix darf nicht leer sein
.
Die folgenden Parameter sind optional:
-
@kms_master_key_arn
— Wenn Sie das Protokoll verschlüsselt haben, der KMS Schlüssel, der zum Entschlüsseln des Protokolls verwendet werden soll. -
@with_norecovery
– Die für die Wiederherstellungsoperation zu verwendende Wiederherstellungsklausel. Dieser Wert ist standardmäßig1
.-
Stellen Sie ihn auf ein, mit
0
RECOVERY dem wiederhergestellt werden soll. 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. -
Stellen Sie es auf, mit
1
dem wiederhergestellt werden sollNORECOVERY. In diesem Fall verbleibt die Datenbank nach Abschluss der Wiederherstellungsaufgabe in dem RESTORING Zustand. 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 ist (er ist esNULL), wird das vollständige Protokoll wiederhergestellt.
Anmerkung
Für Protokollwiederherstellungen muss sich entweder die Datenbank im Wiederherstellungsstatus befinden oder es muss bereits eine Aufgabe vorhanden sein, mit der eine Wiederherstellung durchgeführt werden kannNORECOVERY.
Sie können differentielle Protokollsicherungen nicht wiederherstellen, während die Datenbank online ist.
Sie können keine Protokollwiederherstellungsaufgabe für eine Datenbank einreichen, für die bereits eine ausstehende Wiederherstellungsaufgabe vorhanden istRECOVERY.
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 der Protokollwiederherstellung mit NORECOVERY
In den folgenden beiden Beispielen wird dieselbe Aufgabe ausgeführt, nämlich die Protokollwiederherstellung mitNORECOVERY.
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 von Log Restore 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 von Log Restore 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 für die Datenbank mit ausgeführt wurde@with_norecovery=1
, befindet sich die Datenbank jetzt im RESTORING Status. Ö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
Um diesen Ansatz verwenden zu können, muss sich die Datenbank im RESTORING Status 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. Oder verwenden Sie die Benutzeranmeldung, mit der die Datenbank oder das Protokoll zuletzt wiederhergestellt wurdeNORECOVERY.
Arbeiten mit teilweise wiederhergestellten Datenbanken
Verwerfen einer teilweise wiederhergestellten Datenbank
Verwenden Sie die rds_drop_database
gespeicherte Prozedur, um eine teilweise wiederhergestellte Datenbank (die im RESTORING Status belassen wurde) zu löschen.
exec msdb.dbo.rds_drop_database @db_name='
database_name
';
Anmerkung
Sie können keine DROP Datenbankanforderung für eine Datenbank einreichen, für die bereits eine Wiederherstellung aussteht, oder die Wiederherstellungsaufgabe beenden.
Verwenden Sie zum Verwerfen der Datenbank die Master-Anmeldung. Oder verwenden Sie den Benutzeranmeldenamen, mit dem die Datenbank zuletzt wiederhergestellt wurde, oder melden Sie sich anNORECOVERY.
Snapshot-Wiederherstellung und point-in-time Wiederherstellungsverhalten für teilweise wiederhergestellte Datenbanken
Teilweise wiederhergestellte Datenbanken in der Quellinstanz (im RESTORING Status belassen) werden während der Snapshot-Wiederherstellung und point-in-time -Wiederherstellung aus der Zielinstanz gelöscht.
Abbrechen einer Aufgabe
Zum Abbruch einer Sicherungs- oder Wiederherstellungsaufgabe rufen Sie die gespeicherte Prozedur rds_cancel_task
auf.
Anmerkung
Sie können eine FINISH RESTORE _-Aufgabe nicht stornieren.
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 vonrds_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 |
---|---|
|
Die ID der Aufgabe. |
|
Aufgabentyp je nach Eingabeparametern, wie folgt:
Amazon RDS erstellt nach Abschluss der folgenden Wiederherstellungsaufgaben einen ersten Snapshot der Datenbank, nachdem sie geöffnet wurde:
|
|
Der Name der Datenbank, der die Aufgabe zugeordnet ist. |
|
Der Fortschritt der Aufgabe als Prozentwert. |
|
Zeitdauer für die Ausführung der Aufgabe (in Minuten). |
|
Der Status der Aufgabe. Die folgenden Status sind möglich:
|
|
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 Fehlerbehebung. |
|
Datum und Uhrzeit der letzten Aktualisierung des Aufgabenstatus. Der Status wird jeweils nach 5 Prozent Fortschritt aktualisiert. |
|
Datum und Uhrzeit, an denen die Aufgabe angelegt wurde. |
S3_object_arn |
Die ARN Angabe des Amazon S3 S3-Präfixes und des Namens der Datei, die gesichert oder wiederhergestellt wird. |
|
Wert des Parameters |
KMS_master_key_arn |
Der ARN für den KMS Schlüssel, der für die Verschlüsselung (für die Sicherung) und die Entschlüsselung (für die Wiederherstellung) 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
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.dbo.rds_set_configuration 'S3 backup compression', 'true';
Um die Komprimierung für Ihre Sicherungsdateien auszuschalten, führen Sie den folgenden Code aus:
exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'false';
Fehlerbehebung
Die folgenden Probleme können bei der Verwendung nativer Backups und Wiederherstellungen auftreten.
Problem | Vorschläge für die Fehlerbehebung |
---|---|
|
Achten Sie darauf, die |
|
Der Sicherungs- oder Wiederherstellungsprozess kann nicht auf die Sicherungsdatei zugreifen. Dies hat normalerweise Ursachen wie die folgenden:
|
|
Das Komprimieren Ihrer Sicherungsdateien wird nur für Microsoft SQL Server Enterprise Edition unterstützt und die Standard Edition . Weitere Informationen finden Sie unter Komprimieren von Sicherungsdateien. |
|
Sie haben versucht, ein verschlüsseltes Backup 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. |
|
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 Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank. Wenn Sie Ihre Datenbank wiederherstellen wollten und die gespeicherte Prozedur Weitere Informationen finden Sie unter Verwenden nativer Backups und Wiederherstellungen. |
|
Sie können keine Backups in einem Amazon S3-Bucket in einer anderen AWS Region als Ihrer Amazon RDS DB-Instance erstellen oder aus einem solchen Bucket wiederherstellen. Sie können die Amazon S3 S3-Replikation verwenden, um die Sicherungsdatei in die richtige AWS Region zu kopieren. Weitere Informationen finden Sie unter Regionenübergreifende Replikation in der Amazon S3-Dokumentation. |
|
Stellen Sie sicher, dass Sie die richtigen Daten ARN für Ihren Bucket und Ihre Datei im richtigen Format angegeben haben. Weitere Informationen finden Sie unter Verwenden nativer Backups und Wiederherstellungen. |
|
Sie haben einen verschlüsselten Vorgang angefordert, aber nicht die richtigen AWS KMS Berechtigungen erteilt. Überprüfen Sie, ob Sie die korrekten Berechtigungen haben oder fügen Sie diese hinzu. Weitere Informationen finden Sie unter Einrichtung für native Backups und Wiederherstellungen. |
|
Reduzieren Sie die Anzahl der Dateien, aus denen Sie wiederherstellen möchten. Sie können jede einzelne Datei bei Bedarf größer machen. |
|
Sie können eine Datenbank nicht mit dem gleichen Namen wie eine vorhandene Datenbank wiederherstellen. Die Namen der Datenbank sind eindeutig. |