Upgrades der DB-Engine von RDS für PostgreSQL - Amazon Relational Database Service

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.

Upgrades der DB-Engine von RDS für PostgreSQL

Es gibt zwei Arten von Upgrades für Ihre PostgreSQL-Datenbank:

  • Betriebssystemupdates – Amazon RDS muss gelegentlich das Ihrer Datenbank zugrunde liegende Betriebssystem aktualisieren, um Sicherheitsmängel zu beheben oder Betriebssystemänderungen anzuwenden. Sie können mithilfe der RDS-Konsole AWS Command Line Interface (AWS CLI) oder der RDS-API entscheiden, wann Amazon RDS Betriebssystemupdates einführt. Weitere Informationen zu Betriebssystem-Aktualisierungen finden Sie unter Anwenden von Updates auf eine DB-Instance.

  • Datenbank-Engine-Upgrades – Wenn Amazon RDS eine neue Version einer Datenbank-Engine unterstützt, können Sie Ihre Datenbanken auf die neue Version upgraden.

Eine Datenbank ist in diesem Zusammenhang eine DB-Instance von RDS für PostgreSQ oder ein Multi-AZ-DB-Cluster.

Es gibt zwei Arten von Engine-Upgrades für PostgreSQL-Datenbanken: Hauptversion-Upgrades und Unterversion-Upgrades.

Hauptversions-Upgrades

Hauptversions-Upgrades können Datenbankänderungen enthalten, die nicht mit vorhandenen Anwendungen rückwärts kompatibel sind. Daher müssen Sie Hauptversions-Upgrades Ihrer Datenbanken manuell durchführen. Sie können ein Hauptversions-Upgrade starten, indem Sie Ihre DB-Instance oder Ihren Multi-AZ-DB-Cluster ändern. Bevor Sie ein Hauptversion-Upgrade durchführen, sollten Sie die Schritte befolgen, die unter Auswählen einer Hauptversion für ein Upgrade von RDS für PostgreSQL beschrieben werden.

Amazon RDS verarbeitet Hauptversion-Upgrades mit Multi-AZ wie folgt:

  • Bereitstellung der DB-Instance mit Multi-AZ – Amazon RDS aktualisiert die primäre und alle Standby-Instances gleichzeitig. Ihre Datenbank ist möglicherweise für einige Minuten nicht verfügbar, während das Upgrade abgeschlossen wird.

  • Bereitstellung eines DB-Clusters mit Multi-AZ – Amazon RDS aktualisiert die Reader- und Writer-Instances gleichzeitig. Ihre Datenbank ist möglicherweise für einige Minuten nicht verfügbar, während das Upgrade abgeschlossen wird.

Wenn Sie eine DB-Instance mit Lesereplikaten in der Region aktualisieren. aktualisiert Amazon RDS die Replikate zusammen mit der primären DB-Instance.

Amazon RDS aktualisiert keine Lesereplikate von Multi-AZ-DB-Clustern. Bei Hauptversion-Upgrades eines DB-Clusters mit Multi-AZ ändert sich der Replikationsstatus der Lesereplikate in Beendet. Sie müssen die Lesereplikate nach Abschluss des Upgrades manuell löschen und neu erstellen.

Tipp

Sie können die Ausfallzeit, die für ein Upgrade einer Hauptversion erforderlich ist, minimieren, indem Sie eine blue/green Bereitstellung verwenden. Weitere Informationen finden Sie unter Verwenden von Amazon RDS Blue/Green Deployments für Datenbank-Updates.

Unterversion-Upgrades

Nebenversions-Upgrades enthalten dagegen nur Änderungen, die mit vorhandenen Anwendungen abwärtskompatibel sind. Sie können ein Nebenversions-Upgrade manuell starten, indem Sie Ihre Datenbank ändern. Alternativ können Sie beim Erstellen oder Ändern einer Datenbank die Option Automatisches Unterversions-Upgrade aktivieren. Hierdurch wird Ihre Datenbank von Amazon RDS automatisch aktualisiert, nachdem die neue Version getestet und genehmigt wurde.

