Hinweise
- Prüfen Sie, ob die Version Ihres AlloyDB Omni Kubernetes-Operators - 1.5.0ist. Informationen zum Aktualisieren der AlloyDB Omni-Operatorversion finden Sie unter Zur neuesten Version des AlloyDB Omni Kubernetes-Operators migrieren.
- Prüfen Sie, ob Sie mindestens 5 GB freien Speicherplatz haben. 
- Wenn Sie externe oder Remote-Sicherungssysteme verwenden, führen Sie eine vollständige Sicherung durch und pausieren Sie alle geplanten Sicherungen, um Sicherungen während des Upgrades zu vermeiden. 
- In Umgebungen mit Hochverfügbarkeit (HA) und Datenresilienz (DR) sollten Sie Ihre Datenbankcluster entkoppeln, bevor Sie sie aktualisieren. 
AlloyDB Omni-Version aktualisieren
Wenn Sie Ihre AlloyDB Omni-Version mit pg_upgrade aktualisieren möchten, haben Sie folgende Möglichkeiten:
- Führen Sie das Bash-Skript aus, das das Upgrade für Sie durchführt. 
Scriptbasiertes Upgrade ausführen
Ein Skript, das die manuellen Upgradeschritte ausführt, finden Sie in den AlloyDB Omni-Beispielen auf GitHub.
Laden Sie das Upgrade-Skript herunter und führen Sie den folgenden Befehl aus, um es zu verwenden:
./MVU.sh 16.8.0 1.5.0 NAME NAMESPACE
Ersetzen Sie die folgenden Variablen:
- NAME: Der Name Ihres Datenbankclusters.
- NAMESPACE: Der Namespace für Ihren Datenbankcluster.
Manuelle Upgradeschritte ausführen
- Sichern Sie Ihre Daten, um Datenverlust zu vermeiden. 
- Beenden Sie alle Replikationsprozesse. Dazu gehören die physische Replikation für Hochverfügbarkeit (HA) und Datenresilienz (DR) sowie alle Streams für die logische Replikation. 
- Annotieren Sie Ihren Datenbankcluster, um ein manuelles Versionsupgrade anzugeben. - kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu=true- Ersetzen Sie die folgende Variable: - NAME: Der Name Ihres Datenbankclusters.
 
- Beenden Sie den PostgreSQL-Prozess, damit Daten für das Upgrade verschoben werden können. - k exec -ti POD_NAME -- /bin/Bash # Shut down postgres postgres@POD_NAME:~$ supervisorctl.par stop postgres postgres@POD_NAME:~$ mkdir /mnt/disks/pgsql/15; mv /mnt/disks/pgsql/data /mnt/disks/pgsql/15/data; cp -r /usr/lib/postgresql/15/bin /mnt/disks/pgsql/15/.; cp -r /usr/lib/postgresql/15/lib /mnt/disks/pgsql/15/.; cp -r /usr/share/postgresql/15 /mnt/disks/pgsql/15/share; rm /mnt/disks/pgsql/15/share/postgresql.conf.sample; cp /usr/share/postgresql/postgresql.conf.sample /mnt/disks/pgsql/15/share/postgresql.conf.sample; chmod 2740 /mnt/disks/pgsql/15/data- Ersetzen Sie die folgende Variable: - POD_NAME: der Name Ihres Pods.
 
- Patchen Sie Ihren Datenbankcluster auf Version - 16.8.0und Ihre CPA-Agents (Control Plane Agents) auf- 1.5.0.- kubectl patch dbclusters.alloydbomni.dbadmin.goog NAME --type=merge -p '{"spec":{"databaseVersion":"16.8.0","controlPlaneAgentsVersion":"omni_control_plane_agents_version"}}'- Ersetzen Sie die folgende Variable: - NAME: Der Name Ihres Datenbankclusters.
 
