Wie führe ich ein Upgrade oder Downgrade der Edition der SQL-Server-Engine in RDS for SQL Server durch?

Lesedauer: 9 Minute
0

Ich möchte die Edition der SQL-Server-Engine im Relational Database Service (Amazon RDS) für SQL Server aktualisieren oder herunterstufen. Wie kann ich vorgehen?

Kurzbeschreibung

Amazon RDS for SQL Server unterstützt die Express-, Web-, Standard- und Enterprise-Editionen. Sie können eine Änderung der SQL-Server-Edition nicht als direkte Änderung mit der RDS-Konsole oder der AWS Command Line Interface (AWS CLI) durchführen.

Um Ihre SQL-Server-Edition zu aktualisieren, erstellen Sie einen Snapshot und führen Sie die Wiederherstellung mit der höheren Engine-Edition aus. Verwenden Sie eine dieser Methoden, um ein Downgrade durchzuführen:

  • Verwenden Sie die native Backup- und Wiederherstellungsoption in RDS for SQL Server.
  • AWS Database Migration Service (AWS DMS).
  • Import und Export von SQL-Server-Daten mit anderen Tools.

Auflösung

Aktualisieren Sie die Edition der SQL-Server-Engine

Um die Edition der SQL-Server-Engine zu aktualisieren, erstellen Sie einen RDS-Snapshot und führen Sie dann die Wiederherstellung von diesem Snapshot aus. Informationen zu Upgrade-Einschränkungen finden Sie unter Hinweise zu Microsoft SQL Server.

Um ein Upgrade mithilfe eines Snapshots durchzuführen, folgen Sie diesen Schritten:

1.    Erstellen Sie einen Snapshot der ursprünglichen Instance von RDS for SQL Server.

2.    Stellen Sie den in Schritt 1 erstellten Snapshot wieder her, um eine neue RDS-Instance zu erstellen. Ändern Sie während der Wiederherstellung die erforderliche Edition auf die höhere Edition.

3.    Benennen Sie die ursprüngliche Instance von RDS for SQL Server um oder löschen Sie sie, um den DNS-Endpunktnamen für die Wiederverwendung freizugeben. Weitere Informationen finden Sie im Abschnitt Umbenennen der RDS-Instance.

Detaillierte Anweisungen und Schritte zum Upgrade von der Standard-Edition auf die Enterprise-Edition finden Sie unter Ändern einer Instance von Amazon RDS for SQL Server von Standard-Edition auf Enterprise-Edition.

Sie können dieselbe Snapshot-Wiederherstellungsmethode für diese Upgrades verwenden:

  • Standard-Edition zu Enterprise-Edition
  • Web Edition zu Standard Edition oder Enterprise Edition
  • Express Edition zu Web Edition, Standard Edition oder Enterprise Edition

Wichtiger Hinweis: Die Snapshot-Wiederherstellung während des Upgrades der Edition erstellt eine neue Server-Instance für RDS for SQL. Die neue Instance hat einen anderen RDS-Endpunkt als die Snapshot-Quell-Instance.

Downgrade der SQL-Server-Edition

Ein direktes Downgrade der Instance von RDS for SQL Server von höheren auf niedrigere Editionen wird aufgrund von Einschränkungen mit SQL Server als Produkt nicht unterstützt. Sie können Ihre Edition von RDS for SQL Server jedoch in einer der folgenden Kombinationen herunterstufen, indem Sie die weiter unten genannten Abhilfeoptionen befolgen:

  • Enterprise-Edition zu Standard-, Web- oder Express-Edition
  • Standard-Edition zu Web- oder Express-Edition
  • Web-Edition zu Express-Edition

Verwenden Sie eine der folgenden Optionen, um die Edition von RDS for SQL Server herunterzustufen:

Option 1: Verwenden Sie die native Backup- und Wiederherstellungsoption in RDS for SQL Server

Hinweis: Sie können diese Option auch verwenden, um Datenbanken von niedrigeren in höhere Editionen von RDS-Instances zu verschieben.

Bei nativem Backup und Wiederherstellung wird ein vollständiges Backup der Datenbanken auf der vorhandenen Quell-Instance von RDS for SQL Server erstellt. Speichern Sie die Backups auf Amazon Simple Storage Service (Amazon S3) und stellen Sie die Sicherungsdateien anschließend auf einer neuen RDS-Ziel-Instance wieder her.

Folgen Sie diesen Schritten, um ein Downgrade von einer Enterprise-Quell-Instance auf eine Standard-Ziel-Instance durchzuführen:

1.    Erstellen Sie einen neuen RDS for SQL Server mit einem Standard-Edition-SQL-Server. Dies ist die neue Ziel-Instance.

