Antes de começar
Ao fazer upgrade do operador do AlloyDB Omni, o banco de dados será reiniciado, a menos que todas as condições a seguir sejam verdadeiras:
- Você está atualizando a versão 1.1.1 do operador do AlloyDB Omni para uma versão mais recente.
- Você está usando a versão 15.5.5 ou mais recente do banco de dados do AlloyDB Omni.
- O AlloyDB AI não está ativado. Para mais informações, consulte Criar um cluster de banco de dados com o AlloyDB AI.
Se o banco de dados for reiniciado, não haverá perda de dados.
A partir da versão 15.7.1 do banco de dados AlloyDB Omni, a alta disponibilidade (HA) nos clusters de banco de dados AlloyDB Omni baseados no Kubernetes usa uma nova arquitetura para oferecer mais proteção e melhorias para recursos de configuração automática, failover e correção de HA.
Se você estiver fazendo upgrade da versão do banco de dados do AlloyDB Omni de 15.7.0 (ou anterior) para a versão 15.7.1 (ou posterior) ou se estiver fazendo downgrade de versões, desative a alta disponibilidade e reative-a após a conclusão do processo.
Determinar suas versões atuais
Para verificar a versão do AlloyDB Omni usada pelo cluster de banco de dados, execute o seguinte comando:
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentDatabaseVersion}'
Faça as seguintes substituições:
DB_CLUSTER_NAME
: o nome do cluster de banco de dados. É o mesmo nome de cluster de banco de dados que você declarou ao criá-lo. Para mais informações, consulte Instalar o AlloyDB Omni no Kubernetes.NAMESPACE
: o namespace do Kubernetes do cluster de banco de dados.
Se você executar a versão 1.0.0 ou mais recente do operador do AlloyDB Omni, esse comando vai imprimir a versão do AlloyDB Omni usada pelo cluster de banco de dados.
Para verificar a versão do operador do AlloyDB Omni instalada no cluster do Kubernetes, execute o seguinte comando:
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentControlPlaneAgentsVersion}'
Se você executar a versão 1.0.0 ou mais recente do operador do AlloyDB Omni, a saída será o número da versão do operador do AlloyDB Omni em execução no seu cluster do Kubernetes.
Se você estiver executando uma versão do operador do AlloyDB Omni anterior à 1.0.0, siga as instruções em Fazer upgrade de um operador do AlloyDB Omni anterior à versão 1.0.0. Caso contrário, verifique os números da versão de destino.
Verificar os números da versão de destino
Se você estiver executando uma versão do operador do AlloyDB Omni 1.0.0 ou mais recente, as próximas etapas vão depender da versão do AlloyDB Omni para a qual você quer fazer upgrade. O número da versão do AlloyDB Omni tem os seguintes componentes:
- O número da versão principal da compatibilidade com PostgreSQL
- O número da versão secundária da compatibilidade com PostgreSQL
- O número da versão de patch desta versão do AlloyDB Omni
Por exemplo, a versão 16.8.0 do AlloyDB Omni é compatível com o PostgreSQL versão 15.7 e não tem um patch de lançamento do AlloyDB Omni.
Escolha a opção de instalação que funciona para sua versão de destino:
Cenário de instalação | Etapas de atualização |
---|---|
Você quer fazer upgrade para uma versão do AlloyDB Omni que seja compatível com uma versão mais recente do PostgreSQL. | Faça upgrade do operador do AlloyDB Omni e do cluster de banco de dados. Cada conjunto de versões do AlloyDB Omni que oferece suporte a uma versão secundária específica do PostgreSQL tem um número de versão do operador do AlloyDB Omni. Use a tabela de compatibilidade de versões do operador do AlloyDB Omni para verificar se a versão do operador do AlloyDB Omni é compatível com a sua versão do operador. |
Você quer fazer upgrade apenas para uma versão de patch mais recente do AlloyDB Omni. | Faça upgrade apenas do cluster de banco de dados. |
Todos os outros cenários | Siga as etapas em fazer upgrade do operador do AlloyDB Omni. |
Fazer upgrade do operador do AlloyDB Omni
Para fazer upgrade do operador do AlloyDB Omni, siga estas etapas:
Defina as variáveis de ambiente:
export GCS_BUCKET=alloydb-omni-operator
export OPERATOR_VERSION=OPERATOR_VERSION
export HELM_PATH=$OPERATOR_VERSION/alloydbomni-operator-$OPERATOR_VERSION.tgz
Substitua
OPERATOR_VERSION
pela versão do operador do AlloyDB Omni para a qual você está fazendo upgrade. Por exemplo,1.5.0
.Baixe o operador mais recente do AlloyDB Omni:
gcloud storage cp -r gs://$GCS_BUCKET/$HELM_PATH ./
tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
Aplique as definições de recursos personalizados mais recentes do operador do AlloyDB Omni:
kubectl apply -f alloydbomni-operator/crds
Faça upgrade do gráfico do Helm do operador do AlloyDB Omni:
helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --namespace alloydb-omni-system \ --atomic \ --timeout 5m
Atualizar clusters de banco de dados do OpenShift da versão 1.4.1 ou anterior
A partir da versão 1.5.0, o operador do AlloyDB Omni é compatível
com a restrição de contexto de segurança restricted-v2
padrão do OpenShift. Para novos
clusters de banco de dados no OpenShift que executam o controlPlaneAgentsVersion
1.5.0 ou
posterior, o OpenShift injetará IDs de usuário arbitrários
para as cargas de trabalho do banco de dados. Para clusters de banco de dados que executam uma versão mais antiga, as
cargas de trabalho de banco de dados precisam continuar sendo executadas como o ID de usuário padrão 999
.
Para atualizar um cluster de banco de dados no OpenShift de uma versão controlPlaneAgentsVersion
anterior a 1.5.0, siga estas etapas:
Conceda à conta de serviço do cluster de banco de dados permissão para usar a restrição de contexto de segurança
anyuid
. Isso permite que a carga de trabalho do banco de dados seja executada como ID de usuário padrão.oc adm policy add-scc-to-user anyuid system:serviceaccount:NAMESPACE:DB_CLUSTER_NAME-sa
Adicione a anotação
openshift.io/scc=anyuid
ao cluster de banco de dados. A versão 1.5.0 ou mais recente do operador do AlloyDB Omni reconhece essa anotação e executa as cargas de trabalho do banco de dados como ID de usuário padrão no OpenShift em vez de permitir que a plataforma injete um ID arbitrário.kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE openshift.io/scc=anyuid
Siga as etapas para atualizar o cluster de banco de dados para a versão mais recente.
Atualizar os clusters de banco de dados
Para atualizar o dbCluster
, siga estas etapas:
Se você estiver fazendo upgrade de um cluster de banco de dados do AlloyDB Omni de alta disponibilidade da versão 15.7.0 (ou anterior) para a versão 15.7.1 (ou posterior), siga estas etapas para desativar a alta disponibilidade.
- Defina
numberOfStandbys
como0
no manifesto do cluster.
spec: availability: numberOfStandbys: 0
- Para desativar a alta disponibilidade, aplique o manifesto novamente.
- Defina
Atualize as versões
databaseVersion
econtrolPlaneAgentsVersion
no manifesto do cluster e reaplique o manifesto.Execute o exemplo a seguir, que faz parte de um arquivo de manifesto que especifica a versão 16.8.0 do
databaseVersion
e a versão 1.5.0 docontrolPlaneAgentsVersion
:apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: databaseVersion: "16.8.0" controlPlaneAgentsVersion: "1.5.0" ...
Substitua a seguinte variável:
DB_CLUSTER_NAME
: o nome do cluster de banco de dados. É o mesmo nome de cluster de banco de dados que você declarou ao criá-lo. Para mais informações, consulte Instalar o AlloyDB Omni no Kubernetes.NAMESPACE
: o namespace do Kubernetes do cluster de banco de dados.
Aguarde a conclusão do upgrade.
Se você desativou a alta disponibilidade antes do upgrade, siga estas etapas.
Defina o
numberOfStandbys
de volta para o número anterior ao upgrade no manifesto do cluster.Reaplique o manifesto para reativar a alta disponibilidade.
Atualizar alloydb_omni_instance_postgresql_wait_time_second_total
Se você estiver usando a métrica alloydb_omni_instance_postgresql_wait_time_second_total
, atualize para alloydb_omni_instance_postgresql_wait_time_us_total
. Para consumir as duas métricas, use o operador OR
do Prometheus.
(promQL A) OR (promQL A, but replace all occurrences of alloydb_omni_instance_postgresql_wait_time_second_total to alloydb_omni_instance_postgresql_wait_time_us_total)
Se você usar seconds
como a unidade dessa métrica, converta-a para us
.
Para mais informações, consulte as notas de lançamento.