Configuração legada para alta disponibilidade

Nesta página, descrevemos a configuração legada de uma instância do MySQL para alta disponibilidade.

Em uma configuração de alta disponibilidade legada, uma instância do Cloud SQL para MySQL usa uma réplica de failover para adicionar alta disponibilidade à instância. Esse recurso não está disponível no console do Google Cloud. A nova configuração não usa réplicas de failover. Em vez disso, ela 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.

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

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

Configuração legada: criar uma nova instância configurada para alta disponibilidade

Quando você cria uma instância, é possível configurá-la para ter alta disponibilidade. O Cloud SQL cria a réplica de failover ao mesmo tempo que cria a instância principal. O recurso legado não está disponível no console do Google Cloud. Em vez disso, use os comandos gcloud CLI ou cURL.

Para criar uma instância configurada para alta disponibilidade:

gcloud

  1. Crie a instância principal e a réplica de failover:
    gcloud sql instances create PRIMARY_INSTANCE_NAME \
    --backup-start-time=BACKUP_WINDOW_START_TIME \
    --failover-replica-name=FAILOVER_REPLICA_NAME \
    --cpu=CPU \
    --database-version=DATABASE_VERSION \
    --memory=MEMORY \
    --enable-bin-log
    

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

    Lembre-se de substituir o marcador DATABASE_VERSION pelo MySQL 5.6 ou MySQL 5.7 (--database-version=MYSQL_5_6 ou
    --database-version=MYSQL_5_7).

    Se você não especificar uma versão para o parâmetro database-version, o MySQL 8.0 será selecionado por padrão. A configuração legada para alta disponibilidade do MySQL não é compatível com a versão 8.0.

    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 na instância principal:
    gcloud sql users set-password root --host=% \
    --instance PRIMARY_INSTANCE_NAME \
    --password PASSWORD
    

    A réplica de failover é criada com a mesma quantidade de CPU e MEMORY que a instância primária. É possível alterar a CPU e a MEMORY da réplica de failover posteriormente, mas elas precisam ser pelo menos tão grande quanto as da instância principal.

curl

  1. Crie a instância principal e a réplica de failover:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"PRIMARY_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 instância principal for concluída, atualize a senha raiz nela:
    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'
    
    Essa alteração é propagada automaticamente para a réplica.

Configuração legada: configurar uma instância 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:

gcloud

  1. Verificar o status da instância principal:
    gcloud sql instances describe PRIMARY_INSTANCE_NAME
    

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

  2. Se a propriedade enabled em backupConfiguration for false, ative os backups para a instância principal:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --backup-start-time HH:MM
    

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

  3. Se a propriedade binaryLogEnabled for false, ative os registros binários:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --enable-bin-log
    

    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=PRIMARY_INSTANCE_NAME \
    --replica-type=FAILOVER
    

curl

  1. Verificar o status da instância principal:
    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/PRIMARY_INSTANCE_NAME?fields=settings
    

    A saída conterá backupConfiguration, por exemplo:

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

    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 \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/
    
  3. Use o método insert do recurso de instâncias para criar a réplica de failover.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME",
                  "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_DATABASE_VERSION",
                  "replicaConfiguration": {"failoverTarget": true},
                  "settings": {"tier":"MACHINE_TYPE"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
    

    MACHINE_TYPE precisa ser pelo menos tão grande quanto o tipo de máquina da instância principal.

Iniciar o 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.

gcloud

Inicie o failover:

gcloud sql instances failover PRIMARY_INSTANCE_NAME

curl

  1. Descreva a instância principal 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/PRIMARY_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/PRIMARY_INSTANCE_NAME/failover
    

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

Configuração legada: 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. Use o Cloud Monitoring no console do Google Cloud para enviar alertas quando o atraso da replicação ultrapassar 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 Cloud Monitoring, consulte a documentação do Cloud Monitoring.

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

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e Alertas.
  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 de Notificação e clique em Salvar condição.

Configuração legada: definir 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". Não use esse sufixo para nenhum outro tipo de instâncias do Cloud SQL.

Crie o grupo de réplicas de failover:

  1. No console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  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. No painel de navegação do console do Google Cloud, selecione Monitoramento e Alertas.
  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.

Configuração legada: desativar a alta disponibilidade em uma instância

É preciso excluir a instância de réplica de failover para remover a alta disponibilidade da instância principal.

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

Para desativar a alta disponibilidade:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "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 será 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 abaixo usa o método instances:delete para excluir a instância.
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
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

A seguir