Antes de começar
Verifique se a versão do operador do AlloyDB Omni no Kubernetes é
1.7.0. Para fazer upgrade da versão do operador do AlloyDB Omni, consulte Migrar para a versão mais recente do operador do AlloyDB Omni no Kubernetes.Verifique se você tem pelo menos 5 GB de espaço livre em disco.
Se você executa sistemas de backup externos ou remotos, faça um backup completo e pause todos os backups programados para evitar o backup durante o processo de upgrade.
Para ambientes de alta disponibilidade (HA) e resiliência de dados (DR) desvincule os clusters de banco de dados antes de fazer upgrade deles.
Fazer upgrade da versão do AlloyDB Omni
Para fazer upgrade da versão do AlloyDB Omni usando pg_upgrade, faça uma destas ações:
Execute o script Bash que faz o upgrade para você.
Fazer upgrade com script
É possível encontrar um script que executa as etapas de upgrade manual nos exemplos do AlloyDB Omni no GitHub.
Para usar o script de upgrade, faça o download dele e execute o seguinte comando:
./MVU.sh 18.1.0 1.7.0 NAME NAMESPACE OS_TYPE
Substitua as seguintes variáveis:
- NAME: o nome do cluster de banco de dados.
- NAMESPACE: o namespace do cluster de banco de dados.
- OS_TYPE: o sistema operacional de base da imagem do banco de dados. Os valores válidos são
DebianeUBI9. Se não for especificado, o operador usaráUBI9como padrão para as versões 16.9.0 e mais recentes do banco de dados.
Executar etapas de upgrade manual
Siga as instruções da versão principal em que você está fazendo upgrade.
Fazer upgrade da versão 17.x.x para 18.1.0
Faça backup dos seus dados para evitar a perda de dados.
Encerre todos os processos de replicação. Isso inclui replicação física usada para alta disponibilidade (HA) e resiliência de dados (DR) bem como todos os fluxos de replicação lógica.
Anote o cluster de banco de dados para especificar um upgrade de versão manual.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu=trueSubstitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Pare o processo do PostgreSQL e mova os dados para o upgrade.
kubectl exec -ti POD_NAME -- /bin/Bash # Shut down postgres postgres@POD_NAME:~$ supervisorctl.par stop postgres postgres@POD_NAME:~$ mkdir /mnt/disks/pgsql/17; mv /mnt/disks/pgsql/data /mnt/disks/pgsql/17/data; cp -r /usr/lib/postgresql/17/bin /mnt/disks/pgsql/17/.; cp -r /usr/lib/postgresql/17/lib /mnt/disks/pgsql/17/.; cp -r /usr/share/postgresql/17 /mnt/disks/pgsql/17/share; rm /mnt/disks/pgsql/17/share/postgresql.conf.sample; cp /usr/share/postgresql/postgresql.conf.sample /mnt/disks/pgsql/17/share/postgresql.conf.sample; chmod 2740 /mnt/disks/pgsql/17/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Aplique um patch no cluster de banco de dados para a versão
18.1.0e nos agentes do plano de controle (CPA) para1.7.0.kubectl patch dbclusters.alloydbomni.dbadmin.goog NAME --type=merge -p '{"spec":{"databaseVersion":"18.1.0","controlPlaneAgentsVersion":"1.7.0","databaseImageOSType":"UBI9"}}'Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Crie um cluster de banco de dados vazio para a versão atualizada do AlloyDB Omni.
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 ~Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno cluster de banco de dados preexistente para fornecer ao processo de upgrade as permissões e conexões necessárias.# Backup pg_hba.conf of the pg17 cluster postgres@POD_NAME:~$ cp /mnt/disks/pgsql/17/data/pg_hba.conf /mnt/disks/pgsql/17/data/pg_hba.conf.bak # Update pg17 configurations postgres@POD_NAME:~$ echo "local all all trust" >> /mnt/disks/pgsql/17/data/pg_hba.conf; echo "host all all 127.0.0.1/32 trust" >> /mnt/disks/pgsql/17/data/pg_hba.confSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno novo cluster de banco de dados para fornecer ao processo de upgrade as permissões e conexões necessárias.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/17/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Faça upgrade do cluster de banco de dados.
# (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/17/bin -B /usr/lib/postgresql/18/bin -d /mnt/disks/pgsql/17/data -D /mnt/disks/pgsql/data --link -v postgres@POD_NAME:~$ pg_upgrade -U alloydbadmin -b /mnt/disks/pgsql/17/bin -B /usr/lib/postgresql/18/bin -d /mnt/disks/pgsql/17/data -D /mnt/disks/pgsql/data --link -v # Recover pg17 configurations postgres@POD_NAME:~$ cp /mnt/disks/pgsql/17/data/pg_hba.conf.bak /mnt/disks/pgsql/data/pg_hba.conf; cp -r /mnt/disks/pgsql/17/data/postgresql.conf /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/17/data/postgresql.conf.d /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/17/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/17/Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Após um upgrade bem-sucedido, remova a anotação de upgrade de versão manual do cluster de banco de dados.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu-Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Retome as operações normais e reative todos os backups, planos de backup ou processos de replicação desativados nas etapas de um a três.
Fazer upgrade da versão 16.x.x para 17.5.0
Faça backup dos seus dados para evitar a perda de dados.
Encerre todos os processos de replicação. Isso inclui replicação física usada para alta disponibilidade (HA) e resiliência de dados (DR) bem como todos os fluxos de replicação lógica.
Anote o cluster de banco de dados para especificar um upgrade de versão manual.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu=trueSubstitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Pare o processo do PostgreSQL e mova os dados para o upgrade.
kubectl exec -ti POD_NAME -- /bin/Bash # Shut down postgres postgres@POD_NAME:~$ supervisorctl.par stop postgres postgres@POD_NAME:~$ mkdir /mnt/disks/pgsql/16; mv /mnt/disks/pgsql/data /mnt/disks/pgsql/16/data; cp -r /usr/lib/postgresql/16/bin /mnt/disks/pgsql/16/.; cp -r /usr/lib/postgresql/16/lib /mnt/disks/pgsql/16/.; cp -r /usr/share/postgresql/16 /mnt/disks/pgsql/16/share; rm /mnt/disks/pgsql/16/share/postgresql.conf.sample; cp /usr/share/postgresql/postgresql.conf.sample /mnt/disks/pgsql/16/share/postgresql.conf.sample; chmod 2740 /mnt/disks/pgsql/16/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Aplique um patch no cluster de banco de dados para a versão
17.5.0e nos agentes do plano de controle (CPA) para1.6.2.kubectl patch dbclusters.alloydbomni.dbadmin.goog NAME --type=merge -p '{"spec":{"databaseVersion":"17.5.0","controlPlaneAgentsVersion":"1.6.2","databaseImageOSType":"UBI9"}}'Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Crie um cluster de banco de dados vazio para a versão atualizada do AlloyDB Omni.
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 ~Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno cluster de banco de dados preexistente para fornecer ao processo de upgrade as permissões e conexões necessárias.# Backup pg_hba.conf of the pg16 cluster postgres@POD_NAME:~$ cp /mnt/disks/pgsql/16/data/pg_hba.conf /mnt/disks/pgsql/16/data/pg_hba.conf.bak # Update pg16 configurations postgres@POD_NAME:~$ echo "local all all trust" >> /mnt/disks/pgsql/16/data/pg_hba.conf; echo "host all all 127.0.0.1/32 trust" >> /mnt/disks/pgsql/16/data/pg_hba.confSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno novo cluster de banco de dados para fornecer ao processo de upgrade as permissões e conexões necessárias.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/16/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Faça upgrade do cluster de banco de dados.
# (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/16/bin -B /usr/lib/postgresql/17/bin -d /mnt/disks/pgsql/16/data -D /mnt/disks/pgsql/data --link -v postgres@POD_NAME:~$ pg_upgrade -U alloydbadmin -b /mnt/disks/pgsql/16/bin -B /usr/lib/postgresql/17/bin -d /mnt/disks/pgsql/16/data -D /mnt/disks/pgsql/data --link -v # Recover pg16 configurations postgres@POD_NAME:~$ cp /mnt/disks/pgsql/16/data/pg_hba.conf.bak /mnt/disks/pgsql/data/pg_hba.conf; cp -r /mnt/disks/pgsql/16/data/postgresql.conf /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/16/data/postgresql.conf.d /mnt/disks/pgsql/data/.; cp -r /mnt/disks/pgsql/16/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/16/Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Após um upgrade bem-sucedido, remova a anotação de upgrade de versão manual do cluster de banco de dados.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu-Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Retome as operações normais e reative todos os backups, planos de backup ou processos de replicação desativados nas etapas de um a três.
Fazer upgrade da versão 15.x.x para 17.5.0
Faça backup dos seus dados para evitar a perda de dados.
Encerre todos os processos de replicação. Isso inclui replicação física usada para alta disponibilidade (HA) e resiliência de dados (DR) bem como todos os fluxos de replicação lógica.
Anote o cluster de banco de dados para especificar um upgrade de versão manual.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu=trueSubstitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Pare o processo do PostgreSQL e mova os dados para o upgrade.
kubectl 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/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Aplique um patch no cluster de banco de dados para a versão
17.5.0e nos agentes do plano de controle (CPA) para1.6.2.kubectl patch dbclusters.alloydbomni.dbadmin.goog NAME --type=merge -p '{"spec":{"databaseVersion":"17.5.0","controlPlaneAgentsVersion":"1.6.2","databaseImageOSType":"UBI9"}}'Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Crie um cluster de banco de dados vazio para a versão atualizada do AlloyDB Omni.
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 ~Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno cluster de banco de dados preexistente para fornecer ao processo de upgrade as permissões e conexões necessárias.# 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.confSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Modifique
pg_hba.confno novo cluster de banco de dados para fornecer ao processo de upgrade as permissões e conexões necessárias.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/dataSubstitua a seguinte variável:
- POD_NAME: o nome do pod.
Faça upgrade do cluster de banco de dados.
# (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/17/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/17/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/Substitua a seguinte variável:
- POD_NAME: o nome do pod.
Após um upgrade bem-sucedido, remova a anotação de upgrade de versão manual do cluster de banco de dados.
kubectl annotate dbclusters.alloydbomni.dbadmin.goog NAME dbs.dbadmin.goog.com/manualmvu-Substitua a seguinte variável:
- NAME: o nome do cluster de banco de dados.
Retome as operações normais e reative todos os backups, planos de backup ou processos de replicação desativados nas etapas de um a três.