Aktualisierung der SQL Postgre-DB-Engine für Amazon RDS - 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.

Aktualisierung der SQL Postgre-DB-Engine für Amazon RDS

Es gibt zwei Arten von Upgrades, die Sie für Ihre Postgre-Datenbank verwalten können: SQL

  • Betriebssystem-Updates — Gelegentlich muss Amazon RDS möglicherweise das Ihrer Datenbank zugrunde liegende Betriebssystem aktualisieren, um Sicherheitsupdates oder Betriebssystemänderungen anzuwenden. Sie können mithilfe der RDS Konsole entscheidenRDS, wann Amazon Betriebssystem-Updates einführt. AWS Command Line Interface (AWS CLI), oder RDSAPI. Weitere Informationen zu Betriebssystem-Aktualisierungen finden Sie unter Anwenden von Updates für eine DB-Instance.

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

Eine Datenbank ist in diesem Kontext eine RDS für SQL Postgre-DB-Instance oder ein Multi-AZ-DB-Cluster.

Es gibt zwei Arten von Engine-Upgrades für SQL Postgre-Datenbanken: Hauptversions-Upgrades und Nebenversions-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 Upgrade auf eine Hauptversion durchführen, empfehlen wir Ihnen, die unter beschriebenen Schritte zu befolgen. Auswahl eines Hauptversions-Upgrades für Postgre SQL

Wenn Sie ein Upgrade einer DB-Instance durchführen, die über regionsinterne Read Replicas verfügt, RDS aktualisiert Amazon die Replikate zusammen mit der primären DB-Instance.

Amazon führt RDS kein Upgrade von Multi-AZ-DB-Cluster-Read Replicas durch. Wenn Sie ein Hauptversions-Upgrade eines Multi-AZ-DB-Clusters durchführen, ändert sich der Replikationsstatus der Read Replicas auf „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 blaue/grüne Implementierung 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. Sie können auch die Option Automatisches Upgrade der Nebenversion aktivieren, wenn Sie eine Datenbank erstellen oder ändern. Das bedeutet, dass Amazon Ihre Datenbank nach dem Testen und Genehmigen der neuen Version RDS automatisch aktualisiert. Wenn Ihre SQL Postgre-Datenbank Read Replicas verwendet, müssen Sie zuerst alle Read Replicas aktualisieren, bevor Sie die Quell-Instance oder den Quellcluster aktualisieren.

Wenn es sich bei Ihrer Datenbank um eine Multi-AZ-DB-Instance-Bereitstellung handelt, aktualisiert Amazon RDS gleichzeitig die primäre und alle Standby-Instances. Daher ist Ihre Datenbank möglicherweise erst verfügbar, wenn das Upgrade abgeschlossen ist. Wenn es sich bei Ihrer Datenbank um eine Multi-AZ-DB-Cluster-Bereitstellung handelt, RDS aktualisiert Amazon die Reader-DB-Instances nacheinander. Dann wird eine der Reader-DB-Instances zur neuen Writer-DB-Instance. Amazon aktualisiert RDS dann die alte Writer-Instance (die jetzt eine Reader-Instance ist).

Anmerkung

Die Ausfallzeit bei einem kleineren Versions-Upgrade einer Multi-AZ-DB-Instance-Bereitstellung kann mehrere Minuten dauern. Multi-AZ-DB-Cluster reduzieren die Ausfallzeit bei Upgrades kleinerer Versionen in der Regel auf etwa 35 Sekunden. Bei Verwendung mit RDS Proxy können Sie die Ausfallzeit weiter auf eine Sekunde oder weniger reduzieren. Weitere Informationen finden Sie unter Amazon RDS Proxy verwenden. Alternativ können Sie einen Open-Source-Datenbank-Proxy wie Proxy verwenden SQL PgBouncer, oder AWS JDBCTreiber für My SQL,

Weitere Informationen finden Sie unter Automatische Upgrades für kleinere Versionen für Postgre SQL. 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

Überblick über das Upgrade von Postgre SQL

Um Ihre Datenbanken sicher zu aktualisieren, RDS verwendet Amazon das in der SQLPostgre-Dokumentation beschriebene pg_upgrade Hilfsprogramm.

Wenn Sie das verwenden AWS Management Console um eine Datenbank zu aktualisieren, werden die gültigen Upgrade-Ziele für die Datenbank angezeigt. Sie können auch Folgendes verwenden AWS CLI Befehl zur Identifizierung der gültigen Upgrade-Ziele für eine Datenbank:

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

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

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. 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 Postgre-Datenbank der SQL Version 12.13 zu identifizieren, führen Sie folgenden Befehl aus AWS CLI Befehl:

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

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

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

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

