Para manter a disponibilidade entre regiões e escalonar as cargas de trabalho de leitura globalmente, é possível criar e gerenciar clusters secundários do AlloyDB para PostgreSQL, adicionar instâncias de pool de leitura e realizar operações de alternância ou promoção.
Para uma visão geral conceitual da replicação entre regiões, consulte Visão geral da replicação entre regiões.
Antes de começar
- O projeto do Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
- Você precisa ter um destes papéis do IAM no Google Cloud projeto que está sendo usado:
roles/alloydb.admin(o papel predefinido do IAM de Admin do AlloyDB)roles/owner(o papel básico do IAM de Proprietário)roles/editor(o papel básico do IAM de Editor)
Se você não tiver nenhum desses papéis, entre em contato com o Administrador da organização para solicitar o acesso.
Criar um cluster secundário
Quando você cria um cluster secundário, o AlloyDB copia e aplica algumas das configurações do cluster primário, incluindo a recuperação pontual (PITR) e a configuração de backup, no cluster secundário. O AlloyDB não adiciona instâncias de pool de leitura ao cluster secundário após a criação, não importa quantas instâncias de pool de leitura existam no cluster primário.
Se você atualizar a configuração do cluster principal depois de criar o cluster secundário, as mudanças não estarão disponíveis no cluster secundário. No entanto, é possível atualizar manualmente o cluster secundário para ter a configuração mais recente disponível no cluster principal.
É possível criar até cinco clusters secundários para um cluster primário. Todos os clusters secundários são replicados de uma única instância primária. Se você promover um cluster secundário, ele se tornará um cluster principal independente.
O diagrama a seguir ilustra como promover o cluster secundário chamado
cluster-2 em us-east4:

Figura 1. Exemplo de promoção de um cluster secundário.
Para criar um cluster e uma instância secundários do AlloyDB, siga estas etapas:
Por padrão, o AlloyDB cria instâncias secundárias com a mesma configuração de máquina da instância primária no momento da criação. No entanto, se você escalonar verticalmente a instância primária depois de criar a secundária, o AlloyDB não vai escalonar verticalmente a instância secundária de forma automática. Você precisará fazer isso manualmente.
Console
No Google Cloud console, acesse a página Clusters.
Clique em um cluster na coluna Nome do Recurso.
Na página Visão geral, clique em Criar cluster secundário.
Configure o cluster secundário:
- No campo ID do cluster, insira um ID de recurso para o cluster secundário.
- Selecione uma região para o cluster secundário que seja diferente da região do cluster principal.
- Selecione a criptografia padrão gerenciada pelo Google ou uma chave gerenciada pelo cliente (CMEK) como um método de criptografia para criptografar o cluster secundário.
Se você quiser criptografar esse cluster usando a chave CMEK, siga estas etapas:
- Clique em Opções avançadas de criptografia.
- Selecione Chave de criptografia gerenciada pelo cliente (CMEK).
Selecione uma chave gerenciada pelo cliente no menu exibido.
O console do Google Cloud limita essa lista às chaves no mesmo projeto e região doGoogle Cloud do novo cluster.
Para usar uma chave que não está nessa lista, siga estas etapas:
- Clique em Não está vendo sua chave? Insira o nome de recurso da chave.
- Insira o nome do recurso no campo Nome do recurso da chave.
- Clique em Salvar.
- Clique em Continuar.
O uso da chave CMEK com o AlloyDB exige algumas configurações adicionais. Para mais informações, consulte Usar CMEK.
Se a instância principal associada for criptografada com uma chave CMEK, você também precisará criptografar o cluster secundário com uma chave CMEK.
Configure a instância secundária. No campo ID da instância, insira um ID de recurso para a instância secundária. O ID do recurso precisa ser exclusivo em um cluster.
Clique em Criar cluster.
gcloud
Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.
Use o comando gcloud alloydb clusters create-secondary.
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID
Substitua:
SECONDARY_CLUSTER_ID: o ID do cluster secundário que você quer criar e associar à instância secundária.SECONDARY_INSTANCE_ID: o ID da instância secundária que você quer criar.REGION_ID: o ID da região do cluster secundário, por exemplo,us-central1.PROJECT_ID: o ID do projeto do cluster principal.LOCATION_ID: o local em que o cluster principal está localizado, por exemplo,us-central1.PRIMARY_CLUSTER_ID: o ID do cluster principal ao qual o cluster secundário está associado.
Para desativar a criação de backups automáticos no cluster secundário, transmita a flag
--no-enable-automated-backup para o comando
gcloud alloydb clusters create-secondary.
Para criar uma instância secundária com o Private Service Connect ativado,
adicione a flag --allowed-psc-projects para definir uma lista separada por vírgulas de IDs ou números de projetos
que você quer que tenham acesso à instância, por exemplo, my-project-1, 12345 e my-project-n.
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --allowed-psc-projects=ALLOWED_PSC_PROJECTS
Substitua:
ALLOWED_PSC_PROJECTS(opcional): a lista separada por vírgulas de IDs ou números de projetos que você quer permitir o acesso à instância,por exemplo,my-project-1,12345emy-project-n. Se o cluster estiver usando o Private Service Connect como método de conexão com a instância, defina uma lista de projetos ou números permitidos.
Para criar uma instância secundária para um cluster com IP público, adicione o parâmetro --assign-inbound-public-ip=ASSIGN_IPV4.
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4Se quiser, transmita a lista separada por vírgulas de blocos CIDR, como 64.233.160.0/16, para o parâmetro --authorized-external-networks para definir redes externas autorizadas na instância.
Ver um cluster secundário
Para ver informações detalhadas sobre um cluster secundário do AlloyDB, siga estas etapas:
No Google Cloud console, acesse a página Clusters.
Clique em um cluster secundário na coluna Nome do recurso.
Na página Visão geral, confira todos os detalhes sobre o cluster secundário.
Atualizar uma instância secundária
É possível atualizar uma instância secundária para adicionar, modificar ou excluir flags de banco de dados. Também é possível escalonar o tipo de máquina da instância secundária.
Configurar flags de banco de dados em uma instância secundária
Para adicionar, modificar ou excluir flags de banco de dados, siga estas etapas:
Console
No Google Cloud console, acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer modificar.
Na página Visão geral, acesse Instâncias no seu cluster, selecione a instância secundária e clique em Editar secundária.
Adicione, modifique ou exclua uma flag de banco de dados da sua instância:
Adicionar uma sinalização
- Para adicionar uma flag de banco de dados à instância, clique em Adicionar flag.
- Selecione uma flag na lista Nova flag de banco de dados.
- Forneça um valor para a flag.
- Clique em Concluído.
Modificar uma sinalização
- Para modificar uma flag de banco de dados presente na instância, expanda a flag de banco de dados e modifique o valor da flag atual na seção Editar flag de banco de dados.
- Clique em Concluído.
Excluir uma sinalização
- Para excluir uma flag de banco de dados da instância, selecione uma flag e clique no ícone de exclusão.
- Clique em Concluído.
Clique em Atualizar secundário.
gcloud
Use o comando gcloud alloydb instances update
para alterar as flags de banco de dados de uma instância secundária.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--database-flags FLAGS_LIST \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSubstitua:
SECONDARY_INSTANCE_ID: o ID da instância secundária.FLAGS_LIST: uma lista separada por vírgulas de uma ou mais especificações de flag de banco de dados. Cada especificação consiste no nome da flag, um sinal de igual (=) e o valor a ser atribuído às flags. Para flags de banco de dados que não aceitam valores, forneça o nome da flag seguido por um sinal de igual (=).REGION_ID: a região em que a instância secundária está localizada, por exemplo,us-central1.CLUSTER_ID: o ID do cluster em que a instância secundária está localizada.PROJECT_ID: o ID do projeto em que o cluster secundário está localizado.
Escalonar o tipo de máquina da instância secundária
Para escalonar o tipo de máquina da instância secundária, siga estas etapas:
Console
No Google Cloud console, acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer modificar.
Na página Visão geral, acesse a seção Instâncias no seu cluster e clique em Editar secundária.
Essa ação não estará disponível se a página informar um Status de Manutenção do cluster. A ação vai ficar disponível novamente depois que o Status mudar para Pronto.
Selecione um tipo de máquina.
Clique em Atualizar secundário.
gcloud
Use o comando gcloud alloydb instances
update para alterar o tipo de máquina da instância secundária.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSubstitua:
SECONDARY_INSTANCE_ID: o ID da instância secundária que você está atualizando.CPU_COUNT: o número de vCPUs que você quer para a instância. Valores válidos:2(2 vCPUs, 16 GB de RAM)4(4 vCPUs, 32 GB de RAM)8(8 vCPUs, 64 GB de RAM)16(16 vCPUs, 128 GB de RAM)32(32 vCPUs, 256 GB de RAM)64(64 vCPUs, 512 GB de RAM)96(96 vCPUs, 768 GB de RAM)128(128 vCPUs, 864 GB de RAM)
REGION_ID: a região em que a instância está localizada.
CLUSTER_ID: o ID do cluster em que a instância está localizada.
PROJECT_ID: o ID do projeto em que o cluster está localizado.
Se o comando retornar uma mensagem de erro que inclua a frase
invalid cluster state MAINTENANCE, o cluster está passando por uma manutenção
de rotina. Isso impede temporariamente a reconfiguração da instância. Execute o comando
novamente depois que o cluster retornar ao estado READY.
Para verificar o status do cluster, consulte Ver detalhes do cluster.
Adicionar instâncias do pool de leitura a um cluster secundário
Para adicionar uma instância de pool de leitura a um cluster secundário, siga estas etapas:
No Google Cloud console, acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário ao qual você quer adicionar uma instância do pool de leitura.
Na página Visão geral, acesse a seção Instâncias no cluster e clique em Adicionar pool de leitura.
Configure a instância do pool de leitura:
- No campo ID da instância do pool de leitura, insira um ID para a instância do pool de leitura.
- No campo Contagem de nós, insira uma contagem de nós. O número de nós em uma instância de pool de leitura determina a capacidade geral de computação da instância. É possível ter no máximo 20 nós em todas as instâncias do pool de leitura em um cluster.
- Selecione um tipo de máquina.
Opcional: defina flags personalizadas para sua instância. Para cada flag, faça o seguinte:
- Clique em Adicionar flag.
- Selecione uma flag na lista Nova flag de banco de dados.
- Forneça um valor para a flag.
- Clique em Concluído.
Clique em Adicionar pool de leitura.
Recuperação de desastres avançada
Para cenários avançados de recuperação de desastres, o AlloyDB é compatível com alternância e failover entre regiões:
Realizar uma troca
A alternância permite reverter os papéis dos clusters primário e secundário sem perda de dados. Use essa operação para migrações planejadas, manutenção de rotina ou simulações de recuperação de desastres. Quando você conclui a alternância, a direção da replicação é invertida.
Se você realizar uma alternância quando tiver vários clusters secundários, as seguintes alterações vão ocorrer:
- O cluster secundário que recebe o comando de alternância se torna um cluster principal.
- O cluster principal anterior se torna um cluster secundário, replicando do novo cluster principal.
- Todos os outros clusters secundários passam a replicar do novo cluster principal.
O diagrama a seguir ilustra uma alternância de cluster-1 em us-central1
para cluster-2 em us-east4:

Figura 2. Exemplo de como realizar uma troca para um dos dois clusters secundários.
Antes de realizar uma troca, verifique se todas as regiões a que as instâncias primária e secundária pertencem estão on-line e se as instâncias estão em um estado íntegro. Para mais informações, consulte Monitorar uma instância usando o painel de insights do sistema do AlloyDB.
Para realizar uma troca, siga estas etapas:
Console
No Google Cloud console, acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer definir como o cluster principal.
Na página Visão geral, clique em Alternar.
Na caixa de diálogo que aparece, insira o ID do cluster secundário para confirmar que você quer alternar o cluster.
Clique em Alternar.
Depois que o cluster for alternado, o Tipo: cluster secundário
na página Visão geral será atualizado para
Tipo de cluster: cluster principal e Tipo de cluster: cluster secundário.
gcloud
Use o comando gcloud alloydb clusters switchover:
gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDSubstitua:
SECONDARY_CLUSTER_ID: o ID do cluster secundário que você quer trocar.REGION_ID: o ID da região do cluster secundário, por exemplo,us-central1.PROJECT_ID: o ID do projeto do cluster secundário.
Opcional: verificar o status da replicação
Para garantir que a transição seja concluída rapidamente e sem perda de dados, verifique se o cluster secundário aplicou todas as transações recebidas do cluster principal:
- Interrompa todas as gravações no cluster principal.
Para verificar o status de replicação do cluster secundário, siga estas etapas:
No Google Cloud console, acesse a página Clusters.
Na lista de clusters, clique no nome do cluster secundário que você quer trocar.
Na página de detalhes do cluster, clique em Monitoramento.
Na lista Monitoramento, selecione a instância secundária. Ele aparece na lista como Secundário: INSTANCE_NAME.
Na lista de métricas, localize o gráfico Atraso da replicação da instância principal.
Confirme se o gráfico mostra um atraso mínimo.
O ideal é um valor de atraso igual a
0. Se o atraso for maior que0, a operação de troca poderá levar mais tempo para ser concluída enquanto aplica as transações restantes.Na lista de métricas, localize o gráfico Status da replicação.
Confirme se todos os nós representados no gráfico têm um valor de
streaming.
Promover um cluster secundário
Promover um cluster secundário o torna um cluster principal independente com recursos completos de leitura e gravação. Use essa operação principalmente para recuperação de desastres quando a região que hospeda o cluster principal ficar indisponível.
Por padrão, a promoção torna o cluster secundário um cluster principal independente. No entanto, é possível ativar o failover entre regiões (pré-lançamento) para automatizar a recriação da instância principal original. O failover entre regiões só é compatível com topologias que têm um único cluster principal e um único cluster secundário.
Para promover um cluster secundário a cluster primário ou adicionar opcionalmente a orquestração de failover, siga estas etapas:
Console
No Google Cloud console, acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer promover como cluster primário.
Na página Visão geral, clique em Promover cluster.
Na caixa de diálogo que aparece, insira o ID do cluster secundário para confirmar que você quer promovê-lo.
Clique em Promover.
Depois que o cluster é promovido, o campo Tipo: cluster secundário (altamente disponível) na página Visão geral é atualizado para Tipo: altamente disponível com pools de leitura.
gcloud
Para promover um cluster secundário a um cluster principal independente, use o comando
gcloud alloydb clusters promote:
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDPara realizar uma promoção com orquestração de failover (pré-lançamento), adicione a flag opcional --failover. Isso recria automaticamente o cluster principal original como secundário e atualiza os endpoints associados para rotear o tráfego para o novo cluster principal.
gcloud beta alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--failoverSubstitua:
SECONDARY_CLUSTER_ID: o ID do cluster secundário que você quer promover.REGION_ID: o ID da região do cluster secundário, por exemplo,us-central1.PROJECT_ID: o ID do projeto do cluster secundário.
Usar endpoints de gravação para evitar casos de "dupla personalidade"
Para simplificar ainda mais o fluxo de trabalho de recuperação de desastres durante um failover entre regiões, o Google recomenda que você gerencie as conexões de banco de dados com endpoints de gravação para se conectar ao cluster.
Quando você executa um failover entre regiões, o AlloyDB atualiza automaticamente o registro DNS do endpoint de gravação para apontar para o novo cluster principal. Isso garante que o novo tráfego de gravação seja direcionado para fora da instância principal original e para a nova.
Antes de usar endpoints de gravação durante um failover entre regiões, considere o seguinte:
- Atualização imediata do DNS: o registro DNS do endpoint de gravação é atualizado imediatamente após a promoção.
- Atualização de metadados atrasada: os metadados do endpoint de gravação ainda podem mostrar o endereço do cluster principal original até que a região do cluster principal original se recupere.
Recuperação de dados durante o failover entre regiões
Quando você executa um failover entre regiões, o AlloyDB faz automaticamente um backup do cluster primário original antes de recriá-lo como um cluster secundário. Um cenário de split-brain ocorre quando os clusters primários original e novo aceitam gravações simultaneamente. Para evitar esses cenários, as gravações no primário original são interrompidas antes que esse backup seja feito. Use esse backup para recuperar transações que não foram replicadas para o cluster secundário devido ao atraso durante o failover.
Esse backup é criado automaticamente como parte da orquestração de failover e é diferente dos backups automatizados programados regularmente e dos backups on demand. É possível usá-lo para criar um cluster temporário e reconciliar manualmente os dados ausentes.
Esse backup captura as gravações que o cluster principal original aceitou antes de parar, mas não as mescla automaticamente no novo cluster principal.