Nesta página, descrevemos como usar a replicação entre regiões do AlloyDB para PostgreSQL criando e trabalhando com clusters secundários.
Para uma visão geral conceitual da replicação entre regiões, consulte Sobre a replicação entre regiões.
Antes de começar
- O projeto Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
- Você precisa ter um destes papéis do IAM no projeto Google Cloud que está usando:
roles/alloydb.admin
(o papel predefinido do IAM de administrador do AlloyDB)roles/owner
(o papel básico Proprietário do IAM)roles/editor
(o papel básico de editor do IAM)
Se você não tiver nenhum desses papéis, entre em contato com o administrador da organização para solicitar acesso.
Criar um cluster secundário
Ao criar um cluster secundário, o AlloyDB copia e aplica algumas das configurações do cluster principal, incluindo recuperação pontual (PITR) e configuração de backup, no cluster secundário. O AlloyDB não adiciona instâncias de pool de leitura ao cluster secundário depois da 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 vão estar 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 principal. Todos os clusters secundários são replicados de uma única instância principal. 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 secundário e uma instância secundária do AlloyDB, siga estas etapas:
Console
No console Google Cloud , 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 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 uma 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 que aparece.
O console Google Cloud limita essa lista a chaves no mesmo projetoGoogle Cloud e região do novo cluster.
Para usar uma chave que não está nessa lista, siga estas etapas:
- Clique em Não encontra sua chave? Insira o nome do 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 uma configuração adicional. Para mais informações, consulte Usar CMEK.
Se a instância principal associada for criptografada com uma chave CMEK, o cluster secundário também precisará ser criptografado com uma chave CMEK.
Configure a instância secundária:
- No campo ID da instância, insira um ID de recurso para sua instância secundária. O ID do recurso precisa ser exclusivo em um cluster.
Clique em Criar cluster.
gcloud
Para usar a CLI gcloud, instale e inicialize a Google Cloud CLI ou use 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_ID
gcloud 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.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 secundário.LOCATION_ID
: o local do cluster principal. Por exemplo,us-central1
.PRIMARY_CLUSTER_ID
: o ID do cluster principal associado ao cluster secundário.SECONDARY_CLUSTER_ID
: o ID do cluster secundário a que a instância secundária está associada.ALLOWED_PSC_PROJECTS
(opcional): a lista separada por vírgulas de IDs de projetos ou números de projetos a que você quer permitir o acesso à instância. Por exemplo,my-project-1
,12345
,my-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.--no-enable-automated-backup
(Opcional): desative a criação de backups automatizados no cluster secundário.
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
a que você quer permitir o 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_ID \
gcloud 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
,12345
emy-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 ativado, 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_IPV4
Se quiser, transmita a lista separada por vírgulas de blocos CIDR, como 64.233.160.0/16
, para o parâmetro --authorized-external-networks
e defina redes externas autorizadas na sua instância.
Ver um cluster secundário
Para conferir informações detalhadas sobre um cluster secundário do AlloyDB, siga estas etapas:
No console Google Cloud , 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 bancos de dados em uma instância secundária
Para adicionar, modificar ou excluir flags de banco de dados, siga estas etapas:
Console
No console Google Cloud , 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 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 flag
- 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.
- Informe um valor para a flag.
- Clique em Concluído.
Modificar uma flag
- Para modificar uma flag do banco de dados na sua instância, expanda a flag e mude o valor na seção Editar flag do banco de dados.
- Clique em Concluído.
Excluir uma flag
- Para excluir uma flag de banco de dados da sua 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 mudar 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_ID
Substitua:
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 flags 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 de 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 console Google Cloud , 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ário.
Essa ação não está disponível se a página informar um Status de Manutenção do cluster. A ação fica disponível novamente depois que o Status muda para Pronto.
Selecione um tipo de máquina.
Clique em Atualizar secundário.
gcloud
Use o comando gcloud alloydb instances
update
para mudar 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_ID
Substitua:
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)
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 manutenção
de rotina. Isso impede temporariamente a reconfiguração da instância. Execute o comando
de novo depois que o cluster voltar 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 console Google Cloud , acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário a que você quer adicionar uma instância de 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 um número. 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.
- Informe um valor para a flag.
- Clique em Concluído.
Clique em Adicionar pool de leitura.
Promover um cluster secundário
Antes de promover um cluster secundário, siga estas etapas para verificar se ele aplicou todas as transações recebidas do cluster principal:
- Interrompa todas as gravações no cluster principal.
Para verificar o status da replicação do cluster secundário, siga estas etapas:
No console Google Cloud , acesse a página Clusters.
Na lista de clusters, clique no nome do cluster secundário que você quer promover.
Na página de detalhes do cluster, clique em Monitoramento.
Na lista Monitoramento, selecione a instância secundária. Ela aparece na lista como Secundário: INSTANCE_NAME.
Na lista de métricas, localize o gráfico Atraso de replicação da instância principal.
Confirme se o gráfico mostra um atraso mínimo.
Um valor de defasagem de
0
é ideal. Se o atraso for maior que0
, ainda será possível promover o cluster secundário, mas há o risco de perder algumas transações recentes já confirmadas no cluster principal.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
.
Para promover um cluster secundário a principal, siga estas etapas:
Console
No console Google Cloud , acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer promover como o cluster principal.
Na página Visão geral, clique em Promover cluster.
Na caixa de diálogo exibida, insira o ID do cluster secundário para confirmar que você quer promover o cluster.
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
Use o comando gcloud alloydb clusters promote
:
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
Substitua:
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.
Realizar uma alternância
Antes de fazer um failover, verifique se todas as regiões a que as instâncias principal 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 "Insights do sistema" do AlloyDB.
Se você fizer uma alternância quando tiver vários clusters secundários, as seguintes mudanças vão ocorrer:
- O cluster secundário que recebe o comando de failover 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 troca de cluster-1
em us-central1
para cluster-2
em us-east4
:
Figura 2. Exemplo de como fazer um failover para um de dois clusters secundários.
Para fazer um failover, siga estas etapas:
Console
No console Google Cloud , acesse a página Clusters.
Na coluna Nome do recurso, clique em um cluster secundário que você quer alternar como o cluster principal.
Na página Visão geral, clique em Alternar.
Na caixa de diálogo exibida, insira o ID do cluster secundário para confirmar que você quer fazer a transição do cluster.
Clique em Alternar.
Depois que o cluster é transferido, o campo Tipo: cluster secundário
na página Visão geral é 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_ID \
Substitua:
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.