Wenn Ihre Aufbewahrungsdauer für Backups größer als 0 ist, erstellt Amazon RDS während des Upgrade-Vorgangs 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.

Anmerkung

Amazon RDS erstellt während des Upgrade-Vorgangs nur dann DB-Snapshots, wenn Sie die Aufbewahrungsfrist für Backups für Ihre Datenbank auf 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.

Postgre-Versionsnummern SQL

Die Reihenfolge der Versionsnummerierung für die SQL Postgre-Datenbank-Engine lautet wie folgt:

  • Für SQL Postgre-Versionen 10 und höher hat die Engine-Versionsnummer das Format major.minor. Die Hauptversionsnummer ist der ganzzahlige Teil der Versionsnummer. Die Nebenversionsnummer ist der Nachkommabereich der Versionsnummer.

    Ein Upgrade der Hauptversion erhöht den ganzzahligen Teil der Versionsnummer, z. B. ein Upgrade von 10.Nebenversion auf 11.Nebenversion.

  • Für SQL Postgre-Versionen vor 10 hat die Engine-Versionsnummer das Format major.major.minor. Die Engine-Hauptversionsnummer ist sowohl die Ganzzahl als auch der erste Nachkommateil der Versionsnummer. 9.6 ist beispielsweise eine Hauptversion. Die Nebenversionsnummer ist der dritte Teil der Versionsnummer. Beispiel: Für Version 9.6.12 ist die 12 die Nebenversionsnummer.

    Ein Upgrade der Hauptversion erhöht den Hauptteil der Versionsnummer. Beispielsweise ist ein Upgrade von 9.6.12 auf 11.14 ein Upgrade der Hauptversion, wobei 9.6 und 11 die Hauptversionsnummern sind.

Informationen zur Versionsnummerierung von RDS Extended Support finden Sie unterVersionsbenennung für Amazon RDS Extended Support.

RDS-Versionsnummer

RDSFür Versionsnummern wird das major.minor.patch Benennungsschema verwendet. Eine RDS Patch-Version enthält wichtige Bugfixes, die einer Nebenversion nach ihrer Veröffentlichung hinzugefügt wurden. Informationen zur Versionsnummerierung von RDS Extended Support finden Sie unterVersionsbenennung für Amazon RDS Extended Support.

Um die RDS Amazon-Versionsnummer Ihrer Datenbank zu ermitteln, müssen Sie zunächst die rds_tools Erweiterung mithilfe des folgenden Befehls erstellen:

CREATE EXTENSION rds_tools;

Ab der Veröffentlichung von Postgre SQL Version 15.2-R2 können Sie die RDS Versionsnummer Ihrer RDS for SQL Postgre-Datenbank mit der folgenden Abfrage ermitteln: SQL

postgres=> SELECT rds_tools.rds_version();

Wenn Sie beispielsweise eine RDS für Postgre SQL 15.2-Datenbank abfragen, wird Folgendes zurückgegeben:

rds_version ---------------- 15.2.R2 (1 row)

Auswahl eines Hauptversions-Upgrades für Postgre SQL

Hauptversions-Upgrades können Änderungen enthalten, die nicht mit früheren Versionen der Datenbank rückwärtskompatibel sind. Neue Funktionalität kann dazu führen, dass Ihre vorhandenen Anwendungen nicht mehr ordnungsgemäß funktionieren. Aus diesem Grund wendet Amazon Hauptversions-Upgrades RDS nicht automatisch an. Um ein Hauptversions-Upgrade durchzuführen, ändern Sie Ihre Datenbank manuell. Testen Sie alle Upgrades sorgfältig, um sicherzustellen, dass Ihre Anwendungen ordnungsgemäß funktionieren, bevor Sie das Upgrade auf Ihre Produktionsdatenbanken anwenden. Wenn Sie ein Upgrade der SQL Postgre-Hauptversion durchführen, empfehlen wir Ihnen, die unter beschriebenen Schritte zu befolgen. Durchführen eines Hauptversions-Upgrades

Wenn Sie eine SQL Postgre-Single-AZ-DB-Instance- oder Multi-AZ-DB-Instance-Bereitstellung auf die nächste Hauptversion aktualisieren, werden alle mit der Datenbank verknüpften Read Replicas ebenfalls auf die nächste Hauptversion aktualisiert. In einigen Fällen können Sie beim Upgrade auf eine höhere Hauptversion springen. Wenn das Upgrade eine Hauptversion überspringt, werden die Lesereplikate auch auf diese Ziel-Hauptversion aktualisiert. Upgrades auf Version 11, die andere Hauptversionen überspringen, haben gewisse Einschränkungen. Die Details finden Sie in den unter Durchführen eines Hauptversions-Upgrades beschriebenen Schritten.

