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

Nesta página. descrevemos como configurar uma instância de Segunda geração para alta disponibilidade.

A maneira mais fácil de fazer isso é no momento da criação da instância. Você também pode ativar a alta disponibilidade em uma instância existente.

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

Como criar uma nova instância configurada para alta disponibilidade

Uma instância de Segunda geração pode ser configurada para alta disponibilidade no momento em que é criada. O Cloud SQL cria a réplica de failover ao mesmo tempo que cria a mestre.

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 Platform.

    Acessar a página Instâncias do Cloud SQL

  2. Crie uma instância de segunda geração.
  3. Na página Código da instância, selecione Mostrar opções de configuração.
  4. Abra Ativar backups automáticos e alta disponibilidade.
  5. Marque a caixa de seleção Criar réplica de failover.

gcloud

  1. Crie a instância mestre e a réplica de failover:
    gcloud sql instances create [MASTER_INSTANCE_NAME] \
                                     --backup-start-time [BACKUP_WINDOW_START_TIME] \
                                     --failover-replica-name [FAILOVER_REPLICA_NAME] \
                                     --tier [MACHINE_TYPE] --enable-bin-log
    

    O horário de início da janela de backup está no formato HH:MM.

  2. Configure o usuário raiz no mestre:
    gcloud sql users set-password root % \
                          --instance [MASTER_INSTANCE_NAME] --password [PASSWORD]
    
Para uma lista completa de parâmetros disponíveis, consulte a página de referência gcloud sql instances create.

cURL

  1. Crie a instância mestre e a réplica de failover:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"[MASTER_INSTANCE_NAME]", "region":"[REGION]",
                  "settings": {
                      "tier":"[MACHINE_TYPE]",
                      "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}},
                      "failoverReplica": {"name": "[FAILOVER_REPLICA_NAME]"}}' \
         -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 inicialização da mestre for concluída, atualize a senha raiz nela:
    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'
    
    Essa alteração é propagada automaticamente para a réplica.

A réplica de failover é criada com o mesmo tipo de máquina (nível) da instância mestre. É possível alterar o tipo de máquina da réplica de failover mais tarde, mas ele precisa ser pelo menos tão grande quanto a instância mestre.

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

Configuração de uma instância existente para alta disponibilidade

Console

O processo de configuração de uma instância existente para alta disponibilidade consiste nestas etapas:

  • Inicie a criação da réplica de failover.
  • Se necessário, ative Automatizar o backup na instância.
  • Conclua a criação da réplica de failover.
  • Opcionalmente, teste o failover.

O Console do Google Cloud Platform ajuda você na maior parte desse processo.

Para configurar uma instância existente para alta disponibilidade:

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

    Acessar a página Instâncias do Cloud SQL

  2. Encontre a instância que você quer configurar para alta disponibilidade na lista de instâncias e clique em Adicionar.

    A página Criar réplica de failover será aberta. Se a instância estiver pronta para a criação da réplica, os campos editáveis na réplica já serão mostrados, e será possível pular para a etapa 4. Caso contrário, siga para a próxima etapa.

  3. Se a instância não tiver backups ou registros binários habilitados, marque as duas caixas de seleção e clique em Salvar para ativá-los agora.

    Observação: a ativação da geração de registros binários em uma instância atual faz com que a instância seja reiniciada. As conexões de banco de dados são perdidas e precisam ser reabertas.

    Você deve ver a página Criar réplica de failover.

  4. Revise as configurações atuais da réplica e faça as atualizações necessárias.

    Por exemplo, é possível alterar o nome da réplica, adicionar uma rede autorizada ou mudar a zona. Você também pode alterar o tipo de máquina (nível), mas ele precisa ser pelo menos tão grande quanto a instância mestre. As sinalizações do MySQL precisam ser idênticas no mestre e na réplica.

  5. Clique em Criar para criar a réplica.

    Você retorna à página da instância mestre enquanto a réplica é inicializada.

gcloud

  1. Verifique o status da instância mestre:
    gcloud sql instances describe [MASTER_INSTANCE_NAME]
    

    Se a propriedade databaseReplicationEnabled for true, a instância será uma réplica. Não é possível criar uma réplica de failover para uma réplica.

  2. Se a propriedade enabled em backupConfiguration for false, ative os backups da instância do mestre agora:
    gcloud sql instances patch [MASTER_INSTANCE_NAME] --backup-start-time [HH:MM]
    

    O parâmetro backup-start-time é especificado em um período de 24 horas, no fuso horário UTC±00, e especifica o início de uma janela de backup de quatro horas. Os backups podem começar a qualquer momento durante a janela de backup.

  3. Caso a propriedade binaryLogEnabled seja false, ative os registros binários:
    gcloud sql instances patch --enable-bin-log [MASTER_INSTANCE_NAME]
    

    A ativação de registros binários causa a reinicialização da instância.

  4. Crie a réplica:
    gcloud sql instances create [FAILOVER_REPLICA_NAME] \
                                --master-instance-name=[MASTER_INSTANCE_NAME] \
                                --replica-type=FAILOVER
    

cURL

  1. Verifique o status da instância do mestre:
    ACCESS_TOKEN="$(gcloud auth application-default 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 conterá backupConfiguration, por exemplo:

    "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "binaryLogEnabled": true
    }
    
  2. Caso enabled ou binaryLogEnabled seja false, use o método patch do recurso de instâncias para ativá-los. Especifique as propriedades da configuração de backup que você quer manter como está e as que quer alterar.

    Para ativar os backups, defina enabled para true e defina startTime com um valor que seja o início da janela de backup. Para ativar a geração de registros binários, defina binaryLogEnabled como true.

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" :
                 {"backupConfiguration" :
                 {"startTime": "[HH:MM]", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  3. Use o método insert do recurso de instâncias para criar a réplica de leitura.

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "[REPLICA_NAME]", "masterInstanceName": "[MASTER_INSTANCE_NAME]",
                  "region": "[MASTER_REGION]", "databaseVersion": "[MASTER_DATABASE_VERSION]",
                  "replicaConfiguration": {"failoverTarget": true},
                  "settings": {"tier":"[MACHINE_TYPE]"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

    É necessário que MACHINE_TYPE seja um tipo de máquina válido para instâncias de Segunda Geração e pelo menos tão grande quanto o tipo de máquina da instância mestre.

Como inicializar o failover

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

Console

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

    Acessar a página Instâncias do Cloud SQL

  2. Clique no nome da instância mestre para abrir a respectiva 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 ver o valor do campo `settingsVersion`.
    ACCESS_TOKEN="$(gcloud auth application-default 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:
    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 fornecer dados por alguns minutos.

Como criar um alerta para atraso de replicação

O tempo necessário para uma operação de failover depende da quantidade de atraso da replicação quando o failover é iniciado. Você pode usar o Stackdriver Monitoring no Console do Google Cloud Platform para alertá-lo quando o atraso de replicação exceder um limite.

Para mais informações sobre atraso de replicação, pesquise por "seconds_behind_master" na página Sintaxe SHOW SLAVE STATUS na documentação do MySQL.

Para mais informações sobre o Stackdriver Monitoring, consulte a documentação do Stackdriver Monitoring.

Configuração de um alerta para uma réplica de failover específica

  1. Clique no logotipo do Stackdriver no canto superior esquerdo para retornar à página principal do Stackdriver Monitoring.
  2. Clique em Create Alerting Policy.
  3. Digite um nome descritivo para o alerta.
  4. Selecione Limite de métrica e clique em Avançar para abrir a guia "Destino".
  5. Para Tipo de recurso, selecione Cloud SQL.
  6. Para Aplicável a, selecione Único. Depois, selecione a réplica de failover.
  7. Clique em Avançar para abrir a guia "Configuração".
  8. Digite os seguintes valores:

    Campo Valor
    Métrica Se Segundos atrás do mestre
    Condição acima
    Limites 120 (ou qualquer valor que seja apropriado para seu ambiente)
    Por 3 minutos
  9. Selecione os métodos desejados de Notificação e clique em Salvar condição.

Configuração de um alerta para um grupo de réplicas de failover

Se você planeja criar várias réplicas de failover no mesmo projeto, pode ser mais fácil definir o alerta para todo o grupo, e não em cada réplica de failover individualmente. Para criar um grupo para monitoramento, use um sufixo para os nomes das réplicas de failover, como "-failover". Certifique-se de não utilizar esse sufixo para quaisquer outros tipos de instâncias do Cloud SQL.

Crie o grupo de réplicas de failover:

  • Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página Instâncias do Cloud SQL

    1. No menu à esquerda, selecione Monitoramento para abrir a página do Stackdriver Monitoring e faça login.
    2. Na barra de menus superior, selecione Grupos > Criar...
    3. Digite um nome descritivo para o grupo.
    4. Deixe Nome e Contém selecionados e digite a substring de nome.
    5. Clique em Salvar grupo.

      A página de resumo do novo grupo é aberta.

    6. Confirme se as instâncias esperadas estão incluídas no grupo.

    Crie o alerta para o grupo de réplicas de failover:

    1. Clique no logotipo do Stackdriver no canto superior esquerdo para retornar à página principal do Stackdriver Monitoring.
    2. Clique em Create Alerting Policy.
    3. Digite um nome descritivo para o alerta de grupo.
    4. Selecione Limite de métrica e clique em Avançar para abrir a guia "Destino".
    5. Para Tipo de recurso, selecione Cloud SQL.
    6. Para Aplicável a, selecione Grupo. Depois, selecione seu grupo de failover.
    7. Deixe Qualquer membro viola selecionado e clique em Avançar para abrir a guia "Configuração".
    8. Digite os seguintes valores:

      Campo Valor
      Métrica Se Segundos atrás do mestre
      Condição acima
      Limites 120 (ou qualquer valor que seja apropriado para seu ambiente)
      Por 3 minutos
    9. Selecione os métodos desejados de Notificação e clique em Salvar condição.

    Como desativar a alta disponibilidade em uma instância

    Você precisa excluir a instância de réplica de failover para remover a alta disponibilidade da instância mestre.

    Antes de fazer esse procedimento, verifique se não há operações sendo executadas na instância mestre no momento.

    Para desativar a alta disponibilidade:

    Console

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

      Acessar a página Instâncias do Cloud SQL

    2. Selecione a instância de failover associada à instância em que você quer desativar a alta disponibilidade.
    3. Na página Detalhes da instância, clique em EXCLUIR.
    4. Na janela Excluir réplica, digite novamente o nome da instância de failover.
    5. Clique em EXCLUIR. A configuração da instância original é alterada para zonal.

    gcloud

    Para informações de referência, consulte gcloud sql instances delete.
    gcloud sql instances delete [FAILOVER_REPLICA_NAME]
    

    cURL

    A solicitação a seguir usa o método instances:delete para excluir a instância.
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json'\
          -X DELETE\
    https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]
    
    

    Próximas etapas

    Esta página foi útil? Conte sua opinião sobre:

    Enviar comentários sobre…

    Cloud SQL para MySQL