Auf dieser Seite wird beschrieben, wie Sie die Sicherungsdateien erstellen, die für die Migration Ihrer selbstverwalteten oder Amazon RDS SQL Server-Datenbanken zu Cloud SQL for SQL Server erforderlich sind. Dazu gehören die folgenden Abschnitte:
- Unter Anforderungen und Einschränkungen finden Sie wichtige Einschränkungen für die Unterstützung von Sicherungsdateien.
- Unter Namenskonventionen werden die Anforderungen an Dateinamen für Ihre Sicherungsdateien erläutert.
- Vollsicherung erstellen enthält Schritte zum Erstellen von Vollsicherungsdateien.
- Differenzielles Backup erstellen enthält Schritte zum Erstellen differenzieller Sicherungsdateien.
- Sicherungsdateien mit Transaktionslogs enthält Schritte zum Erstellen von Sicherungsdateien mit Transaktionslogs.
Anforderungen und Einschränkungen
Für die Sicherungsdateien, die Sie für die Migration verwenden, gelten die folgenden Anforderungen und Einschränkungen:
Alle Sicherungsdateien müssen Namen haben, die den jeweiligen Namenskonventionen entsprechen.
Ihre Sicherungsdateien dürfen maximal 5 TB groß sein.
Sie können die Dateien mit der Voll- oder differenziellen Sicherung auf kleinere Dateien aufteilen, wenn Ihre Datenbank größer als 5 TB ist. Jede Datei darf maximal 5 TB groß sein.
Sie können verschlüsselte Sicherungs- und Transaktionslogdateien für die Migration verwenden. Wenn Sie verschlüsselte Sicherungsdateien verwenden möchten, müssen Sie jede Sicherungsdatei (Vollsicherung, differenzielle Sicherung, Transaktionslog) verschlüsseln, die Sie für eine bestimmte Datenbank in Ihrer Migration verwenden. Weitere Informationen finden Sie unter Verschlüsselte Sicherungen verwenden.
Der Database Migration Service migriert die SQL Server-Datenbank
masternicht.Ihre SQL Server-Quellinstanz kann das einfache Wiederherstellungsmodell nicht verwenden. Weitere Informationen zu Wiederherstellungsmodellen finden Sie in der Microsoft-Dokumentation unter Wiederherstellungsmodelle (SQL Server).
Namenskonventionen
In diesem Abschnitt werden die Anforderungen an Dateinamen für Dateien mit Vollsicherungen, differenziellen Sicherungen und Sicherungen von Transaktionslogs beschrieben.
Informationen zu den Anforderungen an den Ordnernamen und die Struktur von Cloud Storage-Bucket finden Sie unter Cloud Storage-Buckets erstellen und konfigurieren.
Informationen dazu, wie Database Migration Service verschiedene Arten von Sicherungsdateien in homogenen SQL Server-Migrationen verwendet, finden Sie unter Unterstützte Sicherungsdateitypen.
Namenskonventionen für Sicherungsdateien für lokale SQL Server-Instanzen
Namen von Dateien mit Vollsicherungen
Die Namenskonvention für Vollsicherungsdateien hängt davon ab, ob Sie eine einzelne Sicherungsdatei verwenden oder sie in mehrere Stripes aufteilen. In beiden Szenarien müssen Sie für Database Migration Service einen Epochenzeitstempel (Unix-Zeitstempel in Sekunden) hinzufügen, der den ungefähren Zeitpunkt der Vollsicherung angibt.
Wenn Ihre Vollsicherung eine einzelne Datei ist, muss der Dateiname das Format
db_name.epoch.bakhaben, wobei Folgendes gilt:db_nameist der Name Ihrer Datenbank.epochist ein Unix-Zeitstempel in Sekunden..bakist die Dateiendung.
Gültige Beispiele:
my-business-database.1712649600.bakmy-other-database.1712649600.bak
Wenn Sie Ihre Vollsicherung in separate Stripes aufteilen, kann jeder Stripe einen beliebigen Namen haben. Sie müssen jedoch in einen Cloud Storage-Ordner hochgeladen werden, dessen Name ein Unix-Zeitstempel in Sekunden ist:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- 1712649600/ | | | |- mystripe-full_backup_file.bak | | | |- otherStripefull-bkp.bak | |- diff/ | | |- ... | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- 1715250742/ | | | |- cool-stripe-file.bak | | | |- secondStripeFile.bak | |- diff/ | | |- ... | |- log/ | | |- ...
Namen von Dateien mit differenziellen Sicherungen
Die Namenskonvention für differenzielle Sicherungsdateien hängt davon ab, ob Sie eine einzelne Sicherungsdatei verwenden oder sie in mehrere Stripes aufteilen. In beiden Szenarien müssen Sie für Database Migration Service einen Epochenzeitstempel (Unix-Zeitstempel in Sekunden) hinzufügen, der den ungefähren Zeitpunkt der differenziellen Sicherung angibt.
Wenn Ihr differenzielles Backup eine einzelne Datei ist, muss der Dateiname das Format
db_name.epoch.exthaben, wobei Folgendes gilt:db_nameist der Name Ihrer Datenbank.epochist ein Unix-Zeitstempel in Sekunden..extist die Dateiendung. Für differenzielle Sicherungsdateien können die folgenden Endungen verwendet werden:.bak,.dif,.diff.
Gültige Beispiele:
my-business-database.1731159833.bakmy-other-database.1731159833.dif
Wenn Sie Ihr differenzielles Backup in separate Stripes aufteilen, kann jeder Stripe einen beliebigen Namen haben. Sie müssen jedoch in einen Cloud Storage-Ordner hochgeladen werden, dessen Name ein Unix-Zeitstempel in Sekunden ist:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- mydiffstripe-diff_backup_file.dif | | | |- mySeconddiffstripe-diff_backup_file.bak | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- firstDiffStripe.bak | | | |- other_diff_stripe.diff | |- log/ | | |- ...
Namen von Dateien mit Transaktionslogs
Die Namen von Dateien mit Transaktionslogs müssen das Format db_name.epoch.trn haben, wobei Folgendes gilt:
db_nameist der Name Ihrer Datenbank.epochist ein Unix-Zeitstempel in Sekunden..trnist die Dateiendung.
Gültige Beispiele:
my-business-database.1712649600.trnmy-other-database.1712649600.trn
Namenskonventionen für Sicherungsdateien für Amazon RDS
Namen von Dateien mit Vollsicherungen
Die Namenskonvention für Vollsicherungsdateien hängt davon ab, ob Sie eine einzelne Sicherungsdatei verwenden oder sie in mehrere Stripes aufteilen. In beiden Szenarien müssen Sie für Database Migration Service einen Epochenzeitstempel (Unix-Zeitstempel in Sekunden) hinzufügen, der den ungefähren Zeitpunkt der Vollsicherung angibt.
Wenn Ihre Vollsicherung eine einzelne Datei ist, muss der Dateiname das Format
db_id.family_guid.rds_backup_seq_id.epoch.bakhaben, wobei Folgendes gilt:db_idist die interne Amazon RDS-Datenbankkennung.family_guidist die eindeutige Amazon RDS-Kennung der ursprünglichen Datenbank zum Zeitpunkt der Erstellung.rds_backup_seq_idist die Kennung, die Amazon RDS intern verwendet, um eine Sequenznummer für jede Sicherungsdatei mit Transaktionslogs zu führen.epochist ein Unix-Zeitstempel in Sekunden..bakist die Dateiendung.
Gültige Beispiele:
3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1712649600.bak1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1712649600.bak
Wenn Sie Ihre Vollsicherung in separate Stripes aufteilen, kann jeder Stripe einen beliebigen Namen haben. Sie müssen jedoch in einen Cloud Storage-Ordner hochgeladen werden, dessen Name ein Unix-Zeitstempel in Sekunden ist:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- 1712649600/ | | | |- mystripe-full_backup_file.bak | | | |- otherStripefull-bkp.bak | |- diff/ | | |- ... | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- 1715250742/ | | | |- cool-stripe-file.bak | | | |- secondStripeFile.bak | |- log/ | | |- ...
Namen von Dateien mit differenziellen Sicherungen
Die Namenskonvention für differenzielle Sicherungsdateien hängt davon ab, ob Sie eine einzelne Sicherungsdatei verwenden oder sie in mehrere Stripes aufteilen. In beiden Szenarien müssen Sie für Database Migration Service einen Epochenzeitstempel (Unix-Zeitstempel in Sekunden) hinzufügen, der den ungefähren Zeitpunkt der differenziellen Sicherung angibt.
Wenn Ihr differenzielles Backup eine einzelne Datei ist, muss der Dateiname das Format
db_id.family_guid.rds_backup_seq_id.epoch.exthaben, wobei Folgendes gilt:db_idist die interne Amazon RDS-Datenbankkennung.family_guidist die eindeutige Amazon RDS-Kennung der ursprünglichen Datenbank zum Zeitpunkt der Erstellung.rds_backup_seq_idist die Kennung, die Amazon RDS intern verwendet, um eine Sequenznummer für jede Sicherungsdatei mit Transaktionslogs zu führen.epochist ein Unix-Zeitstempel in Sekunden..bakist die Dateiendung. Für differenzielle Sicherungsdateien können die folgenden Endungen verwendet werden:.bak,.dif,.diff.
Gültige Beispiele:
3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1731159833.bak1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1731159833.dif
Wenn Sie Ihre Vollsicherung in separate Stripes aufteilen, kann jeder Stripe einen beliebigen Namen haben. Sie müssen jedoch in einen Cloud Storage-Ordner hochgeladen werden, dessen Name ein Unix-Zeitstempel in Sekunden ist:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- mydiffstripe-diff_backup_file.dif | | | |- mySeconddiffstripe-diff_backup_file.bak | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- firstDiffStripe.bak | | | |- other_diff_stripe.diff | |- log/ | | |- ...
Namen von Dateien mit Transaktionslogs
In Amazon RDS werden Sicherungsdateien mit Transaktionslogs automatisch generiert. Sie enthalten alle erforderlichen Datenbankkennungen.
Diese Standardnamen umfassen den Epochenzeitstempel und werden in Database Migration Service vollständig unterstützt. Sie können diese Dateien direkt in den Ordner /log/ hochladen.
Vollsicherung der Quellinstanz erstellen
Die Datei mit der vollständigen Datenbanksicherung ist für die anfängliche Ladephase des Migrationsjobs erforderlich. Wenn Sie Ihre Sicherungen verschlüsseln möchten, müssen Sie den Verschlüsselungsschlüssel speichern, damit Sie ihn später beim Erstellen des Migrationsjobs in Cloud Storage hochladen können. Weitere Informationen finden Sie unter Verschlüsselte Sicherungen verwenden.
Vollsicherung für lokale SQL Server-Instanzen erstellen
Sie können die Vollsicherung Ihrer lokalen SQL Server-Instanz mit T-SQL oder SQL Server Management Studio (SSMS) erstellen. Gehen Sie so vor:
- Folgende Anforderungen müssen erfüllt sein:
- Sie verwenden die richtigen Benennungsanforderungen für Ihre Sicherungsdateien.
- Ihre Quelldatenbanken verwenden nicht das einfache Wiederherstellungsmodell. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter Wiederherstellungsmodelle (SQL Server) .
- Wenn Ihre Datenbank größer als 5 TB ist, müssen Sie die Vollsicherung in separate Stripes aufteilen. Jede Datei darf maximal 5 TB groß sein. Siehe Sicherungsgeräte in einem Stripesetmedium.
- Erstellen Sie eine Vollsicherung Ihrer Quellinstanz. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter
Kurzanleitung: SQL Server-Datenbank mit SSMS sichern und wiederherstellen. Sie können sich auch die folgenden Beispielbefehle ansehen:
Beispiel für einen T-SQL-Befehl für eine einzelne Vollsicherungsdatei
Mit diesem Beispielbefehl wird eine Vollsicherung der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); DECLARE @BackupPath NVARCHAR(2000); SET @BackupPath = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '.bak'; DECLARE @SQL NVARCHAR(MAX); SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] TO DISK = N''' + @BackupPath + ''''; EXEC sp_executesql @SQL; GO
Beispiel für einen T-SQL-Befehl für gestreifte Vollsicherungsdateien
Mit diesem Beispielbefehl wird eine Vollsicherung der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); DECLARE @BackupPath1 NVARCHAR(2000); DECLARE @BackupPath2 NVARCHAR(2000); DECLARE @BackupPath3 NVARCHAR(2000); SET @BackupPath1 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak'; SET @BackupPath2 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak'; SET @BackupPath3 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak'; DECLARE @SQL NVARCHAR(MAX); SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] ' + 'TO DISK = N''' + @BackupPath1 + ''', ' + 'DISK = N''' + @BackupPath2 + ''', ' + 'DISK = N''' + @BackupPath3 + ''' ' + 'WITH FORMAT, ' + 'MEDIANAME = N''AdventureWorksStripedSet0'', ' + 'MEDIADESCRIPTION = N''Striped media set for ' + @DATABASE + ' database'''; EXEC sp_executesql @SQL; GO
- Laden Sie die Sicherungsdatei in einen Cloud Storage-Bucket hoch. Weitere Informationen finden Sie unter Cloud Storage-Bucket erstellen und konfigurieren.
Vollsicherung für Amazon RDS erstellen
So erstellen Sie eine Vollsicherung Ihrer Amazon RDS-Quelle:
- Folgende Anforderungen müssen erfüllt sein:
- Sie verwenden die richtigen Benennungsanforderungen für Ihre Sicherungsdateien.
- Ihre Quelldatenbanken verwenden nicht das einfache Wiederherstellungsmodell. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Wiederherstellungsmodell für Ihre Microsoft SQL Server-Datenbank bestimmen.
- Wenn Sie nach der Vollsicherung die Sicherung von Transaktionslogs verwenden möchten, aktivieren Sie automatische Sicherungen auf Ihrer Amazon RDS-Instanz.
- Richten Sie die native Sicherungsfunktion ein. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Einrichtung für native Sicherung und Wiederherstellung.
- Erstellen Sie eine Vollsicherung Ihrer Quellinstanz. Wenn Ihre Datenbank größer als 5 TB ist, müssen Sie die Vollsicherung mit dem Parameter
@number_of_filesin separate Stripes aufteilen. Jede Datei darf maximal 5 TB groß sein. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Datenbank sichern .Sie können auch den folgenden Beispielbefehl verwenden:
Beispielabfrage für eine Vollsicherung in Amazon RDS
Mit diesem Beispielbefehl wird eine Vollsicherung der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @unixTimestamp varchar(30); declare @fileName varchar(1000); SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE + '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE; exec msdb.dbo.rds_backup_database @source_db_name=@DATABASE, @s3_arn_to_backup_to=@fileName, @overwrite_s3_backup_file=1, @type='FULL', @number_of_files=1;
- Laden Sie die Sicherungsdatei in einen Cloud Storage-Bucket hoch. Weitere Informationen finden Sie unter Cloud Storage-Bucket erstellen und konfigurieren.
Differenzielles Backup der Quellinstanz erstellen
Sie können während der inkrementellen Ladephase Ihres Migrationsjobs eine differenzielle Datenbanksicherungsdatei verwenden. Sie können verschlüsselte differenzielle Sicherungsdateien verwenden, wenn Sie auch die Vollsicherungsdatei und die Transaktionslogdateien für dieselbe Datenbank verschlüsseln. Alle Sicherungs- und Transaktionsprotokolldateien müssen pro Datenbank denselben Verschlüsselungsschlüssel verwenden. Weitere Informationen finden Sie unter Verschlüsselte Sicherungen verwenden.
Differenzielles Backup für lokale SQL Server-Instanzen erstellen
Sie können das differenzielle Backup Ihrer lokalen SQL Server-Instanz mit T-SQL oder SQL Server Management Studio (SSMS) erstellen. Gehen Sie so vor:
- Folgende Anforderungen müssen erfüllt sein:
- Sie verwenden die richtigen Benennungsanforderungen für Ihre Sicherungsdateien.
- Ihre Quelldatenbanken verwenden nicht das einfache Wiederherstellungsmodell. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter Wiederherstellungsmodelle (SQL Server) .
- Wenn Ihre Datenbank größer als 5 TB ist, müssen Sie das differenzielle Backup in separate Stripes aufteilen. Jede Datei darf maximal 5 TB groß sein. Siehe Sicherungsgeräte in einem Stripesetmedium.
- Erstellen Sie ein differenzielles Backup Ihrer Quellinstanz. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter
Differenzielle Datenbanksicherung erstellen. Sie können sich auch die folgenden Beispielbefehle ansehen:
Beispiel für einen T-SQL-Befehl für eine einzelne differenzielle Sicherungsdatei
Mit diesem Beispielbefehl wird ein differenzielles Backup der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); DECLARE @BackupPath NVARCHAR(2000); SET @BackupPath = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '.bak'; DECLARE @SQL NVARCHAR(MAX); SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] TO DISK = N''' + @BackupPath + ''' WITH DIFFERENTIAL'; EXEC sp_executesql @SQL; GO
Beispiel für einen T-SQL-Befehl für gestreifte differenzielle Sicherungsdateien
Mit diesem Beispielbefehl wird ein differenzielles Backup der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); DECLARE @BackupPath1 NVARCHAR(2000); DECLARE @BackupPath2 NVARCHAR(2000); DECLARE @BackupPath3 NVARCHAR(2000); SET @BackupPath1 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak'; SET @BackupPath2 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak'; SET @BackupPath3 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak'; DECLARE @SQL NVARCHAR(MAX); SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] ' + 'TO DISK = N''' + @BackupPath1 + ''', ' + 'DISK = N''' + @BackupPath2 + ''', ' + 'DISK = N''' + @BackupPath3 + ''' ' + 'WITH DIFFERENTIAL, FORMAT, ' + 'MEDIANAME = N''AdventureWorksStripedSet0'', ' + 'MEDIADESCRIPTION = N''Striped differential media set for ' + @DATABASE + ' database'''; EXEC sp_executesql @SQL; GO
- Laden Sie die Sicherungsdatei in einen Cloud Storage-Bucket hoch. Weitere Informationen finden Sie unter Cloud Storage-Bucket erstellen und konfigurieren.
Differenzielle Sicherung für Amazon RDS erstellen
So erstellen Sie ein differenzielles Backup Ihrer Amazon RDS-Quelle:
- Folgende Anforderungen müssen erfüllt sein:
- Sie verwenden die richtigen Benennungsanforderungen für Ihre Sicherungsdateien.
- Ihre Quelldatenbanken verwenden nicht das einfache Wiederherstellungsmodell. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Wiederherstellungsmodell für Ihre Microsoft SQL Server-Datenbank bestimmen.
- Richten Sie die native Sicherungsfunktion ein. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Einrichtung für native Sicherung und Wiederherstellung.
- Erstellen Sie ein differenzielles Backup Ihrer Quellinstanz. Verwenden Sie die gespeicherte Prozedur
rds_backup_database, wobei der ParametertypeaufDIFFERENTIALgesetzt ist.Wenn Ihre Datenbank größer als 5 TB ist, müssen Sie die Vollsicherung mit dem Parameter
@number_of_filesin separate Stripes aufteilen. Jede Datei darf maximal 5 TB groß sein.Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Datenbank sichern . Sie können auch den folgenden Beispielbefehl prüfen:
Beispielabfrage zum Erstellen einer differenziellen Sicherung in Amazon RDS
Mit diesem Beispielbefehl wird ein differenzielles Backup der Datenbank
AdventureWorks2022erstellt. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @unixTimestamp varchar(30); declare @fileName varchar(1000); SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE + '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE; exec msdb.dbo.rds_backup_database @source_db_name=@DATABASE, @s3_arn_to_backup_to=@fileName, @overwrite_s3_backup_file=1, @type='DIFFERENTIAL', @number_of_files=1;
- Laden Sie die Sicherungsdatei in einen Cloud Storage-Bucket hoch. Weitere Informationen finden Sie unter Cloud Storage-Bucket erstellen und konfigurieren.
Transaktionslog-Sicherungen erstellen
Sicherungsdateien mit Transaktionslogs enthalten die Änderungen, die nach der Vollsicherung in Ihrer Quelldatenbank vorgenommen werden. Für die Phase des kontinuierlichen Ladens Ihres Migrationsjobs sind Sicherungen von Transaktionslogs erforderlich. Sie können regelmäßige Exporte und Uploads von Transaktionslogs planen, damit Datenaktualisierungen kontinuierlich in Ihre Cloud SQL for SQL Server-Zielinstanz repliziert werden. Weitere Informationen finden Sie unter Sicherungen von Transaktionslogs planen.
Wenn Sie verschlüsselte Sicherungsdateien verwenden, müssen Sie auch die Transaktionsprotokolldateien für dieselbe Datenbank verschlüsseln. Weitere Informationen finden Sie unter Verschlüsselte Sicherungen verwenden.
Transaktionslogsicherung für lokale SQL Server-Instanzen erstellen
So erstellen Sie eine Transaktionsprotokollsicherung Ihrer lokalen SQL Server-Datenbanken:
- Folgende Anforderungen müssen erfüllt sein:
- Sie verwenden die richtigen Benennungsanforderungen für Ihre Sicherungsdateien.
- Ihre Quelldatenbanken verwenden nicht das einfache Wiederherstellungsmodell. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter Wiederherstellungsmodelle (SQL Server) .
- Exportieren Sie die Transaktionslogdateien aus Ihren SQL Server-Quelldatenbanken. Weitere Informationen finden Sie in der Microsoft-Dokumentation unter
Transaktionsprotokoll sichern.
Sie können sich auch den folgenden Beispielbefehl ansehen:
Beispiel für einen T-SQL-Befehl zum Exportieren von Transaktionslogdateien auf ein lokales Laufwerk
Mit diesem Beispielbefehl wird eine Transaktionsprotokollsicherung der Datenbank
AdventureWorks2022erstellt und die Datei auf dem lokalen Laufwerk gespeichert. Die resultierende Sicherungsdatei verwendet die erforderliche Namenskonvention.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); DECLARE @BackupPath NVARCHAR(2000); SET @BackupPath = 'X:\SQLServerBackups\log\' + @DATABASE + '.' + @unixTimestamp + '.trn'; DECLARE @SQL NVARCHAR(MAX); SET @SQL = 'BACKUP LOG [' + @DATABASE + '] TO DISK = N''' + @BackupPath + ''''; EXEC sp_executesql @SQL; GO
- Laden Sie die Sicherungsdateien der Transaktionslogs in den Cloud Storage-Bucket hoch, den Sie für die Migration erstellt haben.
Transaktionslog-Backup für Amazon RDS erstellen
Transaktionslog-Sicherungen werden automatisch erstellt, wenn automatische Sicherungen auf Ihrer Amazon RDS-Instanz aktiviert sind. Weitere Informationen finden Sie in der Amazon RDS-Dokumentation unter Automatische Sicherungen aktivieren.
So verwenden Sie Transaktionsprotokoll-Sicherungsdateien für die Migration:
- Aktivieren Sie den Zugriff auf Transaktionslogdateien in Ihrer Amazon RDS-Instanz.
Weitere Informationen finden Sie unter
Zugriff auf Transaktionslog-Sicherungen mit RDS for SQL Server.
Sie können sich auch den folgenden Beispielbefehl ansehen:
Beispiel für einen Aufruf einer gespeicherten Prozedur, um den Zugriff auf das Transaktionslog in Amazon RDS zu aktivieren
declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @targetS3Arn varchar(1000);
SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @targetS3Arn = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/log/');
USE @DATABASE; exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn=@targetS3Arn;
- Kopieren Sie die Sicherungsdateien des Transaktionslogs aus Ihrem S3-Bucket in den Cloud Storage-Bucket, den Sie für die Migration erstellt haben.