O objetivo de uma configuração de alta disponibilidade é reduzir o tempo de inatividade quando uma instância do cluster de base de dados fica indisponível. Isto pode acontecer quando uma instância fica sem memória. Com a elevada disponibilidade, os seus dados continuam a estar disponíveis para as aplicações cliente.
Num site, a configuração é composta por uma instância principal e uma réplica em espera. Todas as gravações feitas na instância principal são replicadas para a réplica em espera antes de uma transação ser comunicada como confirmada. Em caso de falha da instância, pode pedir que a réplica em espera se torne a nova instância principal. Em seguida, o tráfego da aplicação é reencaminhado para a nova instância principal. Este processo é denominado failover.
Pode acionar manualmente uma comutação por falha em qualquer altura. A comutação por falha envolve o seguinte processo, por ordem:
O GDC coloca a instância principal offline.
O GDC transforma a réplica em modo de espera no novo cluster de base de dados ativo.
O GDC elimina o cluster de base de dados ativo anterior.
O GDC cria uma nova réplica em espera.
Para clusters de bases de dados do AlloyDB Omni e PostgreSQL, pode ativar ou desativar a alta disponibilidade na mesma zona.
Atualize um cluster existente
Pode atualizar as definições de alta disponibilidade para um cluster de base de dados existente:
Consola
No menu de navegação, selecione Serviço de base de dados.
Na lista de clusters de base de dados, clique no cluster de base de dados que quer atualizar.
Selecione editar Editar na secção Alta disponibilidade.
Selecione Ativar modo de espera na mesma zona para ativar ou desativar a disponibilidade de uma instância de espera na mesma zona que o cluster de base de dados principal.
Clique em Guardar.
Verifique se o cluster da base de dados reflete a atualização de alta disponibilidade ao ver o respetivo estado na coluna Alta disponibilidade da lista de clusters da base de dados.
gdcloud
Atualize a configuração de alta disponibilidade do cluster de base de dados:
gdcloud database clusters update CLUSTER_NAME \ --availability-type HA_TYPE
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster da base de dados.HA_TYPE
: o nível de alta disponibilidade para o cluster de base de dados. Pode definirzonal
ouzonal_ha
. O valorzonal
está definido por predefinição.
Verifique se o cluster da base de dados reflete a atualização de alta disponibilidade:
gdcloud database clusters list
API
Atualize a configuração de alta disponibilidade do cluster de base de dados:
kubectl patch dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \ --type=merge
Substitua as seguintes variáveis:
DBENGINE_NAME
: o nome do motor da base de dados. É uma dealloydbomni
,postgresql
ouoracle
.DBCLUSTER_NAME
: o nome do cluster da base de dados.USER_PROJECT
: o nome do projeto do utilizador onde o cluster de base de dados foi criado.HA_ENABLED
: o nível de elevada disponibilidade para o cluster de base de dados. Pode definirtrue
oufalse
. O valorfalse
está definido por predefinição.
Verifique se o cluster da base de dados reflete a atualização de alta disponibilidade:
kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -o yaml
Acione uma comutação por falha
Se tiver configurado a elevada disponibilidade para o cluster da base de dados, pode acionar uma comutação por falha. Para acionar uma comutação por falha, conclua os seguintes passos:
Consola
No menu de navegação, selecione Serviço de base de dados.
Na lista de clusters de bases de dados, clique no cluster de base de dados para o qual quer acionar uma comutação por falha. O cluster da base de dados tem de ter a alta disponibilidade ativada para ser elegível para uma comutação por falha.
Clique em Failover.
Escreva o ID do cluster para a frase de confirmação e clique em Failover para acionar o processo de failover.
gdcloud
Acione a comutação por falha para o cluster da base de dados:
gdcloud database clusters failover CLUSTER_NAME
Substitua
CLUSTER_NAME
pelo nome do cluster da base de dados.
API
apiVersion: fleet.dbadmin.gdc.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
spec:
dbclusterRef: DBCLUSTER_NAME
Substitua as seguintes variáveis:
DBCLUSTER_NAME
, o nome do cluster da base de dados.FAILOVER_NAME
, o nome exclusivo da comutação por falha, por exemplo,failover-sample
.