Die meisten SQL Postgre-Erweiterungen werden während eines Postgre-Engine-Upgrades nicht aktualisiert. SQL Diese müssen separat aktualisiert werden. Weitere Informationen finden Sie unter Aktualisierung von Postgre-Erweiterungen SQL.

Sie können herausfinden, welche Hauptversionen für Ihre RDS for SQL Postgre-Datenbank verfügbar sind, indem Sie den folgenden Befehl ausführen AWS CLI abfragen:

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

In der folgenden Tabelle finden Sie eine Zusammenfassung der verfügbaren Versionen. Ein Sternchen (*) auf der Versionsnummer bedeutet, dass die Version nicht mehr unterstützt wird. Wenn Ihre aktuelle Version nicht unterstützt wird, empfehlen wir Ihnen, auf das Upgrade-Ziel der neuesten Nebenversion oder auf eines der anderen verfügbaren Upgrade-Ziele für diese Version zu aktualisieren.

Aktuelle Quellversion Upgrade-Ziel für die neueste Hauptversion Sonstige verfügbare Upgrade-Ziele
16.3 Keine 16,4
16,2 Keine 16,4, 16,3
16,1 Keine 16,4, 16,3, 16,2
15,8 16,4 Keine
15,7 16,4 16,3, 15,8
15,6 16,4 16,3 , 16,2, 15,8, 15,7
15,5 16,4 16,3 , 16,2, 16,1, 15,8, 15,7, 15,6
15,4 16,4 16,3 , 16,2, 16,1, 15,8, 15,7, 15,6, 15,5
15,3* 16,4 16,3 , 16,2, 16,1, 15,8, 15,7, 15,6, 15,5, 15,4
15,2* 16,4 16,3 , 16,2, 16,1, 15,8, 15,7, 15,6, 15,5, 15,4
14,13 16,4 15,8
14,12 16,3 15,8, 15,7, 14,13,
14,11 16,2 15,8 , 15,7, 15,6, 14,13, 14,12
14,10 16,1 15,8 , 15,7, 15,6, 15,5, 14,13, 14,12, 14,11
14,9 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,12, 14,11, 14,10
14,8* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,12, 14,11, 14,10, 14,9
14,7. * 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14,6* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14,5* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14,4* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14,3* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14.2* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
14.1* 15,8 15,7 , 15,6, 15,5, 15,4, 14,13, 14,11, 14,10, 14,9
13,16 16,4 15,8, 14,13
13,15 16,3 15,8 , 15,7, 14,13, 14,12, 13,16
13,14 16,2 15,6 , 14,13, 14,12, 14,11, 13,16, 13,15
13,13 16,1 15,5 , 14,13, 14,12, 14,11, 14,10, 13,16, 13,15, 13,14
13,12 15,4 14,13 , 14,12, 14,11, 14,10, 14,9, 13,16, 13,15, 13,14, 13,13
13,11 15,4 14,12 , 14,11, 14,10, 14,9, 13,16, 13,15, 13,14, 13,12
13,10* 15,4 14,13 , 14,12, 14,11, 14,10, 14,9, 13,16, 13,14, 13,13, 13,12, 13,11
13,9* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,13, 13,12, 13,11
13,8* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,13, 13,12, 13,11
13,7* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
13.6* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
13.5* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
13.4* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
13.3* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
13.2*, 13.1* 14,13 14,12 , 14,11, 14,10, 14,9, 13,16, 13,14, 13,11
12,20 16,4 15,8, 14,13 , 13,16
12,19 16,3 15,7 , 14,12, 13,16, 13,15
12,18 16,2 15,6 , 14,11, 13,16, 13,15, 13,14, 12,19
12,17 16,1 15,5 , 14,10, 13,16, 13,15, 13,14, 13,13, 12,19, 12,18
12,16 15,4 14,9 , 13,16, 13,15, 13,14, 13,13, 13,12, 12,19, 12,18, 12,17
12,15 15,4 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,19, 12,18, 12,17, 12,16
12,14* 15,4 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12,13* 14,9 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12,12* 14,9 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12,11* 14,9 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12.10* 14,9 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12.9* 14,9 13,16 , 13,15, 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12.8* 13,16 13,15 , 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12.7* 13,16 13,15 , 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
12.6*, 12.5*, 12.4*, 12.3*, 12.2* 13,16 13,15 , 13,14, 13,13, 13,12, 13,11, 12,18, 12,17, 12,15
11,22 16,1 15,5, 14,10, 13,13, 12,17, 11,22 - .20240418 RDS

* Diese Version wird nicht mehr unterstützt.

Durchführen eines Hauptversions-Upgrades

