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:
- Exclua a réplica de failover nas instâncias do MySQL que você quer atualizar. Como desativar a alta disponibilidade em uma instância.
- 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
- 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.
- 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
- 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. -
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
- Verificar o status da instância principal:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Se a propriedade
databaseReplicationEnabled
fortrue
, a instância é uma réplica. Não é possível criar uma réplica de failover para outra. - Se a propriedade
enabled
embackupConfiguration
forfalse
, 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. - Se a propriedade
binaryLogEnabled
forfalse
, 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.
- Crie a réplica:
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- 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 }
- Se
enabled
oubinaryLogEnabled
foremfalse
, use o métodopatch
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
comotrue
estartTime
como um valor que seja o início da janela de backup. Para ativar a geração de registros binários, definabinaryLogEnabled
comotrue
.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/
-
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
- 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
- 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
- No painel de navegação do console do Google Cloud, selecione Monitoramento e Alertas.
- Clique em Create Alerting Policy.
- Digite um nome descritivo para o alerta.
- Selecione Limite de métrica e clique em Avançar para abrir a guia "Destino".
- Para Tipo de recurso, selecione Cloud SQL.
- Para Aplicável a, selecione Único. Depois, selecione a réplica de failover.
- Clique em Avançar para abrir a guia "Configuração".
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 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:
-
No console do Google Cloud, acesse a página Monitoring.
- Na barra de menus superior, selecione Grupos > Criar....
- Digite um nome descritivo para o grupo.
- Deixe Nome e Contém selecionados e digite a substring de nome.
- Clique em Salvar grupo. A página de resumo do novo grupo é aberta.
- Confirme se as instâncias esperadas estão incluídas no grupo.
Crie o alerta para o grupo de réplicas de failover:
- No painel de navegação do console do Google Cloud, selecione Monitoramento e Alertas.
- Clique em Create Alerting Policy.
- Digite um nome descritivo para o alerta de grupo.
- Selecione Limite de métrica e clique em Avançar para abrir a guia "Destino".
- Para Tipo de recurso, selecione Cloud SQL.
- Para Aplicável a, selecione Grupo. Depois, selecione seu grupo de failover.
- Deixe Qualquer membro viola selecionado e clique em Avançar para abrir a guia "Configuração".
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 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
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione a instância de failover associada à instância em que você quer desativar a alta disponibilidade.
- Na página Detalhes da instância, clique em Excluir.
- Na janela Excluir réplica, digite novamente o nome da instância de failover.
- Clique em Excluir. A configuração da instância original será alterada para zonal.
gcloud
Para informações de referência, consultegcloud sql instances delete
.
gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
A solicitação abaixo usa o métodoinstances: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
- Saiba mais sobre como funciona a configuração de alta disponibilidade.
- Teste a resposta do aplicativo a conexões perdidas reiniciando a instância.
- Saiba mais sobre como gerenciar as conexões de banco de dados.
- Saiba mais sobre o Cloud Monitoring.
- Crie réplicas de leitura para sua instância.