Esta página descreve como usar a replicação entre regiões do AlloyDB for PostgreSQL através da criação e do trabalho com clusters secundários.
Para uma vista geral conceptual da replicação entre regiões, consulte o artigo Acerca da replicação entre regiões.
Antes de começar
- O Google Cloud projeto que está a usar tem de ter sido ativado para aceder ao AlloyDB.
- Tem de ter uma destas funções de IAM no Google Cloud projeto que está a usar:
roles/alloydb.admin
(a função IAM predefinida de administrador do AlloyDB)roles/owner
(a função de IAM básica de proprietário)roles/editor
(a função de IAM básica de editor)
Se não tiver nenhuma destas funções, contacte o administrador organizacional para pedir acesso.
Crie um cluster secundário
Quando cria um cluster secundário, o AlloyDB copia e aplica algumas das configurações do cluster principal, incluindo a recuperação num ponto específico no tempo (PITR) e a configuração de cópia de segurança, ao cluster secundário. O AlloyDB não adiciona instâncias do conjunto de leitura ao cluster secundário após a sua criação, independentemente do número de instâncias do conjunto de leitura existentes no cluster principal.
Se atualizar a configuração do cluster principal depois de criar o cluster secundário, as alterações não ficam disponíveis no cluster secundário. No entanto, pode atualizar manualmente o cluster secundário para ter a configuração mais recente disponível no cluster principal.
Pode criar até cinco clusters secundários para um cluster principal. Todos os clusters secundários são replicados a partir de uma única instância principal. Se promover um cluster secundário, esse cluster secundário torna-se um cluster principal independente.
O diagrama seguinte ilustra como promover o cluster secundário denominado
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 estes passos:
Consola
Na Google Cloud consola, aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, clique em Criar cluster secundário.
Configure o cluster secundário:
- No campo ID do cluster, introduza um ID do 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 encriptação gerida pela Google predefinida ou uma chave gerida pelo cliente (CMEK) como método de encriptação para encriptar o cluster secundário.
Se quiser encriptar este cluster com uma chave CMEK, siga estes passos:
- Clique em Opções de encriptação avançadas.
- Selecione Chave de encriptação gerida pelo cliente (CMEK).
Selecione uma chave gerida pelo cliente no menu apresentado.
A Google Cloud consola limita esta lista a chaves no mesmo Google Cloud projeto e região que o novo cluster.
Para usar uma chave que não esteja nesta lista, siga estes passos:
- Clique em Não vê a sua chave? Introduza o nome do recurso da chave.
- Introduza o nome do recurso no campo Nome do recurso principal.
- Clique em Guardar.
- Clique em Continuar.
A utilização de uma chave CMEK com o AlloyDB requer alguma configuração adicional. Para mais informações, consulte o artigo Use CMEK.
Se a instância principal associada estiver encriptada com uma chave CMEK, também tem de encriptar o respetivo cluster secundário com uma chave CMEK.
Configure a instância secundária:
- No campo ID da instância, introduza um ID do recurso para a sua instância secundária. O ID do recurso tem de ser exclusivo num cluster.
Clique em Criar cluster.
gcloud
Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a 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 o seguinte:
SECONDARY_CLUSTER_ID
: o ID do cluster secundário que quer criar.SECONDARY_INSTANCE_ID
: o ID da instância secundária que 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
: a localização onde o seu cluster principal está localizado, por exemplo,us-central1
.PRIMARY_CLUSTER_ID
: o ID do cluster principal ao qual o cluster secundário está associado.SECONDARY_CLUSTER_ID
: O ID do cluster secundário ao qual a instância secundária está associada.ALLOWED_PSC_PROJECTS
(Opcional): a lista separada por vírgulas dos IDs dos projetos ou dos números dos projetos aos quais quer permitir o acesso à instância, por exemplo,my-project-1
,12345
,my-project-n
. Se o seu cluster estiver a usar o Private Service Connect como método de ligação à instância, tem de definir uma lista de projetos ou números permitidos.--no-enable-automated-backup
(Opcional): desative a criação de cópias de segurança automáticas 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 de projetos
ou números de projetos
aos quais 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 o seguinte:
ALLOWED_PSC_PROJECTS
(Opcional): a lista separada por vírgulas de IDs de projetos ou números de projetos aos quais quer permitir o acesso à instância,por exemplo,my-project-1
,12345
emy-project-n
. Se o seu cluster estiver a usar o Private Service Connect como método de ligação à instância, tem de definir 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_IPV4
Opcionalmente, 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 sua instância.
Veja um cluster secundário
Para ver informações detalhadas sobre um cluster secundário do AlloyDB, siga estes passos:
Na Google Cloud consola, aceda à página Clusters.
Clique num cluster secundário na coluna Nome do recurso.
Na página Vista geral, veja todos os detalhes sobre o cluster secundário.
Atualize uma instância secundária
Pode atualizar uma instância secundária para adicionar, modificar ou eliminar flags da base de dados. Também pode dimensionar o tipo de máquina da instância secundária.
Configure flags da base de dados numa instância secundária
Para adicionar, modificar ou eliminar flags da base de dados, conclua os seguintes passos:
Consola
Na Google Cloud consola, aceda à página Clusters.
Na coluna Nome do recurso, clique num cluster secundário que quer modificar.
Na página Vista geral, aceda a Instâncias no cluster, selecione a instância secundária e, de seguida, clique em Editar secundária.
Adicione, modifique ou elimine uma flag de base de dados da sua instância:
Adicione uma flag
- Para adicionar uma flag de base de dados à sua instância, clique em Adicionar flag.
- Selecione uma flag na lista Nova flag da base de dados.
- Indique um valor para a flag.
- Clique em Concluído.
Modifique uma flag
- Para modificar uma flag da base de dados presente na sua instância, expanda a flag da base de dados e modifique o valor da flag existente na secção Editar flag da base de dados.
- Clique em Concluído.
Elimine uma flag
- Para eliminar uma flag de base de dados da sua instância, selecione uma flag e clique no ícone de eliminação.
- Clique em Concluído.
Clique em Atualizar secundário.
gcloud
Use o comando gcloud alloydb instances update
para alterar as flags da base 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 o seguinte:
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 da base de dados. Cada especificação consiste no nome da flag, num sinal de igual (=
) e no valor a atribuir às flags. Para os sinalizadores de base de dados que não aceitam valores, indique o nome do sinalizador seguido de um sinal de igual (=
).REGION_ID
: a região onde a instância secundária está localizada, por exemplo,us-central1
.CLUSTER_ID
: o ID do cluster onde a instância secundária está colocada.PROJECT_ID
: o ID do projeto onde o cluster secundário está localizado.
Dimensione o tipo de máquina da instância secundária
Para dimensionar o tipo de máquina da instância secundária, conclua os seguintes passos:
Consola
Na Google Cloud consola, aceda à página Clusters.
Na coluna Nome do recurso, clique num cluster secundário que quer modificar.
Na página Vista geral, aceda à secção Instâncias no cluster e clique em Editar secundário.
Tenha em atenção que esta ação não está disponível se a página comunicar um estado de manutenção. A ação volta a ficar disponível depois de o Estado 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_ID
Substitua o seguinte:
SECONDARY_INSTANCE_ID
: o ID da instância secundária que está a atualizar.CPU_COUNT
: o número de vCPUs que quer para a instância. Os valores válidos incluem: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 onde a instância está localizada.
CLUSTER_ID: o ID do cluster onde a instância está colocada.
PROJECT_ID: o ID do projeto onde o cluster está colocado.
Se o comando devolver uma mensagem de erro que inclua a expressão invalid cluster state MAINTENANCE
, significa que o cluster está a passar por manutenção
de rotina. Isto impede temporariamente a reconfiguração da instância. Execute o comando novamente depois de o cluster voltar ao estado READY
.
Para verificar o estado do cluster, consulte o artigo Ver detalhes do cluster.
Adicione instâncias do conjunto de leitura a um cluster secundário
Para adicionar uma instância de pool de leitura a um cluster secundário, siga estes passos:
Na Google Cloud consola, aceda à página Clusters.
Na coluna Nome do recurso, clique num cluster secundário ao qual quer adicionar uma instância do conjunto de leitura.
Na página Vista geral, aceda à secção Instâncias no cluster e clique em Adicionar conjunto de leitura.
Configure a instância do conjunto de leitura:
- No campo ID da instância do conjunto de leitura, introduza um ID para a instância do conjunto de leitura.
- No campo Node count (Número de nós), introduza um número de nós. O número de nós numa instância do conjunto de leitura determina a capacidade de computação geral da instância. Pode ter um máximo de 20 nós em todas as instâncias do conjunto de leitura num cluster.
- Selecione um tipo de máquina.
Opcional: defina flags personalizadas para a sua instância. Para cada marcador, faça o seguinte:
- Clique em Adicionar flag.
- Selecione uma flag na lista Nova flag da base de dados.
- Indique um valor para a flag.
- Clique em Concluído.
Clique em Adicionar conjunto de leitura.
Promova um cluster secundário
Antes de promover um cluster secundário, execute os seguintes passos para verificar se o cluster secundário aplicou todas as transações recebidas do cluster principal:
- Pare todas as escritas no cluster principal.
Verifique o estado da replicação do cluster secundário concluindo os seguintes passos:
Na Google Cloud consola, aceda à página Clusters.
Na lista de clusters, clique no nome do cluster secundário que quer promover.
Na página de detalhes do cluster, clique em Monitorização.
Na lista Monitorização, selecione a instância secundária. 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 apresenta um atraso mínimo.
Um valor de atraso de
0
é o ideal. Se o atraso for superior a0
, ainda pode promover o cluster secundário, com o risco de perder algumas transações recentes já confirmadas no cluster principal.Na lista de métricas, localize o gráfico Estado 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 cluster principal, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Clusters.
Na coluna Nome do recurso, clique num cluster secundário que quer promover como cluster principal.
Na página Vista geral, clique em Promover cluster.
Na caixa de diálogo apresentada, introduza o ID do cluster secundário para confirmar que quer promover o cluster.
Clique em Promover.
Após a promoção do cluster, o campo Tipo: cluster secundário (altamente disponível) na página Vista geral é atualizado para Tipo: altamente disponível com conjuntos de leitura.
gcloud
Use o comando gcloud alloydb clusters promote
:
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
Substitua o seguinte:
SECONDARY_CLUSTER_ID
: o ID do cluster secundário que 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.
Faça uma comutação
Antes de fazer uma comutação, verifique se todas as regiões a que as instâncias principal e secundária pertencem estão online e se as instâncias estão num estado de funcionamento. Para mais informações, consulte o artigo Monitorize uma instância com o painel de controlo do AlloyDB System Insights.
Se fizer uma comutação quando tiver vários clusters secundários, ocorrem as seguintes alterações:
- O cluster secundário que recebe o comando de comutação torna-se um cluster principal.
- O cluster principal anterior torna-se um cluster secundário, replicando a partir do novo cluster principal.
- Todos os outros clusters secundários mudam para a replicação a partir do novo cluster principal.
O diagrama seguinte ilustra uma mudança de cluster-1
em us-central1
para cluster-2
em us-east4
:
Figura 2. Exemplo de como fazer uma comutação para um de dois clusters secundários.
Para fazer uma comutação, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Clusters.
Na coluna Nome do recurso, clique num cluster secundário que quer mudar para cluster principal.
Na página Vista geral, clique em Transição.
Na caixa de diálogo apresentada, introduza o ID do cluster secundário para confirmar que quer mudar para o cluster.
Clique em Comutação.
Após a comutação do cluster, o campo Tipo: cluster secundário na página Vista 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 o seguinte:
SECONDARY_CLUSTER_ID
: o ID do cluster secundário que 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.