Wir empfehlen den folgenden Vorgang, wenn Sie ein Hauptversions-Upgrade für eine Amazon RDS for SQL Postgre-Datenbank durchführen:

  1. Bereithalten einer versionskompatiblen Parametergruppe – Wenn Sie eine benutzerdefinierte Parametergruppe verwenden, haben Sie zwei Optionen. Sie können eine Standardparametergruppe für die neue DB-Engine-Version angeben. Oder Sie können eine eigene benutzerdefinierte Parametergruppe für die neue DB-Engine-Version erstellen. Weitere Informationen erhalten Sie unter Parametergruppen für Amazon RDS und Arbeiten mit DB-Cluster-Parametergruppen für Multi-AZ-DB-Cluster.

  2. Suchen Sie nach nicht unterstützten Datenbankklassen — Vergewissern Sie sich, dass die Instance-Klasse Ihrer Datenbank mit der SQL Postgre-Version kompatibel ist, auf die Sie ein Upgrade durchführen. Weitere Informationen finden Sie unter Unterstützte DB-Engines für DB-Instance-Klassen.

  3. Auf nicht unterstützte Verwendung prüfen:

    • Vorbereitete Transaktionen: Übernehmen Sie oder machen Sie alle offenen vorbereiteten Transaktionen rückgängig, bevor Sie ein Upgrade durchführen.

      Mit der folgenden Abfrage können Sie sicherstellen, dass für Ihre Datenbank keine geöffneten vorbereiteten Transaktionen vorhanden sind.

      SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
    • Reg*-Datentypen – Entfernen Sie alle Anwendungen der reg*-Datentypen, bevor Sie versuchen, einen Upgrade durchzuführen. Bis auf regtype und regclass ist kein Upgrade der reg*-Datentypen möglich. Das pg_upgrade Hilfsprogramm kann diesen Datentyp, der von Amazon für das Upgrade verwendet wirdRDS, nicht beibehalten.

      Um zu überprüfen, dass keine Anwendungen der nicht unterstützten reg*-Datentypen vorhanden sind, geben Sie für jede Datenbank die folgende Abfrage aus.

      SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a WHERE c.oid = a.attrelid AND NOT a.attisdropped AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 'pg_catalog.regprocedure'::pg_catalog.regtype, 'pg_catalog.regoper'::pg_catalog.regtype, 'pg_catalog.regoperator'::pg_catalog.regtype, 'pg_catalog.regconfig'::pg_catalog.regtype, 'pg_catalog.regdictionary'::pg_catalog.regtype) AND c.relnamespace = n.oid AND n.nspname NOT IN ('pg_catalog', 'information_schema');
  4. Umgang mit logischen Replikations-Slots – Ein Upgrade ist nicht möglich, wenn die Datenbank über logische Replikations-Slots verfügt. Logische Replikationssteckplätze werden in der Regel verwendet für AWS DMS Migration und für die Replikation von Tabellen aus der Datenbank auf Data Lakes, BI-Tools und andere Ziele. Stellen Sie vor dem Upgrade sicher, dass Sie den Zweck aller verwendeten logischen Replikations-Slots kennen, und bestätigen Sie, dass sie gelöscht werden können. Wenn die logischen Replikations-Slots noch verwendet werden, sollten Sie sie nicht löschen, und Sie können mit dem Upgrade nicht fortfahren.

    Wenn die Slots für die logische Replikation nicht benötigt werden, können Sie sie wie folgt SQL löschen:

    SELECT * FROM pg_replication_slots; SELECT pg_drop_replication_slot(slot_name);

    Für die Einrichtung von logische Replikationsszenarien, die die pglogical-Erweiterung verwenden, müssen außerdem Slots gelöscht werden, damit ein Hauptversions-Upgrade erfolgreich durchgeführt werden kann. Informationen zum Identifizieren und Löschen von Slots, die mit der pglogical-Erweiterung erstellt wurden, finden Sie unter Verwaltung logischer Replikationssteckplätze für for Postgre SQL.

  5. Behandlung von Lesereplikaten – Bei einem Upgrade Single-AZ-DB-Instance- oder Multi-AZ-DB-Instance-Bereitstellung werden neben der primären DB-Instance auch die Lesereplikate in der Region aktualisiert. Amazon führt RDS kein Upgrade von Multi-AZ-DB-Cluster-Read Replicas durch.

    Lesereplikate können nicht separat aktualisiert werden. Wenn Sie könnten, könnte dies zu Situationen führen, in denen die Primär- und Replikatdatenbanken unterschiedliche SQL Postgre-Hauptversionen haben. Lesereplika-Upgrades können jedoch die Ausfallzeit der primären DB-Instance erhöhen. Um ein Lesereplikat-Upgrade zu verhindern, befördern Sie das Replikat zu einer eigenständigen Instance oder löschen Sie es, bevor Sie den Upgrade-Prozess starten.

    Der Upgrade-Prozess erstellt die Parametergruppe des Lesereplikats auf der Grundlage der aktuellen Parametergruppe des Lesereplikats neu. Sie können eine benutzerdefinierte Parametergruppe erst dann auf ein Lesereplikat anwenden, wenn die Aktualisierung abgeschlossen ist, indem Sie das Lesereplikat modifizieren. Weitere Informationen über Lesereplikate finden Sie unter Arbeiten mit Read Replicas für Amazon RDS for Postgre SQL.

  6. Durchführen einer Sicherung – Wir empfehlen, vor dem Upgrade der Hauptversion eine Sicherung durchzuführen, damit Sie über einen bekannten Wiederherstellungspunkt für Ihre Datenbank verfügen. Wenn der Wert des Aufbewahrungszeitraums für Ihre Sicherung größer als 0 ist, erstellt der Upgrade-Vorgang vor und nach der Aktualisierung DB-Snapshots Ihrer Datenbank. Informationen über das Ändern Ihres Aufbewahrungszeitraums für Backups finden Sie unter Ändern einer Amazon RDS-DB-Instance und Ändern eines Multi-AZ-DB-Clusters.

    Informationen zum manuellen Durchführen der Sicherung finden Sie unter Erstellen eines DB-Snapshots für eine Single-AZ-DB-Instance und Erstellen eines Multi-AZ-DB-Cluster-Snapshots.

  7. Aktualisieren bestimmter Erweiterungen vor dem Upgrade der Hauptversion – Wenn Sie planen, eine Hauptversion mit dem Upgrade zu überspringen, müssen Sie bestimmte Erweiterungen aktualisieren bevor Sie das Upgrade der Hauptversion durchführen. Zum Beispiel überspringt ein Upgrade von den Versionen 9.5.x oder 9.6.x auf die Versionen 11.x eine Hauptversion. Zu den zu aktualisierenden Erweiterungen gehören Post GIS und verwandte Erweiterungen für die Verarbeitung von Geodaten.

    • address_standardizer

    • address_standardizer_data_us

    • postgis_raster

    • postgis_tiger_geocoder

    • postgis_topology

    Führen Sie den folgenden Befehl für jede von Ihnen verwendete Erweiterung aus:

    ALTER EXTENSION PostgreSQL-extension UPDATE TO 'new-version';

    Weitere Informationen finden Sie unter Aktualisierung von Postgre-Erweiterungen SQL. Weitere Informationen zur Aktualisierung von Post GIS finden Sie unterSchritt 6: Aktualisieren Sie die GIS Post-Erweiterung.

  8. Entfernen bestimmter Erweiterungen vor dem Upgrade der Hauptversion – Ein Upgrade, bei dem eine Hauptversion auf Version 11.x übersprungen wird, unterstützt keine Aktualisierung der Erweiterung pgRouting. Ein Upgrade von den Versionen 9.4.x, 9.5.x oder 9.6.x auf 11.x-Versionen überspringt eine Hauptversion. Es ist sicher, die Erweiterung pgRouting zu verwerfen zu lassen und sie nach dem Upgrade wieder auf eine kompatible Version zu installieren. Für die Erweiterungsversionen, auf die Sie aktualisieren können, lesen Sie Unterstützte Versionen der Postgre-Erweiterung SQL.

    Die chkpass Erweiterungen tsearch2 und werden für SQL Postgre-Versionen 11 oder höher nicht mehr unterstützt. Wenn Sie auf Version 11.x aktualisieren, lassen Sie die Erweiterungen tsearch2 und chkpass vor dem Upgrade weg.

  9. Löschen unbekannter Datentypen – Löschen Sie unknown-Datentypen in Abhängigkeit von der Zielversion.

    SQLPostgre-Version 10 unterstützt den unknown Datentyp nicht mehr. Wenn eine Datenbank der Version 9.6 den Datentyp unknown verwendet, wird bei einem Upgrade auf eine Version 10 eine Fehlermeldung wie die folgende angezeigt:

    Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: The instance could not be upgraded because the 'unknown' data type is used in user tables. Please remove all usages of the 'unknown' data type and try again."

    Gehen Sie wie folgt vor, um den unknown Datentyp in Ihrer Datenbank zu finden, sodass Sie die fehlerhafte Spalte entfernen oder sie in einen unterstützten Datentyp ändern können: SQL

    SELECT DISTINCT data_type FROM information_schema.columns WHERE data_type ILIKE 'unknown';
  10. Durchführen eines Upgrade-Trockenlaufs – Wir empfehlen dringend, ein Hauptversionsupgrade auf einem Duplikat Ihrer Produktionsdatenbank zu testen, bevor Sie das Upgrade auf Ihrer Produktionsdatenbank durchführen. Sie können die Ausführungspläne auf der duplizierten Testdatenbank auf mögliche Regressionen des Ausführungsplans überwachen und deren Leistung bewerten. Um eine doppelte Testinstanz zu erstellen, können Sie Ihre Datenbank entweder aus einem aktuellen Snapshot point-in-time wiederherstellen oder Ihre Datenbank auf den letzten wiederherstellbaren Zeitpunkt zurücksetzen.

    Weitere Informationen finden Sie unter Wiederherstellung aus einem Snapshot oder Wiederherstellen einer DB-Instance zu einer bestimmten Zeit. Informationen zu Multi-AZ-DB-Clustern finden Sie unter Wiederherstellen von einem Snapshot in einem Multi-AZ-DB-Cluster oder Wiederherstellen eines Multi-AZ-DB-Clusters zu einer bestimmten Zeit.

    Weitere Einzelheiten zum Durchführen des Upgrades finden Sie unter Manuelles Upgraden der Engine-Version.

    Beachten Sie beim Upgrade einer Datenbank der Version 9.6 auf Version 10, dass Postgre SQL 10 standardmäßig parallel Abfragen aktiviert. Sie können die Auswirkungen von Parallelverarbeitung vor dem Upgrade testen, indem Sie den Parameter max_parallel_workers_per_gather in Ihrer Testdatenbank auf 2 ändern.

    Anmerkung

    Der Standardwert für max_parallel_workers_per_gather-Parameter in der default.postgresql10-DB-Parametergruppe lautet 2.

    Weitere Informationen finden Sie unter Parallel Query in der Postgre-Dokumentation. SQL Um die Parallelverarbeitung in Version 10 zu deaktivieren, setzen Sie den Parameter max_parallel_workers_per_gather auf 0.

    Während des Upgrades der Hauptversion werden die Datenbanken public und template1 und das Schema public in jeder Datenbank vorübergehend umbenannt. Diese Objekte erscheinen in den Protokollen mit ihrem ursprünglichen Namen und einer zufälligen Zeichenfolge, die angehängt wird. Die Zeichenfolge wird so hinzugefügt, dass benutzerdefinierte Einstellungen wie locale und owner während des Upgrades der Hauptversion erhalten bleiben. Sobald das Upgrade abgeschlossen ist, werden die Objekte in ihre ursprünglichen Namen umbenannt.

    Anmerkung

    Während des Upgrade-Vorgangs für die Hauptversion können Sie keine point-in-time Wiederherstellung Ihrer DB-Instance oder Ihres Multi-AZ-DB-Clusters durchführen. Nachdem Amazon RDS das Upgrade durchgeführt hat, wird eine automatische Sicherung der Datenbank durchgeführt. Sie können die Zeiten vor Beginn des Upgrades und nach Abschluss der automatischen Sicherung Ihrer Datenbank point-in-time wiederherstellen.

  11. Wenn ein Upgrade aufgrund von Fehlern bei der Vorabprüfung fehlschlägt, beheben Sie die Probleme. Während des Upgrade-Vorgangs für die Hauptversion führt Amazon RDS for Postgre SQL zunächst eine Vorabprüfung durch, um alle Probleme zu identifizieren, die dazu führen könnten, dass das Upgrade fehlschlägt. Das Vorprüfverfahren überprüft alle potenziell nicht kompatiblen Bedingungen in allen Datenbanken der Instance.

    Wenn die Vorprüfung auf ein Problem stößt, wird ein Protokollereignis erstellt, das anzeigt, dass die Vorprüfung für das Upgrade fehlgeschlagen ist. Die Details des Vorprüfprozesses befinden sich in einem Upgrade-Protokoll mit dem Namen pg_upgrade_precheck.log für alle Datenbanken einer Datenbank. Amazon RDS hängt einen Zeitstempel an den Dateinamen an. Weitere Informationen zum Anzeigen von Protokollen finden Sie unter Überwachung von Amazon RDS Amazon.

    Wenn ein Lesereplikat-Upgrade bei der Vorprüfung fehlschlägt, wird die Replikation auf dem fehlgeschlagenen Lesereplikat unterbrochen und das Lesereplikat in den Status "beendet" versetzt. Löschen Sie das Lesereplikat und erstellen Sie ein neues Lesereplikat auf der Grundlage der aktualisierten primären DB-Instance.

    Beheben Sie alle im Vorprüfprotokoll identifizierten Probleme und versuchen Sie dann erneut das Hauptversionsupgrade. Im Folgenden finden Sie ein Beispiel für ein Vorprüfprotokoll.

    ------------------------------------------------------------------------ Upgrade could not be run on Wed Apr 4 18:30:52 2018 ------------------------------------------------------------------------- The instance could not be upgraded from 9.6.11 to 10.6 for the following reasons. Please take appropriate action on databases that have usage incompatible with the requested major engine version upgrade and try the upgrade again. * There are uncommitted prepared transactions. Please commit or rollback all prepared transactions.* One or more role names start with 'pg_'. Rename all role names that start with 'pg_'. * The following issues in the database 'my"million$"db' need to be corrected before upgrading:** The ["line","reg*"] data types are used in user tables. Remove all usage of these data types. ** The database name contains characters that are not supported by RDS for PostgreSQL. Rename the database. ** The database has extensions installed that are not supported on the target database version. Drop the following extensions from your database: ["tsearch2"]. * The following issues in the database 'mydb' need to be corrected before upgrading:** The database has views or materialized views that depend on 'pg_stat_activity'. Drop the views.
  12. Wenn ein Lesereplikat-Upgrade während des Upgrades der Datenbank fehlschlägt, beheben Sie das Problem – Ein fehlgeschlagenes Lesereplikat wird in den Zustand incompatible-restore versetzt und die Replikation auf der Datenbank wird beendet. Löschen Sie das Lesereplikat und erstellen Sie ein neues Lesereplikat auf der Grundlage der aktualisierten primären DB-Instance.

    Anmerkung

    Amazon führt RDS kein Upgrade von Read Replicas für Multi-AZ-DB-Cluster durch. Wenn Sie ein Hauptversions-Upgrade auf einem Multi-AZ-DB-Cluster durchführen, ändert sich der Replikationsstatus der zugehörigen Read Replicas auf „Beendet“.

    Ein Lesereplikat-Upgrade kann aus den folgenden Gründen fehlschlagen:

    • Sie konnte die primäre DB-Instance auch nach einer Wartezeit nicht einholen.

    • Es befand sich in einem beendeten oder inkompatiblen Lebenszyklusstatus, z. B. „Speicher voll“, „Inkompatible Wiederherstellung“ usw.

    • Als das Upgrade der primären DB-Instance begann, lief auf der Lesereplikat bereits ein separates Upgrade der Unterversion.

    • Das Lesereplikat verwendete inkompatible Parameter.

    • Das Lesereplikat war nicht in der Lage, mit der primären DB-Instance zu kommunizieren, um den Datenordner zu synchronisieren.

  13. Upgrade Ihrer Produktionsdatenbank – Wenn das Upgrade der Hauptversion erfolgreich durchgeführt wurde, sollten Sie in der Lage sein, Ihre Produktionsdatenbank sicher zu aktualisieren. Weitere Informationen finden Sie unter Manuelles Upgraden der Engine-Version.

  14. Führen Sie die ANALYZE-Operation aus, um die Tabelle pg_statistic zu aktualisieren. Sie sollten dies für jede Datenbank in all Ihren SQL Postgre-Datenbanken tun. Optimizer-Statistiken werden während eines Hauptversionsupgrades nicht übertragen, daher müssen Sie alle Statistiken neu generieren, um Leistungsprobleme zu vermeiden. Führen Sie den Befehl ohne Parameter aus, um Statistiken für alle regulären Tabellen in der aktuellen Datenbank wie folgt zu generieren:

    ANALYZE VERBOSE;

    Das Flag VERBOSE ist optional, aber wenn Sie es verwenden, wird Ihnen der Fortschritt angezeigt. Weitere Informationen finden Sie ANALYZEin der Postgre-Dokumentation. SQL

    Anmerkung

    Führen Sie es nach dem Upgrade ANALYZE auf Ihrem System aus, um Leistungsprobleme zu vermeiden.

