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

Letzte Aktualisierung: 18.10.2022

Ich möchte Datenbanken von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance oder von einer On-Premises-Instance von Microsoft SQL Server zu meiner Amazon Relational Database Service (Amazon RDS) für Microsoft-SQL-Server-Instance migrieren. Welche Optionen sind für die Migration der Daten verfügbar?

Lösung

Methoden für die Migration von Daten

Natives SQL-Server-Backup und -Wiederherstellung

Sie können die SQL-Server-Datenbank mithilfe des nativen Backups und Wiederherstellung von einer On-Premises- oder einer EC2-Instance zu einer Amazon RDS für SQL-Server-Instance migrieren.

1.    Erstellen Sie einen Amazon Simple Storage Service (Amazon S3)-Bucket, um die Sicherung von der Instance der Quelle zu speichern. Der S3-Bucket muss sich in derselben Region wie die RDS-Instance. befinden.

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

3.    Fügen Sie die Option SQLSERVER_BACKUP_RESTORE der Optionsgruppe hinzu, die der RDS for SQL Server-Instance zugeordnet ist.

4.    Erstellen Sie ein Backup von der Quell-Instance (On-Premises oder EC2), und kopieren Sie es dann in den S3-Bucket, den Sie in Schritt 1 erstellt haben.

5.    Führen Sie das folgende Skript aus, um das Backup auf der 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ühren Sie das folgende Skript aus, um die RDS-Instance-Datenbank in 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: Sie können auch differenzielle Backups sichern und wiederherstellen.

AWS Database Migration Service (AWS DMS)

1.    Überprüfen Sie die Voraussetzungen und Einschränkungen für die Verwendung von SQL Servern als Quelle oder Ziel für AWS DMS:

2.    Eine DMS-Replikations-Instance erstellen.

3.    Erstellen Sie Quell- und Zielendpunkte mithilfe von DMS.

4.    Erstellen Sie eine Migrationsaufgabe.

Transaktionale Replikation

Sie können die transaktionale Replikation von On-Premises oder EC2-SQL-Server-Instances auf RDS für SQL-Server-Instance einrichten. RDS für SQL-Server-Instance kann nur als Abonnent mit Push-Abonnement von der On-Premises oder EC2-SQL-Server-Instance als Publisher-Distributor erstellt werden.

Schrittweise Anweisungen zum Einrichten der transaktionalen Replikation von einer On-Premises oder EC2-SQL-Server-Instance aus finden Sie in den folgenden Abschnitten:

Backup-Paketdatei (.bacpac)

Die .bacpac-Datei besteht aus kopierten Metadaten und den in einer Datei komprimierten Daten. Dieser Ansatz ist die beste Wahl für Datenbanken mit etwa 200 GB.

Sie können eine .bacpac-Datei mit Export/Import oder mit dem Dienstprogramm SQLPackage.exe (Befehlszeile) erstellen.

Weitere Informationen zur .bacpac-Datei finden Sie unter Migrieren einer SQL-Server-Datenbank von einer Azure-SQL-Datenbank zu Amazon RDS für SQL Server mithilfe der .bacpac-Methode.

Methoden zum Importieren von Daten

Assistent zum Erstellen und Veröffentlichen von Skripten

Wenn Ihre Datenbank kleiner als 1 GB ist, können Sie den Assistenten zum Erstellen und Veröffentlichen von Skripten verwenden. Bei größeren Datenbanken können Sie das Schema der Datenbank mit dem Import- und Export-Assistenten oder den Massenkopiermethoden schreiben.

Weitere Informationen zum Assistenten zum Generieren und Veröffentlichen von Skripten finden Sie unter Vorgehensweise: Generieren eines Skripts (SQL Server Management Studio) in der Microsoft-SQL-Server-Dokumentation.

Hinweis: Stellen Sie sicher, dass Sie auf der Seite Scripting-Option festlegen die Option Skripts an einem bestimmten Speicherort sichern, Erweitert auswählen. Die Einstellung Erweitert bietet zusätzliche Optionen zum Ein- oder Ausschließen von Objekten in der Tabelle während des Imports und Exports.

Import- und Export-Assistent

Der Import- und Export-Assistent erstellt ein Integrationspaket. Das Integrationspaket wird verwendet, um Daten aus Ihrer On-Premises- oder EC2-SQL-Server-Datenbank in die RDS für SQL-Server-Instance zu kopieren. Sie können die spezifischen Tabellen filtern, die Sie in die RDS-Instance kopieren möchten.

Weitere Informationen zum Import- und Export-Assistenten finden Sie unter Vorgehensweise: Ausführen des SQL-Server-Import- und Export-Assistenten in der Microsoft-SQL-Server-Dokumentation.

Hinweis: Wenn Sie den Import- und Export-Assistenten ausführen, stellen Sie sicher, dass Sie die folgenden Optionen für die Ziel-RDS-Instance für SQL Server auswählen:

  • Geben Sie unter Servername den Namen des Endpunkts für die RDS-DB-Instance ein.
  • Wählen Sie für den Authentifizierungsmodus die Option SQL-Server-Authentifizierung aus.
  • Geben Sie für den Benutzernamen und das Passwort den Master-Benutzer ein, den Sie in der RDS-Instance erstellt haben.

Dienstprogramm zum Massenkopierprogramm

Das Bulk Copy Program (Massenkopierprogramm (bcp)) ist ein Befehlszeilenprogramm, das zum Massenkopieren von Daten zwischen SQL-Server-Instances verwendet wird. Sie können das Dienstprogramm bcp verwenden, um große Datenmengen in eine SQL Server-Instance zu importieren oder in eine Datei zu exportieren.

Im Folgenden finden Sie Beispiele für die Befehle IN und OUT:

OUT: Verwenden Sie 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 umfasst die folgenden Optionen:

  • -n: gibt an, dass die Massenkopie die nativen Datentypen der zu kopierenden Daten verwendet.
  • -S: gibt die SQL-Server-Instance an, mit der das Dienstprogramm bcp eine Verbindung herstellt.
  • -U: gibt den Benutzernamen des Kontos an, das bei der SQL-Server-Instance angemeldet werden soll.
  • -P: gibt das Passwort für den durch -U angegebenen Benutzer an.
  • -b: gibt die Anzahl der Zeilen pro Batch importierter Daten an.

IN: Verwenden Sie diesen Befehl, um alle Datensätze aus der Datei in die vorhandene Tabelle zu importieren. Die Tabelle muss erstellt werden, bevor der Befehl bcp ausgeführt wird.

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 finden Sie unter Massenkopierprogramm in der Microsoft-SQL-Server-Dokumentation.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?