Nesta página, descrevemos a manutenção de autoatendimento, que permite aceitar uma atualização de manutenção na instância fora do fluxo normal de manutenção programada.
Visão geral
O Cloud SQL lança regularmente melhorias no software, como patches para vulnerabilidades conhecidas, usando novas versões de manutenção. O Cloud SQL programa atualizações de manutenção uma vez em intervalos de meses para garantir que você tenha a versão mais recente, mas convém usar a manutenção de autoatendimento se:
- você precisar de uma atualização antes do próximo evento de manutenção programado;
- você quiser ter a versão da manutenção mais recente depois de pular o evento de manutenção programado mais recente.
Não é necessário fazer a atualização manual para a versão mais recente. O Cloud SQL pode fazer a atualização automaticamente da versão de manutenção durante o próximo evento de manutenção programado.
Gerenciar a manutenção em todas as réplicas de leitura de uma instância principal
Quando você executa a manutenção de autoatendimento em uma instância principal que tem réplicas de leitura, o Cloud SQL aplica automaticamente a atualização de manutenção a todas as réplicas de leitura. Se você tiver mais de três instâncias de réplica de leitura, as instâncias serão divididas em grupos e atualizadas em paralelo. Na etapa final, a atualização de manutenção é aplicada à instância principal.
Se necessário, ainda é possível executar a manutenção de autoatendimento em uma única réplica de leitura. No entanto, para garantir que todas as instâncias de réplica de leitura e a instância principal operem na mesma versão de manutenção, recomendamos realizar a manutenção de autoatendimento em todas as réplicas de leitura de uma instância principal ao mesmo tempo. ao longo do tempo.
Para atualizar uma única instância de réplica de leitura, especifique essa instância de réplica de leitura ao realizar a manutenção de autoatendimento.
Antes de começar
Antes de fazer a manutenção de autoatendimento, verifique a versão atual. Em seguida, é possível determinar a versão de manutenção de destino para a qual você quer atualizar e atualizar a instância para essa versão. Se você usa réplicas de leitura, atualize todas as réplicas de leitura da instância principal para essa versão.
Para ver a versão de manutenção atual de uma instância, use o seguinte procedimento:
gcloud
Antes de executar o comando gcloud
a seguir, faça a seguinte
substituição:
- INSTANCE_ID: a instância a ser consultada
gcloud sql instances describe INSTANCE_ID
A versão de manutenção instalada na instância é indicada
ao lado do atributo maintenanceVersion
.
REST v1
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": "POSTGRES_13" }
Procure o item maintenanceVersion
na
seção DatabaseInstance
da resposta.
REST v1beta4
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": "POSTGRES_13" }
Procure o item maintenanceVersion
na
seção DatabaseInstance
da resposta.
Determinar a versão de manutenção de destino
Use o método a seguir para visualizar as versões de manutenção que podem ser selecionadas como destino. Não é possível atualizar para uma versão anterior à versão de manutenção atual.
gcloud
Antes de executar o comando gcloud
a seguir, faça a seguinte
substituição:
- INSTANCE_ID: a instância a ser consultada
gcloud sql instances describe INSTANCE_ID
A versão de manutenção disponível é indicada ao lado do atributo availableMaintenanceVersions
.
REST v1
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": "POSTGRES_13" }
Procure o item availableMaintenanceVersions
na
seção DatabaseInstance
da resposta.
REST v1beta4
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": "POSTGRES_13" }
Procure o item availableMaintenanceVersions
na
seção DatabaseInstance
da resposta.
Atualizar todas as réplicas de leitura de uma instância principal para a versão de manutenção de destino
Para executar uma atualização de manutenção em todas as instâncias de réplica de leitura de uma instância principal, use o procedimento a seguir.
gcloud
Antes de usar o seguinte comando gcloud
, faça a seguinte
substituição:
- PRIMARY_INSTANCE_ID: o ID da instância principal
- MAINTENANCE_VERSION: a versão de manutenção do Cloud SQL a ser aplicada
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
No prompt de confirmação, digite Y
para continuar ou N
para cancelar.
Se você selecionar Y
, o processo de atualização aplicará a
versão de manutenção especificada a todas as réplicas de leitura primeiro antes de atualizar
a instância principal. Todas as instâncias de réplica de leitura que já foram
atualizadas para a versão de manutenção de destino serão ignoradas.
Se você selecionar N
, nenhuma instância será atualizada.
Depois que a atualização das réplicas de leitura e a instância principal for concluída, uma mensagem semelhante a esta será exibida:
Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID]
Terraform
Para criar uma instância, 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- PROJECT_ID: o ID da instância principal
- MAINTENANCE_VERSION: a versão de manutenção de software do Cloud SQL a ser aplicada
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
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 principal
- MAINTENANCE_VERSION: a versão de manutenção de software do Cloud SQL a ser aplicada
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Atualizar uma única instância para a versão de manutenção de destino
Para executar uma atualização de manutenção em uma única instância, use o procedimento a seguir. Se necessário, use este procedimento para atualizar uma única instância de réplica de leitura.
gcloud
Antes de usar o comando gcloud
a seguir, faça as seguintes substituições:
- INSTANCE_ID: o ID da instância. Essa instância pode ser uma instância de réplica de leitura.
- MAINTENANCE_VERSION: a versão de manutenção do Cloud SQL a ser aplicada
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Se você especificar uma réplica de leitura, uma solicitação de confirmação
será exibida. Digite Y
para continuar ou N
para cancelar.
- Se você selecionar
Y
, o processo de atualização aplicará a versão de manutenção especificada apenas à réplica de leitura especificada. - Se você selecionar
N
, nenhuma instância será atualizada.
Depois que a atualização da instância for concluída, uma mensagem semelhante a esta será exibida:
Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID]
Terraform
Para criar uma instância, 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- PROJECT_ID: o ID da instância, que pode ser uma instância de réplica de leitura
- MAINTENANCE_VERSION: a versão de manutenção de software do Cloud SQL a ser aplicada
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
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, que pode ser uma instância de réplica de leitura
- MAINTENANCE_VERSION: a versão de manutenção de software do Cloud SQL a ser aplicada
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Resolver problemas
Problema | Solução de problemas |
---|---|
Não é possível aplicar a atualização de manutenção a uma instância interrompida. | Para resolver, inicie a instância antes de executar a atualização de manutenção de autoatendimento. |
Devido a uma diferença na versão principal do banco de dados, a atualização de manutenção falhou. | Não é possível usar a manutenção de autoatendimento para fazer upgrade da versão principal do banco de dados de uma instância. Para fazer upgrade da versão principal de uma instância, use um dos seguintes procedimentos: |
A seguir
- Confira os registros de operações de instâncias.
- Leia as Perguntas frequentes sobre manutenção.
- Saiba mais sobre a replicação no Cloud SQL.