Nachdem das Upgrade der Hauptversion abgeschlossen ist, empfehlen wir Folgendes:

  • Ein SQL Postgre-Upgrade aktualisiert keine Postgre-Erweiterungen. SQL Informationen zum Upgrade von Erweiterungen finden Sie unter Aktualisierung von Postgre-Erweiterungen SQL.

  • Verwenden Sie optional Amazon, RDS um zwei Protokolle anzuzeigen, die das pg_upgrade Hilfsprogramm erstellt. Diese sind pg_upgrade_internal.log und pg_upgrade_server.log. Amazon RDS hängt einen Zeitstempel an den Dateinamen für diese Protokolle an. Sie können diese Protokolle wie jedes andere Protokoll einsehen. Weitere Informationen finden Sie unter Überwachung von Amazon RDS Amazon.

    Sie können die Upgrade-Protokolle auch auf Amazon CloudWatch Logs hochladen. Weitere Informationen finden Sie unter SQLPostgre-Protokolle in Amazon CloudWatch Logs veröffentlichen.

  • Um sicherzustellen, dass alles wie erwartet funktioniert, testen Sie Ihre Anwendung auf der aktualisierten Datenbank mit ähnlichem Workload. Nachdem das Upgrade bestätigt wurde, können Sie diese Testinstance löschen.

