Como ativar e desativar a alta disponibilidade em uma instância

Nesta página, descrevemos como configurar uma instância para alta disponibilidade.

Você pode configurar uma instância para alta disponibilidade ao criá-la ou pode ativar a alta disponibilidade em uma instância existente.

Para mais informações sobre alta disponibilidade, consulte Visão geral da configuração de alta disponibilidade.

A configuração legada para alta disponibilidade usou uma instância de failover replica. A nova configuração não usa um failover replica. Em vez disso, ele usa discos permanentes regionais do Google, que replicam dados de maneira síncrona no nível do bloco entre duas zonas em uma região. Se você tiver uma instância do MySQL que use a alta disponibilidade legada, poderá atualizar sua configuração para usar a versão atual. Para outros procedimentos relacionados à configuração de alta disponibilidade legada, consulte Configuração legada para alta disponibilidade.

Como criar uma nova instância configurada para alta disponibilidade

Quando você cria uma instância e a configura para alta disponibilidade, o Cloud SQL a cria como uma instância regional.

Para criar uma instância configurada para alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Crie uma instância.
  3. Na página Informações da instância, selecione Mostrar opções de configuração.
  4. Abra Backups, recuperação e alta disponibilidade.
  5. Selecione o botão de opção Alta disponibilidade (regional).

gcloud

  1. Crie a instância regional:
    gcloud sql instances create [REGIONAL_INSTANCE_NAME] \
                         --availability-type=REGIONAL \
                         --database-version=[DATABASE_VERSION] \
                         --tier=[MACHINE_TYPE] \
                         --enable-bin-log
    
    Para uma lista completa de parâmetros disponíveis, consulte a página de referência gcloud sql instances create.
  2. Configure o usuário raiz:
    gcloud sql users set-password root --host=% \
               --instance=[MASTER_INSTANCE_NAME]
               --password=[PASSWORD]
    

cURL

  1. Crie a instância regional:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"[INSTANCE_NAME]", "region":"[REGION]",
                  "databaseVersion":"[DATABASE_VERSION]",
                  "settings": {
                      "tier":"[MACHINE_TYPE]",
                      "backupConfiguration": {"binaryLogEnabled": true, "enabled": true},
                      "availabilityType":"REGIONAL"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    
    Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:insert.
  2. Quando a instância concluir a inicialização, atualize a senha raiz na instância:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "root", "host": "%", "password": "[ROOT_PASSWORD]"}' \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=%25&name=root'
    

Para mais detalhes sobre como criar uma instância, consulte Como criar instâncias.

Como configurar uma instância existente para alta disponibilidade

Quando uma instância existente é configurada para alta disponibilidade, ela fica inativa por alguns minutos durante a reconfiguração.

Para configurar uma instância existente para alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Clique em Editar.
  4. Abra Backups, recuperação e alta disponibilidade.
  5. Ative as caixas de seleção Automatizar backups e Ativar recuperação pontual.
  6. Selecione Alta disponibilidade (regional).
  7. Clique em Salvar.

    Você retorna à página da instância para o mestre enquanto a instância é atualizada.

gcloud

Atualize a instância para ser regional:

gcloud sql instances patch [INSTANCE_NAME] --availability-type REGIONAL --enable-bin-log --backup-start-time=[HH:MM]

Para informações de referência, consulte gcloud sql instances patch.

cURL

  1. Verifique a instância mestre para ver se os backups automáticos e a geração de registros binários estão ativados. Eles são necessários para instâncias de alta disponibilidade.

        gcloud auth login
        ACCESS_TOKEN="$(gcloud auth print-access-token)"
        curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
             -X GET \
             https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]?fields=settings
    

    A saída será semelhante a:

      "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "binaryLogEnabled": true
        }
    
  2. Se enabled ou binaryLogEnabled forem false, use o método instances:patch para ativar os dois. Para ativar backups, defina enabled como true e startTime como um valor que seja o início da janela de backup. Para ativar a geração de registros binários, defina binaryLogEnabled como true.

      gcloud auth login
      ACCESS_TOKEN="$(gcloud auth print-access-token)"
      curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
           --header 'Content-Type: application/json' \
           --data '{"settings" :
                          {"backupConfiguration" :
                               {"startTime": "[HH:MM]", "enabled": true, "binaryLogEnabled": true}}}' \
           -X PATCH \
    
  3. Atualize a instância para que ela seja regional:

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings": {"availabilityType":"REGIONAL"}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]
    

Como inicializar failover

O teste de failover é opcional, mas é recomendado. Portanto, você pode ver como seu aplicativo responde em caso de um failover.

Para saber mais sobre failover, consulte a Visão geral do failover.

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique no nome da instância do mestre para abrir a página Detalhes da instância.
  3. Clique em Failover na barra de botões.

gcloud

Inicie o failover:

gcloud sql instances failover [MASTER_INSTANCE_NAME]

cURL

  1. Descreva a instância do mestre para conseguir o valor do campo settingsVersion.
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  2. Inicie o failover:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"[SETTINGS_VERSION]"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]/failover
    

A instância realizou failover e não está disponível para exibir dados por alguns minutos.

Como verificar se uma instância tem alta disponibilidade

Para verificar se uma instância tem alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique em um nome de instância para abrir a página Detalhes da instância.
  3. Em Configuração, aparece Altamente disponível (regional).

gcloud

gcloud sql instances describe [INSTANCE_NAME]
A resposta indica que availabilityType é REGIONAL.

cURL

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]?fields=settings
A resposta indica que availabilityType é REGIONAL.

Como desativar a alta disponibilidade em uma instância

Antes de executar este procedimento, verifique se não há operações em execução na instância no momento.

Para desativar a alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância em que você quer desativar a alta disponibilidade.
  3. Na página Detalhes da instância, clique em EDITAR.
  4. Abra Backups automáticos.
  5. Em Disponibilidade, clique em Única zona.
  6. Clique em Salvar. Essa edição requer que a instância seja reiniciada.
  7. Quando a caixa de mensagem aparecer, clique em SALVAR E REINICIAR.

gcloud

Para informações de referência, consulte gcloud sql instances patch.
gcloud sql instances patch [INSTANCE_NAME]
           --availability-type ZONAL

cURL

A solicitação a seguir usa o método instances:patch para alterar o tipo de disponibilidade na instância para ZONAL.
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"availabilityType":"ZONAL"}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]

Como atualizar uma instância de alta disponibilidade legada para atual

Para atualizar a instância da legada para a nova configuração de alta disponibilidade, faça o seguinte:

  1. Exclua a réplica de failover nas instâncias do MySQL que você quer atualizar. Consulte Configuração legada: como desativar a alta disponibilidade em uma instância.
  2. Configure a instância para usar a versão atual da alta disponibilidade. Consulte Como configurar uma instância existente para alta disponibilidade.

A seguir