2.    Fügen Sie die native Backup- und Wiederherstellungsoption auf den Quell-Instances der Enterprise-Edition und den Ziel-Instances der Standard-Edition hinzu.

3.    Sichern Sie jede Benutzerdatenbank auf der Quell-Instance (Enterprise) in einem S3-Bucket.

4.    Führen Sie die sys.dm_dm_persisted_sku-features (Transact-SQL)-Abfrage für jede Datenbank in der Quell-Instance aus. Diese Abfrage überprüft, ob derzeit Funktionen verwendet werden, die an die höhere Edition gebunden sind. Funktionen, die an die höhere Edition gebunden sind, funktionieren möglicherweise nicht, wenn Sie die Datenbanken auf der Ziel-Instance der niedrigeren Edition wiederherstellen.

USE [database-name]
    GO
    SELECT feature_name FROM sys.dm_db_persisted_sku_features;
    GO

5.    Stellen Sie die Backups aus dem S3-Bucket auf der Ziel-RDS-Instance (Standard) wieder her.

6.    Stellen Sie sicher, dass Sie die erforderlichen Logins und Benutzer in den Ziel-RDS-Instance-Datenbanken erstellen. Erstellen Sie außerdem die entsprechende Sicherheitsgruppe und fügen Sie die entsprechenden Parameter-Optionsgruppen hinzu. Diese sind die gleichen wie die Quell-RDS-Instance.

Hinweis: Mit den vorherigen Schritten können Sie Datenbanken in allen Editionen von SQL-Server in RDS exportieren und importieren.

Option 2: Verwenden Sie AWS DMS

Hinweis: Sie können diese Option auch verwenden, um Datenbanken von niedrigeren in höhere Editionen von RDS-Instances zu verschieben.

Verwenden Sie AWS DMS, um Ihre Datenbanken zu migrieren. AWS DMS repliziert auch laufende Änderungen von der Instance der höheren Edition (dem Quell-Endpunkt) zur Instance der niedrigeren Edition (dem Ziel-Endpunkt).

AWS DMS ermöglicht unidirektionale Replikation sowie Massenladen von Tabellen und erfasst Datenänderungen (sofern dies von den Quell- und Ziel-Instance-Versionen von RDS for SQL Server unterstützt wird).

Weitere Informationen finden Sie in diesen Themen:

Option 3: Importieren und Exportieren von SQL-Server-Daten mit anderen Tools

Sie können diese zusätzlichen Tools verwenden, um Ihre Datenbank zu importieren und zu exportieren:

  • Import- und Export-Assistent für SQL-Server
  • Assistent für die Generierung und Veröffentlichung von Skripts
  • Massenkopie (bcp-Hilfsprogramm)

Die Instance mit der niedrigeren SQL-Server-Edition muss erstellt und aktiv sein, bevor diese Tools verwendet werden können.

Beachten Sie, dass diese Tools mehr Aufwand erfordern als natives Backup und Wiederherstellung oder AWS DMS. Möglicherweise treten mehrfache Datenkonsistenz-Fehler oder Integritätsfehler auf, die behoben werden müssen. Diese Fehler treten auf, wenn Daten mit diesen Tools verschoben werden. Testen Sie den Prozess gründlich in einer Testumgebung, bevor Sie sich für eines dieser Tools entscheiden.

  • Import- und Export-Assistent für SQL Server: Kopieren und erstellen Sie das Schema der Datenbanken und Objekte von der Quell-Instance auf die Ziel-Instance. Verwenden Sie dann diesen Assistenten, um eine oder mehrere Tabellen, Ansichten oder Abfragen von einer DB-Instance für RDS for SQL Server in einen anderen Datenspeicher zu kopieren. Weitere Informationen finden Sie unter Import- und Export-Assistent für SQLServer.
  • SQL-Server-Assistent zum Generieren und Veröffentlichen von Skripts und bcp-Hilfsprogramm: Verwenden Sie den SQL-Server-Assistenten zum Generieren und Veröffentlichen von Skripts, um Skripts für eine gesamte Datenbank oder ausgewählte Objekte zu erstellen. Sie können diese Skripts auf einer Ziel-DB-Instance von SQL-Server ausführen, um die skriptbasierten Objekte neu zu erstellen. Verwenden Sie dann das bcp-Hilfsprogramm, um die Daten für die ausgewählten Objekte in die Ziel-DB-Instance zu exportieren. Führen Sie das bcp-Hilfsprogramm von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus, die sowohl mit der Quell- als auch mit der Ziel-RDS-Instance verbunden ist. Weitere Informationen finden Sie unter SQL-Server-Assistent zum Generieren und Veröffentlichen von Skripts und das bcp-Hilfsprogramm.