Automatische Upgrades für kleinere Versionen für Postgre SQL

Wenn Sie beim Erstellen oder Ändern einer DB-Instance oder eines Multi-AZ-DB-Clusters die Option Automatisches Unterversion-Upgrade aktivieren, können Sie Ihre Datenbank automatisch aktualisieren lassen.

RDSFür jede SQL Postgre-Hauptversion wird eine Nebenversion RDS als automatische Upgrade-Version bezeichnet. Nachdem eine Nebenversion von Amazon getestet und genehmigt wurdeRDS, erfolgt das Upgrade der Nebenversion automatisch während Ihres Wartungsfensters. RDSlegt nicht automatisch neuere veröffentlichte Nebenversionen als automatische Upgrade-Version fest. Bevor eine neuere automatische Upgrade-Version RDS bezeichnet wird, werden mehrere Kriterien berücksichtigt, wie z. B. die folgenden:

  • Bekannte Sicherheitsprobleme

  • Fehler in der SQL Postgre-Community-Version

  • Gesamtflottenstabilität seit Erscheinen der Minor-Version

Sie können Folgendes verwenden AWS CLI Befehl zum Ermitteln der aktuellen automatischen Minor-Upgrade-Zielversion für eine angegebene SQL Postgre-Nebenversion in einem bestimmten AWS-Region.

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

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

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

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