- Erstellen Sie einen leeren Datenbankcluster für die aktualisierte AlloyDB Omni-Version. - kubectl exec -ti POD_NAME -- /bin/Bash postgres@POD_NAME:~$ supervisorctl.par stop postgres # Initialize a new, empty database cluster for the new version. postgres@POD_NAME:~$ rm -fr /mnt/disks/pgsql/data; initdb -D /mnt/disks/pgsql/data -U alloydbadmin --data-checksums --encoding=UTF8 --locale=C --locale-provider=icu --icu-locale=und-x-icu --auth-host=trust --auth-local=reject; cd ~- Ersetzen Sie die folgende Variable: - POD_NAME: der Name Ihres Pods.
 
- Ändern Sie - pg_hba.confin Ihrem vorhandenen Datenbankcluster, um dem Upgrade-Prozess die erforderlichen Berechtigungen und Verbindungen zu gewähren.- # Backup pg_hba.conf of the pg15 cluster postgres@POD_NAME:~$ cp /mnt/disks/pgsql/15/data/pg_hba.conf /mnt/disks/pgsql/15/data/pg_hba.conf.bak # Update pg15 configurations postgres@POD_NAME:~$ echo "local all all trust" >> /mnt/disks/pgsql/15/data/pg_hba.conf; echo "host all all 127.0.0.1/32 trust" >> /mnt/disks/pgsql/15/data/pg_hba.conf- Ersetzen Sie die folgende Variable: - POD_NAME: der Name Ihres Pods.
 
- Ändern Sie - pg_hba.confim neuen Datenbankcluster, um dem Upgrade-Prozess die erforderlichen Berechtigungen und Verbindungen zu gewähren.- postgres@POD_NAME:~$ rm /mnt/disks/pgsql/data/pg_hba.conf; echo "local all all trust" >> /mnt/disks/pgsql/data/pg_hba.conf; echo "host all all 127.0.0.1/32 trust" >> /mnt/disks/pgsql/data/pg_hba.conf; chmod 2740 /mnt/disks/pgsql/15/data- Ersetzen Sie die folgende Variable: - POD_NAME: der Name Ihres Pods.
 
- Führen Sie ein Upgrade Ihres Datenbankclusters durch. - # (optional) Make sure postgres is stopped postgres@POD_NAME:~$ supervisorctl.par stop postgres # (optional) Check to verify that data can be upgraded. postgres@POD_NAME:~$ pg_upgrade -U alloydbadmin --check -b /mnt/disks/pgsql/15/bin -B /usr/lib/postgresql/16/bin -d /mnt/disks/pgsql/15/data -D /mnt/disks/pgsql/data --link -v postgres@POD_NAME:~$ pg_upgrade -U alloydbadmin -b /mnt/disks/pgsql/15/bin -B /usr/lib/postgresql/16/bin -d /mnt/disks/pgsql/15/data -D /mnt/disks/pgsql/data --link -v # Recover pg15 configurations postgres@POD_NAME:~$ cp /mnt/disks/pgsql/15/data/pg_hba.conf.bak /mnt/disks/pgsql/data/pg_hba.conf; cp -r /mnt/disks/pgsql/15/data/postgresql.conf /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/15/data/postgresql.conf.d /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/15/data/parambackup /mnt/disks/pgsql/data/. # Start postgres postgres@POD_NAME:~$ supervisorctl.par start postgres # Clean up backup data postgres@POD_NAME:~$ rm -fr /mnt/disks/pgsql/15/- Ersetzen Sie die folgende Variable: - POD_NAME: der Name Ihres Pods.
 
- Entfernen Sie nach einem erfolgreichen Upgrade die Anmerkung zum manuellen Versionsupgrade aus Ihrem Datenbankcluster. - kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu-- Ersetzen Sie die folgende Variable: - NAME: Der Name Ihres Datenbankclusters.
 
- Nehmen Sie den normalen Betrieb wieder auf und aktivieren Sie alle Sicherungen, Sicherungspläne oder Replikationsprozesse, die Sie in den Schritten 1 bis 3 deaktiviert haben.