Direkt zum Inhalt

Wie kann ich Datenbanken von Amazon EC2-Instances oder On-Premises-VMs zu Amazon RDS für SQL Server migrieren?

Lesedauer: 5 Minute
0

Ich möchte Datenbanken von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance oder einer On-Premises-Microsoft SQL Server-Instance zu meiner Amazon Relational Database Service (Amazon RDS) für Microsoft SQL Server-Instance migrieren.

Lösung

Methoden für die Migration von Daten

Native SQL Server-Sicherung und -Wiederherstellung

Du kannst native Sicherung und Wiederherstellung verwenden, um die SQL Server-Datenbank von einer On-Premises- oder Amazon EC2-Instance zu einer Amazon RDS für SQL Server-Instance zu migrieren. Gehe dazu wie folgt vor:

  1. Erstelle einen Amazon Simple Storage Service (Amazon S3)-Bucket, um das Back-up von der Quell-Instance zu speichern. Der Amazon S3-Bucket muss sich in derselben AWS-Region wie die Amazon RDS-Instance befinden.

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

  3. Füge die Option SQLSERVER_BACKUP_RESTORE zur Optionsgruppe hinzu, die der Amazon RDS für SQL Server-Instance zugeordnet ist.

  4. Erstelle ein Back-up von der Quell-Instance (On-Premises oder Amazon EC2) und kopiere es dann in den Amazon S3-Bucket, den du in Schritt 1 erstellt hast.

  5. Führe das folgende Skript aus, um das Back-up auf der Amazon RDS für SQL Server-Instance wiederherzustellen:

    exec msdb.dbo.rds_restore_database  
    @restore_db_name='database_name',   
    @s3_arn_to_restore_from='arn:aws:s3:::bucket_name file_name_and_extension';
  6. Führe das folgende Skript aus, um die Amazon RDS-Instance-Datenbank auf S3 zu sichern:

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

    Hinweis: Du kannst auch differenzielle Back-ups sichern und wiederherstellen.

AWS Database Migration Service (AWS DMS)

Führe die folgenden Schritte aus:

  1. Überprüfe die Voraussetzungen und Einschränkungen für die Verwendung von SQL Server als Quelle oder Ziel für AWS DMS.
  2. Erstelle eine AWS DMS-Replikations-Instance.
  3. Verwende AWS DMS, um Quell- und Zielendpunkte zu erstellen.
  4. Erstelle eine Migrationsaufgabe.

Transaktionsreplikation

Du kannst die Transaktionsreplikation von den On-Premises- oder EC2 SQL Server-Instances auf eine Amazon RDS für SQL Server-Instance einrichten. Du kannst die Amazon RDS für SQL Server-Instance jedoch nur zu einem Subscriber machen. Und du kannst die On-Premises- oder EC2 SQL Server-Instance nur mit Push-Abonnement zum Publisher oder Distributor machen.

Um die Transaktionsreplikation von einer On-Premises- oder Amazon EC2 SQL Server-Instance aus einzurichten, lies die folgenden Anweisungen:

Back-up-Paketdatei (.bacpac)

Die .bacpac-Datei besteht aus kopierten Metadaten und den zu einer Datei komprimierten Daten. Es hat sich bewährt, eine.bacpack-Datei für Datenbanken zu verwenden, die etwa 200 GB groß sind. Du kannst Export/Import oder das Hilfsprogramm SQLPackage.exe (Befehlszeile) verwenden, um eine.bacpac-Datei zu erstellen. Weitere Informationen zur .bacpac-Datei findest du unter Migrieren von SQL Server-Datenbanken von einer Azure SQL-Datenbank zu Amazon RDS für SQL Server mithilfe der bacpac-Methode.

Verfahren zum Importieren von Daten

Assistent zum Generieren und Veröffentlichen von Skripten

Wenn die Datenbank kleiner als 1 GB ist, kannst du den Assistenten zum Generieren und Veröffentlichen von Skripten verwenden. Bei größeren Datenbanken kannst du den Import- und Export-Assistenten oder Verfahren für Massenkopien verwenden, um das Schema der Datenbank zu skripten. Weitere Informationen zum Assistenten zum Generieren und Veröffentlichen von Skripten findest du unter Wie generiere ich ein Skript (SQL Server Management Studio) in der Microsoft SQL Server-Dokumentation.

Hinweis: Vergewissere dich, dass du auf der Seite Skriptoption festlegen die Option Skripte an einem bestimmten Ort speichern und „Erweitert auswählen. Die Einstellung Erweitert bietet zusätzliche Optionen zum Ein- oder Ausschließen von Objekten in der Tabelle beim Import und Export.

Import- und Exportassistent

Der Import- und Exportassistent erstellt ein Integrationspaket. Das Integrationspaket wird verwendet, um Daten aus der On-Premises- oder Amazon EC2 SQL Server-Datenbank auf die Amazon RDS für SQL Server-Instance zu kopieren. Du kannst die spezifischen Tabellen filtern, die du in die Amazon RDS-Instance kopieren möchtest.

Weitere Informationen zum Import- und Exportassistenten findest du unter Wie führe ich den SQL Server-Import- und Exportassistenten in der Microsoft SQL Server-Dokumentation aus.

Hinweis: Wenn du den Import- und Exportassistenten ausführst, stellst du sicher, dass du die folgenden Optionen für das Ziel der Amazon RDS für SQL Server-Instance wählst:

  • Gib für Servername den Namen des Endpunkts für die Amazon RDS-DB-Instance ein.
  • Wähle für den Authentifizierungsmodus die Option SQL Server-Authentifizierung.
  • Gib für den Benutzernamen und das Passwort den Hauptbenutzer ein, den du in der Amazon RDS-Instance erstellt hast.

Hilfsprogramm für Bulk Copy Program

Das Bulk Copy Program (bcp) ist ein Befehlszeilenprogramm, das zum Massenkopieren von Daten zwischen SQL Server-Instances verwendet wird. Du kannst das BCP-Hilfsprogramm verwendest, um große Datenmengen in eine SQL Server-Instance zu importieren oder in eine Datei zu exportieren.

Im Folgenden findest du Beispiele für die Befehle IN und OUT:

OUT: Verwende diesen Befehl, um die Datensätze aus einer Tabelle in eine Datei zu exportieren oder zu speichern:

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

Der vorherige Code enthält die folgenden Optionen:

  • -n: gibt an, dass die Massenkopie die systemeigenen Datentypen der zu kopierenden Daten verwendet.
  • -S: gibt die SQL Server-Instance an, mit der das BCP-Hilfsprogramm eine Verbindung herstellt.
  • -U: gibt den Benutzernamen des AWS-Kontos an, um sich bei der SQL Server-Instance anzumelden.
  • -P: gibt das Passwort für den durch**-U** angegebenen Benutzer an.
  • -b: gibt die Anzahl der Zeilen pro Batch importierter Daten an.

IN: Verwende diesen Befehl, um alle Datensätze aus der Dump-Datei in die vorhandene Tabelle zu importieren. Du musst die Tabelle erstellen, bevor du den Befehl „bcp“ ausführst.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

Weitere Informationen findest du unter BPC-Hilfsprogramm in der Microsoft SQL Server-Dokumentation.