Configure a alta disponibilidade

O objetivo de uma configuração de elevada disponibilidade é reduzir o tempo de inatividade quando uma instância do cluster de bases 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 aplicações de cliente.

Num site, a configuração é composta por uma instância principal e uma réplica em espera. Todas as escritas 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 de uma 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 é encaminhado para a nova instância principal. Este processo denomina-se failover.

Pode acionar manualmente um failover em qualquer altura. O failover envolve o seguinte processo, por ordem:

  1. O GDC coloca a instância principal offline.

  2. O GDC transforma a réplica em espera no novo cluster de bases de dados ativo.

  3. O GDC elimina o cluster de bases de dados ativo anterior.

  4. O GDC cria uma nova réplica em espera.

Atualize um cluster existente

Pode atualizar as definições de elevada disponibilidade de um cluster de bases de dados existente:

Consola

  1. No menu de navegação, selecione Serviço de bases de dados.

  2. Na lista de clusters de bases de dados, clique no cluster de bases de dados que quer atualizar.

  3. Selecione editar Editar em a secção Elevada disponibilidade.

    Edite as definições de alta disponibilidade de um cluster de base de dados.

  4. Selecione Ativar espera na mesma zona para ativar ou desativar a disponibilidade de uma instância em espera na mesma zona que o cluster de bases de dados principal.

  5. Clique em Guardar.

  6. Valide se o cluster de bases de dados reflete a atualização de elevada disponibilidade ao ver o respetivo estado na coluna Elevada disponibilidade da lista de clusters de bases de dados.

gdcloud

  1. Atualize a configuração de elevada disponibilidade do cluster de bases de dados:

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    Substitua o seguinte:

    • CLUSTER_NAME: o nome do cluster de bases de dados.
    • HA_TYPE: o nível de elevada disponibilidade do cluster de bases de dados. Pode definir zonal ou zonal_ha. O valor zonal está definido por predefinição.
  2. Valide se o cluster de bases de dados reflete a atualização de elevada disponibilidade:

    gdcloud database clusters list
    

API

  1. Atualize a configuração de elevada disponibilidade do cluster de bases de dados:

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    Substitua as seguintes variáveis:

    • DBCLUSTER_NAME: o nome do cluster de bases de dados.
    • USER_PROJECT: o nome do projeto do utilizador onde o cluster de bases de dados foi criado.
    • HA_ENABLED: o nível de elevada disponibilidade do cluster de bases de dados. Pode definir true ou false. O valor false está definido por predefinição.
  2. Valide se o cluster de bases de dados reflete a atualização de elevada disponibilidade:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

Migre para a implementação de elevada disponibilidade mais recente

Para validar se o cluster de bases de dados de elevada disponibilidade está a usar a implementação mais recente, verifique se a anotação dbcluster.dbadmin.goog/raasEnabled existe no CR do cluster de bases de dados de elevada disponibilidade. Esta anotação só é apresentada em clusters que usam a nova implementação. Se não tiver esta anotação, pode ativá-la e migrar o cluster com os seguintes passos:

  1. Confirme com o operador de infraestrutura que o seu ambiente do GDC foi atualizado para a versão 1.15.1 ou posterior.
  2. Desative a elevada disponibilidade no cluster de bases de dados. Aguarde que a condição HAReady desapareça e, em seguida, reative a elevada disponibilidade.
  3. Depois de ver HAReady in progress ou HAReady setup complete, verifique se o CR do cluster de bases de dados tem a anotação dbcluster.dbadmin.goog/raasEnabled. Se for apresentada, significa que o cluster de bases de dados foi migrado com êxito.

Acione um failover

Se configurou a elevada disponibilidade para o cluster de bases de dados, pode acionar um failover. Para acionar um failover, conclua os seguintes passos:

Consola

  1. No menu de navegação, selecione Serviço de bases de dados.

  2. Na lista de clusters de bases de dados, clique no cluster de bases de dados para o qual quer acionar um failover. O cluster de bases de dados tem de ter a elevada disponibilidade ativada para ser elegível para um failover.

  3. Clique em Failover.

  4. Escreva o ID do cluster para a frase de confirmação e clique em Failover para acionar o processo de failover.

gdcloud

  • Acione o failover do cluster de bases de dados:

    gdcloud database clusters failover CLUSTER_NAME
    

    Substitua CLUSTER_NAME pelo nome do cluster de bases 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 de bases de dados.
  • FAILOVER_NAME, o nome exclusivo do failover, por exemplo, failover-sample.