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.
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
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione Criar instância.
- Selecione o mecanismo do banco de dados.
- Na seção Escolher região e disponibilidade por zona, selecione Várias zonas (altamente disponível).
- Expanda Especificar zonas.
- Selecione as zonas primária e secundária. As condições a seguir se aplicam quando a zona secundária é usada durante a criação ou edição da instância:
- A zona padrão é
Any
para a zona primária eAny (different from primary)
para a zona secundária.
Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
- A zona padrão é
- Clique em Salvar.
Você retornará à página da instância principal enquanto ela está sendo atualizada.
gcloud
- Crie a instância regional:
gcloud sql instances create REGIONAL_INSTANCE_NAME \ --availability-type=REGIONAL \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE
- Configure o usuário raiz:
gcloud sql users set-password root no-host \ --instance=REGIONAL_INSTANCE_NAME \ --password=PASSWORD
Terraform
Para criar uma instância com alta disponibilidade, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
REST v1
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://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON da solicitação:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Corpo JSON da solicitação:
{ "name": "sqlserver", "host": "nohost", "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.
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://sqladmin.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": { "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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Corpo JSON da solicitação:
{ "name": "sqlserver", "host": "nohost", "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.
Configurar uma instância existente para alta disponibilidade
Você pode configurar uma instância do Cloud SQL para alta disponibilidade usando o Console do Google Cloud, gcloud CLI, ou a API.
Console
Para configurar uma instância para alta disponibilidade:
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome dela.
- Clique em Editar.
- Na seção da opção de configuração Backups automáticos e alta disponibilidade, selecione Alta disponibilidade (regional). Também é recomendável ativar a opção Automatizar backups.
- Clique em Salvar.
gcloud
Para configurar uma instância regional de alta disponibilidade, use o comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type REGIONAL
Substitua INSTANCE_NAME pelo nome da instância do Cloud SQL que você está configurando para alta disponibilidade.
REST v1
Para configurar uma instância como regional de alta disponibilidade:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância que você está configurando para alta disponibilidade
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/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.
REST v1beta4
Para configurar uma instância como regional de alta disponibilidade:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância que você está configurando para alta disponibilidade
Método HTTP e URL:
PATCH https://sqladmin.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.
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.
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Failover.
- Na caixa de diálogo Acionar manualmente um failover, insira o ID da instância no campo de texto e clique em Acionar failover.
gcloud
Inicie o failover:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
REST v1
- 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 ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância que você está configurando para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- 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://sqladmin.googleapis.com/v1/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:
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 ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância que você está configurando para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- 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://sqladmin.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 apresenta failover e ela fica indisponível para exibir os dados por alguns minutos.
Verificar a configuração de alta disponibilidade de uma instância
Para verificar se uma instância tem alta disponibilidade e ver as zonas em que ela está em execução:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Confirme se as seguintes configurações de alta disponibilidade são exibidas na seção Configuração:
- Altamente disponível (regional)
- Localizado em mostra a zona principal atual da instância.
gcloud
gcloud sql instances describe INSTANCE_NAME
A resposta indica que availabilityType
é REGIONAL
.
Os campos gceZone
e secondaryGceZone
mostram as zonas primária e secundária atuais da instância.
REST v1
Antes de usar os dados da solicitação, faça as seguintes substituições:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/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": "SQLSERVER_2019_STANDARD" }
A resposta indica que availabilityType
é REGIONAL
.
Os campos gceZone
e secondaryGceZone
mostram as zonas primária e secundária atuais da instância.
REST v1beta4
Antes de usar os dados da solicitação, faça as seguintes substituições:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
GET https://sqladmin.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": "SQLSERVER_2017_STANDARD", }
A resposta indica que availabilityType
é REGIONAL
.
Os campos gceZone
e secondaryGceZone
mostram as zonas primária e secundária atuais da instância.
Alterar as zonas de uma instância de alta disponibilidade
Alterar uma ou ambas as zonas de uma instância de alta disponibilidade existente causa alguns minutos de inatividade enquanto a instância é reconfigurada. Para ver as zonas primária e secundária atuais em que a instância de alta disponibilidade está sendo executada, consulte Verificar a configuração de alta disponibilidade de uma instância.
Para alterar as zonas de uma instância de alta disponibilidade:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome dela.
- Clique em Editar.
- Na seção Escolher a disponibilidade por região e zona, expanda Especificar zonas e selecione novas zonas. A zona padrão é
Any
para a zona primária eAny (different from primary)
para a zona secundária. As seguintes restrições são aplicadas:- É possível especificar apenas a zona principal ou as zonas principal e secundária.
- Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
- Clique em Salvar.
Você retornará à página da instância principal enquanto ela está sendo atualizada.
gcloud
Altere a zona em que a instância está em execução:
gcloud sql instances patch INSTANCE_NAME \ --zone=PRIMARY_ZONE --secondary-zone=SECONDARY_ZONE
O parâmetro --secondary-zone
é opcional. Se você omiti-la, o Cloud SQL selecionará uma zona disponível diferente da principal.
As seguintes restrições são aplicadas:
- As zonas precisam ser válidas e pertencerem à mesma região da instância do Cloud SQL.
- Se a zona secundária for especificada, ela precisa ser diferente da zona principal.
REST v1
Altere as zonas da 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
- PRIMARY_ZONE: a zona principal
- SECONDARY_ZONE: a zona secundária
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON da solicitação:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
O parâmetro
secondaryZone
é opcional. Se você omiti-la, o Cloud SQL selecionará uma zona disponível diferente da principal.As seguintes restrições são aplicadas:
- As zonas precisam ser válidas.
- Todas as zonas escolhidas precisam pertencer à mesma região da instância do Cloud SQL.
REST v1beta4
Altere as zonas da 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
- PRIMARY_ZONE: a zona principal
- SECONDARY_ZONE: a zona secundária
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON da solicitação:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
O parâmetro
secondaryZone
é opcional. Se você omiti-la, o Cloud SQL selecionará uma zona disponível diferente da principal.As seguintes restrições são aplicadas:
- As zonas precisam ser válidas.
- Todas as zonas escolhidas precisam pertencer à mesma região da instância do Cloud SQL.
Desativar a alta disponibilidade de uma instância
Você pode configurar uma instância do Cloud SQL para alta disponibilidade usando o Console do Google Cloud, gcloud CLI, ou a API.
Console
Para desativar a alta disponibilidade em uma instância:
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome dela.
- Clique em Editar.
- Abra Backups automáticos.
- Na seção Disponibilidade, clique em Zona única.
- Clique em Salvar. Esta edição requer que você reinicie a instância.
- Quando a caixa de diálogo aparecer, clique em Salvar e reiniciar.
gcloud
Para desativar a alta disponibilidade em uma instância, use o comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type ZONAL
Substitua INSTANCE_NAME pelo nome da instância do Cloud SQL para a qual você está desativando a alta disponibilidade.
REST v1
Para mudar o tipo de disponibilidade da instância para ZONAL
, use o método instances:patch
. Esse método desativa a alta disponibilidade da instância.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância para a qual você está desativando a alta disponibilidade
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/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.
REST v1beta4
Para mudar o tipo de disponibilidade da instância para ZONAL
, use o método instances:patch
. Esse método desativa a alta disponibilidade da instância.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância para a qual você está desativando a alta disponibilidade
Método HTTP e URL:
PATCH https://sqladmin.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.
Resolver problemas
Problema | Solução de problemas |
---|---|
Não é possível encontrar as métricas de um failover manual. | Somente failovers automáticos entram nas métricas. |
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 tamanho da máquina da instância é pequeno demais para a carga.
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 Google Cloud Observability.