Zum Beispiel das Folgende AWS CLI Der Befehl bestimmt das automatische kleinere Upgrade-Ziel für die SQL Postgre-Nebenversion 12.13 im Osten der USA (Ohio) AWS-Region (us-east-2).

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 12.13 \ --region us-east-2 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output table

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 12.13 ^ --region us-east-2 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output table

Ihre Ausgabe sieht Folgendem ähnlich.

---------------------------------- | DescribeDBEngineVersions | +--------------+-----------------+ | AutoUpgrade | EngineVersion | +--------------+-----------------+ | True | 12.14 | | False | 12.15 | | False | 13.9 | | False | 13.10 | | False | 13.11 | | False | 14.6 | +--------------+-----------------+

In diesem Beispiel bezieht sich der AutoUpgrade Wert True auf SQL Postgre-Version 12.14. Das automatische kleinere Upgrade-Ziel ist also SQL Postgre-Version 12.14, die in der Ausgabe hervorgehoben ist.

Eine SQL Postgre-Datenbank wird während Ihres Wartungsfensters automatisch aktualisiert, wenn die folgenden Kriterien erfüllt sind:

  • Für die Datenbank ist die Option Automatisches Unterversion-Upgrade aktiviert.

  • Die Datenbank führt eine Unterversion der DB-Engine aus, die niedriger ist als die aktuelle Unterversion des automatischen Upgrades.

