Upgrade auf eine neue übergeordnete Version durchführen
Ab Dezember 2025 bietet drei Databases for PostgreSQL verschiedene Upgrade-Pfade:
- Upgrade auf eine neue Hauptversion ohne Deinstallation.
- Wiederherstellung aus Backup.
- Upgrade von einer schreibgeschützten Replik.
Wenn sich eine Hauptversion einer Datenbank ihrem Ende der Lebensdauer (End of Life, EOL) nähert, ist es ratsam, ein Upgrade auf eine aktuelle Hauptversion durchzuführen.
Suchen Sie die verfügbaren Versionen von Databases for PostgreSQL auf der Seite IBM Cloud catalog auf der Cloud Databases-CLI-Plug-in-Befehl ibmcloud cdb deployables-showoder über den Endpunkt der Cloud Databases-API /deployables.
Wenn Sie ein Upgrade auf eine neue Instanz durchführen, müssen Sie auch die Verbindungsinformationen in Ihrer Anwendung ändern.
In den folgenden Beispielbefehlen wird für den Befehl „ {id} “ die vollständige CRN der Datenbankinstanz benötigt. Da die CRN Sonderzeichen enthält, muss sie in „ URL “-Kodierung umgewandelt werden, um einen „not_found“-Fehler zu vermeiden.
Voraussetzungen für ein Upgrade auf eine neuere Hauptversion von „ PostgreSQL “
Bevor Sie mit einem größeren Versions-Upgrade beginnen, sollten Sie alle Erweiterungen, Replikationsobjekte und Anwendungsabhängigkeiten überprüfen, die zuvor gepflegt werden müssen.
Einige Erweiterungen und Objekte der logischen Replikation sind versionsspezifisch oder hängen von serverseitigen Komponenten ab, die mit der Hauptversion von „ PostgreSQL “ übereinstimmen müssen. Wenn Sie diese vor dem Upgrade entfernen, vermeiden Sie Fehler und können nach der Installation der neuen Version nur die unterstützten Objekte neu erstellen.
Zu prüfende Erweiterungen und Objekte der logischen Replikation
Bitte überprüfen Sie vor dem Upgrade die folgenden Punkte:
Erweiterungen
pg_repackold_snapshotwal2jsonanonPostGIS
Replikationsslots
Logical replication slots
Anwendungsabhängigkeiten
Wenn Sie Erweiterungen oder Replikationsobjekte entfernen, von denen Ihre Anwendungen abhängen, überprüfen Sie Ihre Datenflüsse und das Verhalten Ihrer Anwendungen, bevor Sie mit dem Upgrade fortfahren. Berücksichtigen Sie außerdem mögliche Störungen Ihrer Anwendungslogik, die von bestimmten Funktionen von „ PostgreSQL “ abhängt.
pg_repack
Löschen Sie vor dem Upgrade den Ordner „ pg_repack “ und erstellen Sie ihn nach dem Upgrade neu. „ pg_repack “ verwendet eine versionsspezifische Erweiterung sowie Client- und Serverkomponenten, die mit der Hauptversion
von „ PostgreSQL “ übereinstimmen müssen.
DROP EXTENSION pg_repack;
Erstellen Sie die Erweiterung nach dem Upgrade nur dann neu, wenn Ihre Arbeitslast sie weiterhin benötigt.
CREATE EXTENSION pg_repack;
old_snapshot
Löschen Sie vor dem Upgrade die Datei „ old_snapshot “. Erstellen Sie es nach dem Upgrade auf „ PostgreSQL s 18“ NICHT neu, da es nicht mehr unterstützt wird.
DROP EXTENSION old_snapshot;
wal2json Replikationsslots
Wenn Sie „ wal2json “ für die logische Dekodierung verwenden, müssen Sie vor dem Upgrade alle zugehörigen Replikationsslots löschen. Das Dienstprogramm „ pg_upgrade “ verbietet strikt Upgrades auf eine neue Hauptversion,
solange Replikationsslots vorhanden sind, und löst in diesem Fall einen kritischen Fehler aus, wodurch das Upgrade abgebrochen wird.
Vor dem Upgrade:
- Stellen Sie sicher, dass alle ausstehenden WAL-Daten verarbeitet wurden.
- Beenden Sie die Anwendung, die den Replikations-Slot nutzt.
- Die Replikationsslots löschen:
SELECT pg_drop_replication_slot('your_slot_name');
Nach dem Upgrade können Sie die Replikationsslots nach Bedarf neu erstellen. Beachten Sie, dass „ wal2json “ nicht über „ CREATE EXTENSION “ installiert wird, sondern über Datenbankparameter (wal_level,
max_replication_slots, max_wal_senders) und Tabellenberechtigungen konfiguriert wird, die Upgrades nicht verhindern.
anon
Entfernen Sie die Erweiterung „ anon “ vor dem Upgrade und aktivieren Sie sie nach dem Upgrade wieder, falls Sie sie weiterhin benötigen. Bevor Sie „ anon “ löschen, sind noch einige weitere Schritte erforderlich.
Falls die Erweiterung „ anon “ installiert ist, führen Sie die folgenden Schritte aus und führen Sie die Befehle als Administrator aus, bevor Sie das Upgrade durchführen.
-
Entfernen Sie alle Maskierungsregeln (falls aktiviert).
SELECT anon.remove_masks_for_all_columns(); -
Deaktivieren Sie maskierte Rollen (das Upgrade kann fehlschlagen, wenn Rollen als maskiert markiert sind).
SECURITY LABEL FOR anon ON ROLE <role_name> IS NULL; -
Lassen Sie die Erweiterung
anonmit der Option "Kaskade" weg.DROP EXTENSION anon CASCADE; -
Wenn die Erweiterung „
anon“ in mehreren Datenbanken innerhalb einer Instanz installiert ist, führen Sie die beschriebenen Schritte für jede Datenbank durch. -
Aktivieren Sie nach Abschluss der Aktualisierung die Erweiterung
anonwieder und wenden Sie die Maskierungsregeln erneut an.
Es wird dringend empfohlen, die Daten sowohl vor als auch nach dem Löschen der Erweiterung zu validieren, um die Konsistenz der Maskierung vor der Aktualisierung sicherzustellen.
PostGIS
Wenn Sie PostGIS, verwenden, aktualisieren Sie zunächst PostGIS, bevor Sie PostgreSQL aktualisieren.
SELECT postgis_extensions_upgrade();
Verwenden Sie die folgende Abfrage, um das Upgrade der PostGIS-Erweiterung zu überprüfen.
SELECT postgis_full_version();
Logical replication slots
Löschen Sie vor dem Upgrade alle logischen Replikations-Slots und erstellen Sie sie nach dem Upgrade neu. Logische Slots sind an den Zustand des Quellservers gebunden und sollten auf der aktualisierten Instanz vollständig neu erstellt werden.
SELECT pg_drop_replication_slot('<slot_name>');
Upgrades auf neue Hauptversionen vor Ort
Durch ein Major-Version-Upgrade vor Ort können Sie Ihre Bereitstellung auf eine unterstützte Ziel Hauptversion aktualisieren, sodass kein „ ein Backup wiederherstellen “ in eine neue Bereitstellung erforderlich ist. Dieser Ansatz behält dieselben Verbindungszeichenfolgen bei, ohne dass die Bereitstellung neu konfiguriert werden muss. Wenn die neue Hauptversion jedoch Anpassungen der Anwendung erfordert, müssen diese vorgenommen werden.
Während des Zeitfensters für das Upgrade auf die neue Hauptversion kommt es zu einer kurzen Ausfallzeit Ihrer Bereitstellung. Das ist zu erwarten, da der Prozess dem vom Hersteller empfohlenen Upgrade-Vorgehen folgt. Die genaue Dauer kann je nach Größe und Komplexität des Schemas Ihrer Einrichtung variieren. Wenn Ihr Dienst während dieser Zeit Daten von der aktualisierten Instanz lesen muss, können Sie eine Standby-Instanz erstellen und die Verbindungsdetails Ihrer Anwendung aktualisieren, um auf die Standby-Instanz zu verweisen. So stellen Sie sicher, dass Sie eine aktuelle Kopie Ihrer Datenbank haben, bevor Sie das Upgrade starten. Die Standby-Instanz kann auch als primäre Instanz hochgestuft und verwendet werden, wenn das In-Place-Upgrade nicht erfolgreich abgeschlossen wird. Weitere Informationen finden Sie unter Schreibgeschützter Replikationsstatus bei In-Place-Hauptversions-Upgrades.
Databases for PostgreSQL bietet Kunden Flexibilität bei der Verwaltung ihrer eigenen Backups. Der Prozess zur Aktualisierung der Hauptversion vor Ort erstellt vor oder nach der Aufgabe nicht automatisch eine Sicherungskopie. Sollte das Upgrade fehlschlagen, müssen Sie Ihre Bereitstellung möglicherweise aus Ihrer letzten gültigen Sicherung in einer neuen Instanz wiederherstellen.
Um die bestmöglichen Wiederherstellungsbedingungen zu gewährleisten, sollten Sie unbedingt vor der IPU eine aktuelle Sicherung erstellen und unmittelbar nach Abschluss der IPU eine weitere Sicherung durchführen.
- Eine Sicherung vor der IPU trägt zum Schutz der Datenintegrität bei und bietet Ihnen eine Wiederherstellungsquelle für den aktuellen Stand Ihrer Datenbank, falls das Upgrade fehlschlägt.
- Eine Sicherung unmittelbar nach der IPU erstellt den ersten Wiederherstellungspunkt für die neue Zeitachse der Hauptversionen von „ PostgreSQL “.
- Wenn Sie nach einer erfolgreichen IPU auf die nächste geplante Sicherung warten, stehen PITR und die Wiederherstellung für die neue Version erst nach Durchführung dieser Sicherung zur Verfügung. Sie können weiterhin einen PITR-Zeitstempel aus der Zeit vor dem IPU-Versuch identifizieren. Auf diese Weise können Sie die letzte vor der IPU verfügbare Sicherung zusammen mit PITR nutzen, um die IPU- PostgreSQL-Version in einer neuen Bereitstellung wiederherzustellen. Die gleiche Vorgehensweise gilt auch, wenn Sie die Option „Sichern und Wiederherstellen “ verwenden. Weitere Informationen finden Sie unter „Point-in-Time-Recovery“(PITR).
Wenn Sie beide Backups selbst erstellen, anstatt auf den automatischen Backup-Zeitplan zu warten, erhalten Sie einen besser vorhersehbaren Wiederherstellungspunkt vor und nach dem Upgrade.
Vorbereitende Schritte
Berücksichtigen Sie die folgenden Aspekte, bevor Sie mit dem Upgrade-Vorgang beginnen.
-
Überprüfen Sie, ob für Ihre Bereitstellungsversion ein Versions-Upgrade verfügbar ist, indem Sie die Informationen zur Bereitstellungskapazität über die Benutzeroberfläche, die API, die CLI oder Terraform abrufen.
Beispiel: Abrufen von Informationen zum Versions-Upgrade über die Befehlszeile:
ibmcloud cdb capability-show versions postgresql -
Bitte lesen Sie die Anforderungen bezüglich der Vorabprüfung in diesem Abschnitt durch, bevor Sie die IPU auslösen. IPU wird direkt auf der Quellumgebung ausgeführt und erstellt keine neue Instanz. Zur Sicherheit der Kunden führt der Dienst vor Beginn des Upgrades Vorabprüfungen durch und blockiert den Vorgang, falls ein Risiko festgestellt wird. Überprüfen Sie insbesondere folgende Punkte:
- Ihre Deployment-Gruppe umfasst höchstens 3 Mitglieder.
- Ihre Bereitstellung befindet sich in einem einwandfreien Zustand.
- In Ihrer Bereitstellung sind mindestens 10 % freier Speicherplatz verfügbar. Die standardmäßig maximal zulässige Festplattenauslastung für IPU-Vorabprüfungen beträgt 90 %.
- Ihre Bereitstellung ist keiner hohen I/O-Belastung ausgesetzt. Die standardmäßig maximal zulässige E/A-Auslastung für die IPU-Vorabprüfung beträgt 90 %.
- Die Größe Ihres Schemas und die Anzahl der Objekte liegen innerhalb der standardmäßigen Schwellenwerte für die Vorabprüfung. Standardmäßig darf kein einzelnes Schema größer als 100 GB sein, und die Gesamtzahl der Indizes und Sequenzen muss unter 50.000 bleiben.
- Sie haben vor dem Upgrade alle erforderlichen Bereinigungen der Erweiterungs- und logischen Replikationsslots durchgeführt.
-
Jede Hauptversion enthält einige Funktionen, die möglicherweise nicht abwärtskompatibel mit früheren Versionen sind. Lesen Sie die Versionshinweise des Datenbankanbieters, um sich über Änderungen zu informieren, die sich auf Ihre Anwendungen auswirken könnten.
-
Das Herabstufen einer Bereitstellung auf eine frühere Version wird nicht unterstützt.
-
Ein Major-Version-Upgrade vor Ort kann nach seinem Start nicht mehr abgebrochen werden.
-
Falls Sie keine aktuelle Sicherung haben, sollten Sie vor dem Upgrade eine erstellen.
| Quelle PostgreSQL-Version | Unterstütztes Ziel für die Aktualisierung vor Ort |
|---|---|
| 14 | 15, 18 |
| Alle anderen unterstützten Quellversionen | 18 |
Beachten Sie außerdem, dass Ihre Datenbank nach Abschluss des Upgrades mit einer neuen Hauptversion von „ PostgreSQL “ läuft. Da „ PostgreSQL “ Daten in versionsspezifischen Formaten speichert, gehören Backups und PITR-Punkte aus der Zeit vor dem Upgrade zur Zeitachse der früheren Version und können nicht in die aktualisierte Version wiederhergestellt werden. Um die vollständigen Wiederherstellungs- und PITR-Funktionen (Point-in-Time Recovery) für die neue Version zu gewährleisten, führen Sie unmittelbar nach Abschluss des Upgrades eine neue Sicherung durch. Dieses Backup dient als Ausgangsbasis für künftige Wiederherstellungsvorgänge auf der Zeitachse der neuen Version.
Sollte IPU fehlschlagen, können gültige Backups aus der Zeit vor dem Upgrade weiterhin mit PITR verwendet werden, um die frühere Version von „ PostgreSQL “ auf einer neuen Instanz wiederherzustellen.
Upgrade über die Benutzerschnittstelle
-
Erstellen Sie eine neue „ Databases for PostgreSQL “, um den Upgrade-Prozess zu testen.
Erstellen Sie die Bereitstellung, indem Sie die vorhandene Bereitstellung mit derselben Version über „ Wiederherstellung einer Sicherung “ kopieren. -
Richten Sie Ihre Staging-Anwendung auf die Testbereitstellung aus.
Passen Sie Ihre Staging-Anwendung so an, dass sie auf die Testumgebung verweist. Stellen Sie sicher, dass Ihre Testanwendung erfolgreich eine Verbindung zur Staging-Bereitstellung herstellen kann und dass die Anwendung wie erwartet funktioniert. Führen Sie alle erforderlichen Leistungs- und Funktionstests der Staging-Umgebung durch. -
Aktualisieren Sie die Hauptversion Ihrer Testbereitstellung, indem Sie auf der Seite „Übersicht“ auf die Schaltfläche „Hauptversion aktualisieren“ klicken.
Notieren Sie sich, wie lange das Upgrade dauert, damit Sie mithilfe der Einstellung zum Ablauf des Upgrades sicherstellen können, dass die Upgrades innerhalb Ihres Wartungsfensters stattfinden. -
Vergewissern Sie sich, dass Ihre Staging-Anwendung mit der neuen Datenbankversion funktioniert.
Wenn Ihre Anwendung funktioniert, bestätigt dieser Schritt, dass ein Upgrade Ihrer Produktionsdatenbank unbedenklich sein sollte. -
Aktualisieren Sie Ihre Produktionsdatenbank auf die neue Version.
Nachdem Sie sich vergewissert haben, dass Ihre Anwendung mit der neuen Datenbankversion einwandfrei funktioniert, können Sie zur Verwaltungskonsole zurückkehren und mit der Aktualisierung Ihrer Produktionsumgebung beginnen. Klicken Sie im Abschnitt „Bereitstellungsdetails“ der Übers ichtsseite auf die Schaltfläche „Hauptversion aktualisieren“ und befolgen Sie die Schritte.Sobald der In-Place-Upgrade-Vorgang gestartet wurde, kann er nicht mehr angehalten oder rückgängig gemacht werden. Im unwahrscheinlichen Fall eines Fehlers könnte Ihre Datenbankbereitstellung also unwiederherstellbar werden. Erstellen Sie daher ein Backup, das Sie anschließend zur Wiederherstellung einer neuen Bereitstellung verwenden können.
Mit dieser Option expiration for starting upgrade können Sie eine Zeitüberschreitung konfigurieren, innerhalb derer der Upgrade-Vorgang gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie außerdem das Upgrade
vorab in einer Staging-Umgebung, um sicherzustellen, dass das Upgrade innerhalb des gewünschten Zeitfensters abgeschlossen wird. Wenn Sie das Upgrade beispielsweise innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet
haben und wissen, dass es 30 Minuten dauert, muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Setzen Sie daher die Ablaufzeit auf 30 Minuten fest, damit Ihr Zeitfenster
nicht überschritten wird, falls der Vorgang nicht innerhalb dieser Zeit startet.
Upgrade über die Anwendungsprogrammierschnittstelle
Verwenden Sie den folgenden Befehl, um ein Upgrade vor Ort durchzuführen:
curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "15"}'
Mit dieser Option expiration for starting upgrade können Sie eine Zeitüberschreitung konfigurieren, innerhalb derer der Upgrade-Vorgang gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie außerdem das Upgrade
vorab in einer Staging-Umgebung, um sicherzustellen, dass das Upgrade innerhalb des gewünschten Zeitfensters abgeschlossen wird. Wenn Sie das Upgrade beispielsweise innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet
haben und wissen, dass es 30 Minuten dauert, muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Setzen Sie daher das Ablaufdatum auf einen Zeitstempel von 30 Minuten
ab jetzt, damit es Ihr Zeitfenster nicht überschreitet, falls es innerhalb dieser Zeit nicht startet. Die Ablaufzeit muss zwischen 5 Minuten (Standard) und 24 Stunden ab jetzt liegen. Weitere Informationen finden Sie in der Cloud Databases API.
Upgrade über die Befehlszeilenschnittstelle
Verfügbar in CDB-Plugin-Version >= 0.20.0.
Um die Liste der zulässigen Upgrade- und Wiederherstellungsübergänge für die Bereitstellung anzuzeigen:
ibmcloud cdb deployment-capability-show <NAME|CRN> versions
Um den Befehl mit den erforderlichen Parametern zu aktualisieren:
ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>
Um alle Details zu den Befehlsparametern anzuzeigen:
ibmcloud cdb deployment-version-upgrade --help
Mit dieser Option expiration for starting upgrade können Sie eine Zeitüberschreitung konfigurieren, innerhalb derer der Upgrade-Vorgang gestartet werden muss, bevor er automatisch abgebrochen wird. Testen Sie außerdem das Upgrade
vorab in einer Staging-Umgebung, um sicherzustellen, dass das Upgrade innerhalb des gewünschten Zeitfensters abgeschlossen wird. Wenn Sie das Upgrade beispielsweise innerhalb einer Stunde abschließen möchten und Sie das Upgrade getestet
haben und wissen, dass es 30 Minuten dauert, muss Ihr Upgrade-Auftrag innerhalb von 30 Minuten nach Ihrer Bestätigung, dass Sie das Upgrade durchführen möchten, starten. Setzen Sie daher die Ablaufzeit auf 30 Minuten fest, damit Ihr Zeitfenster
nicht überschritten wird, falls der Vorgang nicht innerhalb dieser Zeit startet. Die Gültigkeitsdauer muss zwischen 5 Minuten (Standard) und 24 Stunden ab dem aktuellen Zeitpunkt liegen. Es gibt zwei Möglichkeiten, das Ablaufdatum über die
CLI --expire-in oder festzulegen --expire-at. Weitere Informationen finden Sie in der Hilfe zum Befehl.
Upgrade über Terraform
Verfügbar in Terraform-Anbieter-Version >= 1.79.2.
Um ein Upgrade durchzuführen, fügen Sie einfach den version Wert in Ihrer Konfiguration hinzu oder ändern Sie ihn.
Das Auslassen einer Datensicherung vor einem Versions-Upgrade ist gefährlich und kann zu Datenverlusten führen, falls das Upgrade zu irgendeinem Zeitpunkt fehlschlägt: Es steht dann keine aktuelle Datensicherung zur Verfügung, aus der die Daten wiederhergestellt werden könnten. Erstellen Sie daher vor dem Start eines In-Place-Upgrades auf eine neue Hauptversion eine aktuelle Sicherungskopie.
Die Aktualisierung kann länger dauern als die voreingestellte Zeitüberschreitung. Ein längerer Timeout-Wert kann mit dem Attribut „timeouts“ festgelegt werden.
Terraform verwendet Zeitüberschreitungen anstelle von Ablaufzeitstempeln. Erhöhen Sie daher Ihre Zeitüberschreitung, da der Wert für die Aktualisierung der Zeitüberschreitung als Ablaufzeit verwendet wird. Wenn Sie beispielsweise eine Zeitüberschreitung von 20 Minuten festlegen, wird die Ablaufzeit auf 20 Minuten gesetzt. Wenn das Upgrade nicht innerhalb dieses Zeitraums gestartet wird, läuft die Zeit ab und das Upgrade wird nicht gestartet. Beachten Sie, dass die maximale Gültigkeitsdauer 24 Stunden beträgt. Selbst wenn Sie also eine Zeitüberschreitung von 36 Stunden festlegen, verfällt das Upgrade, wenn es nicht innerhalb der ersten 24 Stunden gestartet wurde.
Wenn gerade ein Upgrade durchgeführt wird, beachten Sie bitte, dass einige Aufgaben möglicherweise in die Warteschlange gestellt wurden und erst nach Abschluss des Versions-Upgrades ausgeführt werden.
Fehlerbehebung
Wenn Ihre Anwendungen nach einem erfolgreichen In-Place-Upgrade auf eine Hauptversion unerwartete Probleme aufweisen und Sie zur vorherigen PostgreSQL Version zurückkehren müssen, wenden Sie sich bitte an unser Support-Team, um weitere Anweisungen zu erhalten. Vermeiden Sie es, selbst einen PITR-Vorgang zu starten oder ein Backup wiederherzustellen, da dies die Wiederherstellung erschweren kann.
Ein umfangreiches Upgrade vor Ort wird erst durchgeführt, wenn alle Vorabprüfungen erfolgreich abgeschlossen wurden. Diese Sicherheitsvorkehrungen dienen dem Schutz Ihrer Bereitstellung, da das Upgrade direkt auf der Quellinstanz durchgeführt wird. Wenn das Upgrade blockiert ist, überprüfen Sie die folgenden Bereiche:
- Anzahl der Knoten: Das In-Place-Upgrade auf eine höhere Hauptversion unterstützt Bereitstellungen mit maximal 3 Knoten. Wenn Ihre Bereitstellung mehr als 3 Mitglieder umfasst, verhindern die Vorabprüfungen das Upgrade. Mitglieder können nicht durch horizontale Skalierung entfernt werden. Eröffnen Sie daher ein Support-Ticket unter IBM Cloud, um die Anzahl der Mitglieder zu reduzieren, bevor Sie das Upgrade erneut versuchen.
- Cluster-Status: Stellen Sie sicher, dass der Patroni-Cluster fehlerfrei ist und ein eindeutiger Leader-/Replica-Status vorliegt. Upgrades können nicht durchgeführt werden, wenn Patroni Instabilität oder Failover-Bedingungen meldet.
- Speicherplatz: Stellen Sie sicher, dass genügend freier Speicherplatz vorhanden ist. Der Prozess verwendet
pg_upgradeden Link-Modus, der einen ausreichenden Headroom erfordert. Wenn die Festplattennutzung den konfigurierten Grenzwert überschreitet (Standard: 90 %), wird vor einem erneuten Versuch freier Speicherplatz geschaffen. - Festplatten-E/A-Auslastung: Überprüfen Sie die aktuelle E/A-Auslastung und die IOPS. Upgrades werden bei hoher Systemauslastung angehalten, um Leistungseinbußen oder Upgrade-Fehler zu vermeiden.
- Schema-Größe und Objektanzahl: Wie bereits erwähnt, wirkt sich die Schema-Größe direkt auf die Dauer eines In-Place-Upgrades auf eine höhere Hauptversion aus. Stellen Sie sicher, dass kein einzelnes Schema die maximale Größe (Standard: 100
GB) überschreitet und dass die Gesamtzahl der Index- und Sequenzobjekte unter dem Limit (Standard: 50.000) bleibt. Große Schemata oder ungewöhnlich hohe Objektzahlen erfordern möglicherweise eine Bereinigung oder Optimierung, bevor mit
dem Upgrade fortgefahren werden kann.
pg_upgradeführt schnelle Upgrades durch, indem neue Systemtabellen erstellt und die alten Benutzerdatendateien einfach wiederverwendet werden. Die zur Erstellung dieser Systemtabellen erforderliche Zeit hängt von der Anzahl der Datenbankobjekte ab. Der Ressourcenverbrauch kann mithilfe der Überwachungsintegration bewertet werden. Wenn nicht alle Datenbankkomponenten für ein Upgrade verfügbar sind, schlägt die Upgrade-Aufgabe fehl. Dies kann aufgrund von Wartungsarbeiten geschehen. Aufgaben, die aufgrund fehlgeschlagener Zustandsprüfungen fehlgeschlagen sind, können später erneut versucht werden. Wenn die Aufgabe weiterhin fehlschlägt, öffnen Sie ein Support-Ticket bei IBM Cloud support. Wenn bestimmte Überprüfungen für Ihre Umgebung nicht relevant sind und das Upgrade dennoch blockiert ist, erstellen Sie ein Support-Ticket, um weitere Unterstützung zu erhalten.
Upgrade von einem Nur-Lese-Replikat durchführen
Führen Sie ein Upgrade durch, indem Sie ein schreibgeschütztes Replikat konfigurieren. Richten Sie eine schreibgeschützte Replik mit derselben Datenbankversion
wie Ihre Bereitstellung ein und warten Sie, bis alle Ihre Daten repliziert sind. Sobald Ihre Bereitstellung und deren Replik synchronisiert sind, wandeln Sie die schreibgeschützte Replik in eine vollständige, eigenständige Bereitstellung um,
auf der die neue Version der Datenbank ausgeführt wird, und führen Sie das Upgrade durch. Um den Upgrade- und Promotionsschritt durchzuführen, senden Sie eine POST-Anfrage an den /deployments/{id}/remotes/promotion Endpunkt senden, wobei Sie die Version, auf die Sie aktualisieren möchten, im Hauptteil der Anfrage angeben.
Diese Anforderung sieht wie folgt aus:
curl -X POST \
https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"promotion": {
"version": "14",
"skip_initial_backup": false
}
}' \
skip_initial_backup ist optional. Wenn true festgelegt ist, erstellt die neue Bereitstellung keine Erstsicherung wenn die Hochstufung abgeschlossen ist. Ihre neue Bereitstellung ist in kürzerer Zeit verfügbar, wobei
dies auf Kosten einer Sicherung geht. Es wird vor der Ausführung der nächsten automatischen Sicherung keine Sicherung erstellt, sofern Sie keine Sicherung gesondert anfordern.
Probelauf von Hochstufung und Aktualisierung
Um die Auswirkungen größerer Versions-Upgrades zu bewerten, führen Sie einen Testlauf durch. Ein Probelauf simuliert die Hochstufung und das Upgrade, wobei die Ergebnisse in die Datenbankprotokolle ausgegeben werden. Greifen Sie über die Log-Analyse-Integration auf Ihre Datenbankprotokolle zu und zeigen Sie sie an. Dadurch wird sichergestellt, dass die von Ihnen derzeit verwendete Version mit ihren Erweiterungen erfolgreich auf die von Ihnen gewünschte Version aktualisiert werden kann.
Für den Probelauf wird für skip_initial_backup der Wert false festgelegt und es wird ein Wert für version definiert.
Der Befehl sieht wie folgt aus:
curl -X POST \
https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/remotes/promotion \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"promotion": {
"version": "14",
"skip_initial_backup": false,
"dry_run": true
}
}' \
Sicherung und Wiederherstellung nach einem Upgrade
Sie können ein Upgrade für Ihre Datenbankversion durchführen, indem Sie eine Sicherung Ihrer Daten in einer neuen Implementierung wiederherstellen, die die neue Datenbankversion ausführt.
Upgrade über die Benutzerschnittstelle
Führen Sie ein Upgrade auf eine neue Version durch, wenn Sie über das Menü Sicherungen Ihres _Bereitstellungsdashboards_eine Sicherung wiederherstellen. Klicken Sie bei einem Backup auf Wiederherstellen, um auf einer neuen Registerkarte zur Bereitstellungsseite zu gelangen, wo Sie einige Optionen für die neue Bereitstellung ändern können. Eine der Optionen ist die Datenbankversion, die automatisch mit den Versionen ausgefüllt wird, auf die Sie aktualisieren können. Wählen Sie eine Version aus und klicken Sie auf „Erstellen“, um den Bereitstellungs- und Wiederherstellungsprozess zu starten.
Upgrade über die Befehlszeilenschnittstelle
Um über die CLI von „ IBM Cloud “ ein Upgrade durchzuführen und eine Sicherung wiederherzustellen, verwenden Sie den Befehl „provisioning“ des Ressourcen-Controllers.
ibmcloud resource service-instance-create <DEPLOYMENT_NAME_OR_CRN> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION> <SERVICE-ENDPOINTS>
Die Parameter „ service-name “, „ service-id “, „ service-plan-id “, „ region “ und „ service-endpoints “ sind alle erforderlich. Geben Sie auch -p mit den Parametern
für Version und Sicherungs-ID in einem JSON-Objekt an. Die neue Bereitstellung hat automatisch eine Platte und einen Speicher derselben Größe wie die Quellenbereitstellung zum Zeitpunkt der Sicherung.
Dieser Befehl sieht wie folgt aus:
ibmcloud resource service-instance-create example-upgrade databases-for-postgresql standard us-south \
-p \ '{
"backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
"version":14
}'--service-endpoints "public"
Upgrade über die Anwendungsprogrammierschnittstelle
Führen Sie die erforderlichen Schritte zur Verwendung der Resource-Controller-API durch, bevor Sie sie für
ein Upgrade von einem Backup verwenden. Senden Sie anschließend eine „ POST “-Anfrage an die API. Die Parameter name, target, resource_group und resource_plan_id sind erforderlich.
Geben Sie auch die Version und die Sicherungs-ID an. Die neue Bereitstellung verfügt über die gleiche Speicher- und Plattenzuordnung wie die Quellenbereitstellung zum Zeitpunkt der Sicherung.
Dieser Befehl sieht wie folgt aus:
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "bluemix-us-south",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "databases-for-postgresql-standard",
"backup_id": "crn:v1:bluemix:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
"version":14
}'
Erzwungenes Upgrade
Nach Ablauf des End-of-Life-Datums werden alle aktiven Databases for PostgreSQL Bereitstellungen der veralteten Version zwangsweise auf die nächste unterstützte Version aktualisiert. Beispielsweise wird Version 13 (veraltet) auf Version PostgreSQL 14 aktualisiert.
Rüsten Sie vor dem End-of-Life-Datum auf, um die folgenden Risiken zu vermeiden:
- Für diese Art von erzwungenem Upgrade sind keine SLAs vorgesehen.
- Es kann zu Datenverlusten kommen.
- Es kann zu längeren Ausfallzeiten Ihrer Anwendung kommen.
- Ihre Anwendung funktioniert möglicherweise nicht mehr, wenn sie mit der neuen Version nicht kompatibel ist.
- Sie haben keinen Einfluss darauf, wann dieses Upgrade für Ihren Einsatz durchgeführt wird.
- Für dieses erzwungene Upgrade gibt es keinen Rollback-Prozess.
Die Daten für das Ende der Lebensdauer finden Sie auf der Seite mit den Versionsrichtlinien.
Probleme mit Rollenberechtigungen bei Versions-Upgrades
Ab „ PostgreSQL “ 16 werden die Berechtigungsregeln für Rollen strenger gehandhabt. Hierbei handelt es sich um eine architektonische Änderung im Upstream-Projekt „ PostgreSQL “, nicht um eine Verhaltensänderung, die speziell „ {{site.data.keyword.ibm}}
“ betrifft. In früheren Versionen konnten Rollen mit dem Attribut „ CREATEROLE “ andere Rollen in größerem Umfang verwalten. In „ PostgreSQL “ 16 und späteren Versionen muss eine Rolle über die Berechtigung „ ADMIN OPTION “ für eine andere Rolle verfügen, um diese zu erteilen oder zu widerrufen. Weitere Informationen finden Sie in den Versionshinweisen zu „ PostgreSQL.16“,
unter „Rollenattribute“ sowie unter GRANT zum Thema Rollen.
Wenn Sie ein Upgrade von „ PostgreSQL “ 15 oder einer früheren Version auf „ PostgreSQL “ 16 oder eine neuere Version durchführen, überprüfen Sie vor der IPU Ihre Rollenzuweisungen. Wenn die Rollenverwaltung nach dem Upgrade fortgesetzt werden
soll, stellen Sie sicher, dass die erforderlichen Rollen mit „ WITH ADMIN OPTION “ zugewiesen werden, bevor Sie das Upgrade starten.
Sollten nach dem Upgrade Fehler im Zusammenhang mit Berechtigungen auftreten, zum Beispiel:
ERROR: only roles with the ADMIN OPTION on role "some_role" may grant this role
DETAIL: role "admin" is not permitted to grant role "some_role"
Verwenden Sie die integrierte Hilfsfunktion „ grant_admin_option_to_roles “, um „ ADMIN OPTION “ für bestimmte Rollen wiederherzustellen:
- Dies gilt nur für Datenbanken, die von „ PostgreSQL “, „ v15 “ und früheren Versionen auf „ PostgreSQL 16“ und spätere Versionen aktualisiert wurden (falls der zuvor beschriebene Fehler auftritt).
- Akzeptiert eine beliebige Liste von Rollen, auf die die Korrektur angewendet werden soll.
- Kann nur vom Benutzer „
admin“ ausgeführt werden. - Kann sicher mehrfach ausgeführt werden (idempotent).
Verwendungsbeispiel:
SELECT grant_admin_option_to_roles('role1', 'role2', 'role3');
Diese Funktion weist dem Benutzer „ admin “ mit der E-Mail-Adresse „ ADMIN OPTION “ die angegebenen Rollen (role1, role2, role3) zu, sodass der Benutzer „ admin “
diese Rollen in aktualisierten Instanzen verwalten (vergeben, widerrufen, ändern oder löschen) kann.