Amazon RDS verarbeitet Unterversion-Upgrades mit Multi-AZ wie folgt:

  • Bereitstellung der DB-Instance mit Multi-AZ – Amazon RDS aktualisiert die primäre und alle Standby-Instances gleichzeitig. Ihre Datenbank ist möglicherweise für einige Minuten nicht verfügbar, während das Upgrade abgeschlossen wird.

  • Bereitstellung eines DB-Clusters mit Multi-AZ – Amazon RDS aktualisiert die Reader-DB-Instances nacheinander. Dann wechselt eine der Reader-DB-Instances zur neuen Writer-DB-Instance. Amazon RDS aktualisiert anschließend die alte Writer-Instance (die nun eine Reader-Instance ist). DB-Cluster mit Multi-AZ reduzieren die Ausfallzeit bei Unterversion-Upgrades in der Regel auf etwa 35 Sekunden. Bei Verwendung mit dem RDS-Proxy können Sie die Ausfallzeit weiter auf eine Sekunde oder weniger reduzieren. Weitere Informationen finden Sie unter Amazon-RDS-Proxy. Alternativ können Sie einen Open-Source-Datenbank-Proxy wie ProxySQL oder den AWS Advanced JDBC PgBouncerWrapper Driver verwenden.

Wenn Ihre Datenbank Lesereplikate verwendet, müssen Sie alle Lesereplikate aktualisieren, bevor Sie die Quell-Instance oder den Quell-Cluster aktualisieren.

Weitere Informationen finden Sie unter Automatische Unterversion-Upgrades von RDS für PostgreSQL. Informationen zur manuellen Durchführung eines Unterversionsupgrades finden Sie unter Manuelles Upgraden der Engine-Version.

Weitere Informationen über Datenbank-Engine-Versionen und die Richtlinie zur Ablehnung von Datenbank-Engine-Versionen finden Sie unter Datenbank-Engine-Versionen im Amazon RDS. FAQs

Überlegungen zu PostgreSQL-Upgrades

Um Ihre Datenbanken sicher zu aktualisieren, verwendet Amazon RDS das Dienstprogramm pg_upgrade, das in der PostgreSQL-Dokumentation beschrieben ist.

Wenn Ihr Aufbewahrungszeitraum für Backups größer als 0 ist, erstellt Amazon RDS während des Upgrade-Prozesses zwei DB-Snapshots. Der erste DB-Snapshot gehört zur Datenbank, bevor Änderungen im Rahmen des Upgrades vorgenommen wurden. Wenn das Upgrade bei Ihren Datenbanken nicht funktioniert, können Sie diesen Snapshot wiederherstellen, um eine Datenbank zu erstellen, auf der die alte Version ausgeführt wird. Der zweite DB-Snapshot wird nach Abschluss des Upgrades übernommen. Diese DB-Snapshots werden automatisch gelöscht, sobald die Aufbewahrungsfrist für Backups abgelaufen ist.

Anmerkung

Amazon RDS nimmt während des Upgrade-Vorgangs nur dann DB-Snapshots auf, wenn Sie für den Aufbewahrungszeitraum des Backups Ihrer Datenbank einen Wert größer als 0 festgelegt haben. Informationen zum Ändern des Aufbewahrungszeitraums für Backups für eine DB-Instance finden Sie unter Ändern einer Amazon-RDS-DB-Instance. Sie können keinen benutzerdefinierten Aufbewahrungszeitraum für Backups für Multi-AZ-DB-Cluster konfigurieren.

Wenn Sie ein Hauptversions-Upgrade einer DB-Instance durchführen, werden auch alle in der Region befindlichen Lesereplikate automatisch aktualisiert. Nach dem Start des Upgrade-Workflows warten die Lesereplikate auf den erfolgreichen Abschluss des pg_upgrade auf der primären DB-Instance. Dann wartet das Upgrade der primären DB-Instance auf den Abschluss der Upgrades der Lesereplikate. Bis das Upgrade abgeschlossen ist, treten Ausfälle auf. Bei Upgrades der Hauptversion eines Multi-AZ-DB-Clusters ändert sich der Replikationsstatus der Lesereplikate in Beendet.

Nachdem ein Upgrade abgeschlossen ist, können Sie nicht zur vorherigen Version der DB-Engine zurückkehren. Wenn Sie zur vorherigen Version zurückkehren möchten, stellen Sie den DB-Snapshot wieder her, der vor dem Upgrade erstellt wurde, um eine neue Datenbank zu erstellen.

Finden gültiger Upgrade-Ziele

Wenn Sie das verwenden, AWS-Managementkonsole um eine Datenbank zu aktualisieren, werden die gültigen Upgrade-Ziele für die Datenbank angezeigt. Sie können auch den folgenden AWS CLI Befehl verwenden, um die gültigen Upgrade-Ziele für eine Datenbank zu identifizieren:

Für Linux, macOS oder Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Für Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Um beispielsweise die gültigen Upgrade-Ziele für eine PostgreSQL-Datenbank der Version 16.1 zu identifizieren, führen Sie den folgenden Befehl aus: AWS CLI

Für Linux, macOS oder Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 16.1 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Für Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 16.1 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text