Prima di iniziare
- Verifica che la versione dell'operatore AlloyDB Omni Kubernetes sia - 1.5.0. Per eseguire l'upgrade della versione dell'operatore AlloyDB Omni, consulta Eseguire la migrazione alla versione più recente dell'operatore AlloyDB Omni Kubernetes.
- Verifica di avere almeno 5 GB di spazio libero su disco. 
- Se esegui sistemi di backup esterni o remoti, esegui un backup completo e metti in pausa tutti i backup pianificati per evitare di eseguire il backup durante la procedura di upgrade. 
- Per gli ambienti ad alta disponibilità (HA) e resilienza dei dati (RE), disaccoppia i cluster di database prima di eseguirne l'upgrade. 
Esegui l'upgrade della versione di AlloyDB Omni
Per eseguire l'upgrade della versione di AlloyDB Omni utilizzando pg_upgrade, esegui una
delle seguenti operazioni:
- Esegui lo script bash che esegue l'upgrade. 
Esegui l'upgrade basato su script
Puoi trovare uno script che esegue i passaggi di upgrade manuale negli esempi di AlloyDB Omni su GitHub.
Per utilizzare lo script di upgrade, scaricalo ed esegui il comando seguente:
./MVU.sh 16.8.0 1.5.0 NAME NAMESPACE
Sostituisci le seguenti variabili:
- NAME: il nome del cluster di database.
- NAMESPACE: lo spazio dei nomi del cluster di database.
Esegui i passaggi di upgrade manuale
- Esegui il backup dei dati per evitare di perderli. 
- Termina tutti i processi di replica. Ciò include la replica fisica utilizzata per l'alta affidabilità (HA) e la resilienza dei dati (RE), nonché tutti i flussi di replica logica. 
- Annota il cluster di database per specificare un upgrade manuale della versione. - kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu=true- Sostituisci la seguente variabile: - NAME: il nome del cluster di database.
 
- Arresta il processo PostgreSQL in modo che i dati possano essere spostati per l'upgrade. - 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- Sostituisci la seguente variabile: - POD_NAME: il nome del pod.
 
- Applica la patch al cluster di database alla versione - 16.8.0e agli agenti del control plane (CPA) alla versione- 1.5.0.- kubectl patch dbclusters.alloydbomni.dbadmin.goog NAME --type=merge -p '{"spec":{"databaseVersion":"16.8.0","controlPlaneAgentsVersion":"omni_control_plane_agents_version"}}'- Sostituisci la seguente variabile: - NAME: il nome del cluster di database.
 
- Crea un cluster di database vuoto per la versione di AlloyDB Omni di cui è stato eseguito l'upgrade. - 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 ~- Sostituisci la seguente variabile: - POD_NAME: il nome del pod.
 
- Modifica - pg_hba.confnel cluster di database preesistente per fornire alla procedura di upgrade le autorizzazioni e le connessioni necessarie.- # 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- Sostituisci la seguente variabile: - POD_NAME: il nome del pod.
 
- Modifica - pg_hba.confnel nuovo cluster di database per fornire all'upgrade le autorizzazioni e le connessioni di cui ha bisogno.- 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- Sostituisci la seguente variabile: - POD_NAME: il nome del pod.
 
- Esegui l'upgrade del cluster di database. - # (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/- Sostituisci la seguente variabile: - POD_NAME: il nome del pod.
 
- Dopo un upgrade riuscito, rimuovi l'annotazione di upgrade manuale della versione dal cluster di database. - kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu-- Sostituisci la seguente variabile: - NAME: il nome del cluster di database.
 
- Riprendi le normali operazioni e riattiva i backup, i piani di backup o i processi di replica disattivati nei passaggi da 1 a 3.