Weitere Informationen finden Sie unter Automatisches Upgraden der Engine-Unterversion.

Anmerkung

Ein SQL Postgre-Upgrade aktualisiert keine SQL Postgre-Erweiterungen. Informationen zum Upgrade von Erweiterungen finden Sie unter Aktualisierung von Postgre-Erweiterungen SQL.

Aktualisierung von Postgre-Erweiterungen SQL

Ein SQL Postgre-Engine-Upgrade aktualisiert die meisten SQL Postgre-Erweiterungen nicht. Um eine Erweiterung nach einem Upgrade auf eine Nebenversion zu aktualisieren, verwenden Sie den Befehl ALTER EXTENSION UPDATE.

Anmerkung

Informationen zur Aktualisierung der GIS Post-Erweiterung finden Sie unter Verwaltung von Geodaten mit der GIS Post-Erweiterung ()Schritt 6: Aktualisieren Sie die GIS Post-Erweiterung.

Um die pg_repack-Erweiterung zu aktualisieren, entfernen Sie die Erweiterung und erstellen Sie eine neue Version in der aktualisierten Datenbank. Weitere Informationen finden Sie unter pg_repack installation in der pg_repack-Dokumentation.

Um eine Erweiterung zu aktualisieren, verwenden Sie den folgenden Befehl.

ALTER EXTENSION extension_name UPDATE TO 'new_version';

Eine Liste der unterstützten Versionen von SQL Postgre-Erweiterungen finden Sie unterUnterstützte Versionen der Postgre-Erweiterung SQL.

Verwenden Sie den Postgre-Katalog SQL pg_extension im folgenden Befehl, um Ihre aktuell installierten Erweiterungen aufzulisten.

SELECT * FROM pg_extension;

Um eine Liste der spezifischen Erweiterungsversionen anzuzeigen, die für Ihre Installation verfügbar sind, verwenden Sie die Postgre-Ansicht SQL pg_available_extension_versions im folgenden Befehl.

SELECT * FROM pg_available_extension_versions;