Hinweis: Alle in diesem Abschnitt genannten Optionen können auch verwendet werden, um Datenbanken von einer niedrigeren Edition auf eine höhere Edition von Instances von RDS for SQL Server zu migrieren. Der im Abschnitt Upgrade der SQL-Server-Edition erläuterte Ansatz ist jedoch einfacher. Die Entscheidung, welche Option verwendet werden soll, hängt von Faktoren wie Ausfallzeiten, Aufwand, Komplexität usw. ab.

Umbenennen der RDS-Instance

Die beschriebenen Optionen für das Upgrade oder Downgrade der Edition von RDS for SQL Server führen immer zur Erstellung einer neuen Ziel-RDS-Instance. Die neue RDS-Instance hat einen anderen RDS-DNS-Endpunkt als die vorhandene Quell-RDS-Instance.

Manchmal wird beim Aktualisieren des neuen RDS-Endpunkts über Anwendungen und andere Services hinweg die Aktualisierung der Verbindungszeichenfolge in einer oder mehrerer dieser Komponenten verfehlt. In diesem Fall können nach der Editionsänderung der Instance von RDS for SQL Server Probleme auftreten.

Um dies zu vermeiden, sollten Sie die Quell- und Ziel-RDS-Instances umbenennen. Durch das Umbenennen wird sichergestellt, dass die Ziel-Edition-Instance denselben RDS-DNS-Endpunkt wie die ursprüngliche Quell-Edition-Instance hat.

Dadurch wird vermieden, dass nach der Editionsänderung auf der Instance von RDS for SQL Server Änderungen an den Verbindungszeichenfolgen der abhängigen Anwendungen oder Services vorgenommen werden.

Gehen Sie folgendermaßen vor, um die Quell- und Ziel-RDS-Instances nach dem Ändern der Edition umzubenennen:

In diesem Beispiel wird davon ausgegangen, dass die RDS-Quell-Instance rds-original mit Enterprise-Edition ist. Die Ziel-Instance ist rds-new mit der Standard-Edition.

1.    Anhalten des gesamten eingehenden Datenverkehr (Anwendung anhalten) zur Quell-Instance rds-original.

2.    Führen Sie die vorherigen Schritte oder Optionen für ein Upgrade oder Downgrade der SQL-Server-Edition auf der RDS-Instance aus. Nachdem die Edition erfolgreich geändert wurde, gibt es zwei Instances: Die Quell-Instance ist rds-original und die Ziel-Instance ist rds-new.

3.    Ändern Sie die Quell-Instance, um die DB-Kennung von rds-original in einen anderen Namen umzubenennen, z. B. rds-original-old.

4.    Nachdem die Instance rds-original-old im Zustand Verfügbar ist, benennen Sie die DB-Kennung der Ziel-Instance von rds-new in den Namen der Original-Instance, rds-original um.

5.    Stellen Sie sicher, dass die Instances in rds-original-old und rds-original umbenannt wurden und sich im Status Verfügbar befinden.

6.    Stellen Sie sicher, dass die zugehörigen RDS-Sicherheitsgruppen, die an die Ziel-RDS-Instance der neuen Edition angehängt sind, mit der Quell-Instance identisch sind. Dadurch wird sichergestellt, dass die Netzwerkkonnektivität der vorhandenen Anwendungen gleich bleibt.

7.    Lassen Sie jetzt eingehenden Datenverkehr (Anwendung starten) zur Instance rds-original zu, die über die erforderliche SQL-Server-Edition verfügt. Für die Verbindungszeichenfolgen der Anwendung sind keine Änderungen erforderlich, da RDS denselben DNS-Endpunkt wie die Quell-Instance hat.

8.    Führen Sie die Anwendungstests durch, um sicherzustellen, dass nach der Änderung der RDS-Instance-Edition keine Auswirkungen auftreten.

9.    Wenn alles funktioniert, erstellen Sie einen endgültigen Snapshot der Instance rds-original-old und löschen Sie dann diese Instance, um Kosten zu sparen.

Hinweis: Es ist eine bewährte Methode, Vorgänge zuerst in einer untergeordneten Umgebung zu testen, bevor sie in der Produktionsumgebung implementiert werden. Auf diese Weise erhalten Sie eine Schätzung, wie viel Zeit die Änderungen in Anspruch nehmen werden. Außerdem können Sie alle Probleme identifizieren, die während des Vorgangs auftreten, um die Implementierung in der Produktionsumgebung reibungsloser zu gestalten.


Relevante Informationen

AWS Prescriptive Guidance – Bewertung eines Downgrades von Microsoft SQL Server von der Enterprise-Edition auf die Standard-Edition in AWS

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren