Nesta página, descrevemos como configurar uma instância para alta disponibilidade.
É possível configurar uma instância para alta disponibilidade ao criá-la ou ativar a alta disponibilidade em uma instância atual.
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 defailover 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
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Crie uma instância.
- Na página Informações da instância, selecione Mostrar opções de configuração.
- Abra Backups, recuperação e alta disponibilidade.
- Selecione o botão de opção Alta disponibilidade (regional).
gcloud
- 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. - Configure o usuário raiz:
gcloud sql users set-password root --host=% \ --instance=[PRIMARY_INSTANCE_NAME] --password=[PASSWORD]
REST v1beta4
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:insert.Crie a instância regional.
-
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-name: o nome da instância
- database-version: a string de enum da versão do banco de dados
- region: a região do GCP
- machine-type: o tipo de máquina
Método HTTP e URL:
POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances
Corpo JSON da solicitação:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true }, "availabilityType": "REGIONAL" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Quando a instância concluir a inicialização, atualize a senha raiz na
instância:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- password: a nova senha de usuário raiz
Método HTTP e URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root'
Corpo JSON da solicitação:
{ "name": "root", "host": "%", "password": "password"}
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
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
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Clique no nome da instância para abrir a página Visão geral correspondente.
- Clique em Editar.
- Abra Backups, recuperação e alta disponibilidade.
- Ative as caixas de seleção Automatizar backups e Ativar recuperação pontual.
- Selecione Alta disponibilidade (regional).
- Clique em Salvar.
Você retornará à página da instância principal enquanto ela está sendo 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
.
REST v1beta4
Verifique a instância principal para ver se os backups automáticos e os registros binários estão ativados. Eles são necessários para instâncias de alta disponibilidade.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_5_7", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "asia-east1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "08:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "13", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "etag-id", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "0", "cert": "certificate-id", "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id", "sha1Fingerprint": "sha-id", "instance": "instance-id", "createTime": "2019-06-28T22:46:35.052Z", "expirationTime": "2029-06-25T22:47:35.052Z" }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "asia-east1", "gceZone": "asia-east1-a" }
A saída contém uma seção semelhante a esta:
"backupConfiguration": { "kind": "sql#backupConfiguration", "startTime": "12:00", "enabled": true, "binaryLogEnabled": true }
Se
enabled
oubinaryLogEnabled
foremfalse
, use o métodoinstances:patch
para ativar os dois. Para ativar backups, definaenabled
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
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância (primária ou réplica);
- start-time: o horário no formato "HH:MM"
- enabled: defina como verdadeiro para uma instância primária. Defina como falso para uma instância de réplica
Método HTTP e URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corpo JSON da solicitação:
{ "settings": { "backupConfiguration": { "startTime": "start-time", "enabled": enabled, "binaryLogEnabled": true } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Atualize a instância para que ela seja regional:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-name: o nome da instância
Método HTTP e URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name
Corpo JSON da solicitação:
{ "settings": {"availabilityType": "REGIONAL" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
Como inicializar 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.
Console
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Clique no nome da instância principal para abrir a página Detalhes da instância.
- Clique em Failover na barra de botões.
gcloud
Inicie o failover:
gcloud sql instances failover [PRIMARY_INSTANCE_NAME]
REST v1beta4
- Descreva a instância principal para conseguir o valor do
campo
settingsVersion
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_5_7", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "asia-east1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "08:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "13", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "etag-id", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "0", "cert": "certificate-id", "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id", "sha1Fingerprint": "sha-id", "instance": "instance-id", "createTime": "2019-06-28T22:46:35.052Z", "expirationTime": "2029-06-25T22:47:35.052Z" }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "asia-east1", "gceZone": "asia-east1-a" }
- Inicie o failover:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-name: o nome da instância
- settings-version: a settingsVersion de instanceInfo
Método HTTP e URL:
POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name/failover
Corpo JSON da solicitação:
{ "failoverContext": { "settingsVersion":"settings-version" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
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
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Clique em um nome de instância para abrir a página Detalhes da instância.
- Em Configuração, aparece Altamente disponível (regional).
gcloud
gcloud sql instances describe [INSTANCE_NAME]A resposta indica que
availabilityType
é REGIONAL
.
REST v1beta4
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_5_7", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "asia-east1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "08:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "13", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "etag-id", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "0", "cert": "certificate-id", "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id", "sha1Fingerprint": "sha-id", "instance": "instance-id", "createTime": "2019-06-28T22:46:35.052Z", "expirationTime": "2029-06-25T22:47:35.052Z" }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "asia-east1", "gceZone": "asia-east1-a" }
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
- Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.
- Selecione a instância em que você quer desativar a alta disponibilidade.
- Na página Detalhes da instância, clique em EDITAR.
- Abra Backups automáticos.
- Em Disponibilidade, clique em Única zona.
- Clique em Salvar. Essa edição requer que a instância seja reiniciada.
- Quando a caixa de mensagem aparecer, clique em SALVAR E REINICIAR.
gcloud
Para informações de referência, consultegcloud sql instances patch
.
gcloud sql instances patch [INSTANCE_NAME] --availability-type ZONAL
REST v1beta4
A solicitação a seguir usa o métodoinstances:patch
para alterar o
tipo de disponibilidade na instância para ZONAL.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-name: o nome da instância
Método HTTP e URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name
Corpo JSON da solicitação:
{ "settings": {"availabilityType": "ZONAL" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
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:
- 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.
- Configure a instância para usar a versão atual da alta disponibilidade. Consulte Como configurar uma instância existente para alta disponibilidade.
Solução de problemas
Clique nos links da tabela para ver detalhes:
Para este problema... | O problema pode ser... | Tente o seguinte... |
---|---|---|
Não é possível encontrar métricas para failover manual. | Somente failovers automáticos entram nas métricas. | N/D |
CPU e RAM próximas de 100% de uso | O tamanho da máquina da instância é pequeno demais para a carga. | Faça upgrade no tamanho da máquina da instância. |
Não é possível encontrar métricas para failover manual
Você executou um failover manual e não consegue encontrar uma entrada correspondente nas métricas de failover automático do Metrics Explorer.
O problema pode ser
Somente failovers automáticos entram nas métricas. Failovers iniciados manualmente não.
O que você pode tentar
N/D
CPU e RAM próximas de 100% de uso
Os recursos da instância do Cloud SQL (CPU e RAM) estão quase com 100% de uso, fazendo com que a instância de alta disponibilidade fique inativa.
O problema pode ser
O tamanho da máquina da instância é pequeno demais para a carga.
O que você pode tentar
Edite a instância para fazer upgrade para um tamanho de máquina maior e receber mais CPUs e memória.
A seguir
- Saiba mais sobre como funciona a configuração de alta disponibilidade.
- Teste como seu aplicativo responde a conexões perdidas reiniciando a instância.
- Saiba mais sobre como gerenciar as conexões de banco de dados.
- Saiba mais sobre o pacote de operações do Google Cloud.
- Saiba mais sobre a Configuração legada para alta disponibilidade.
- Crie réplicas de leitura para sua instância.