Esta página descreve a manutenção self-service, que lhe permite aceitar uma atualização de manutenção na sua instância fora do fluxo normal de manutenção agendada.
Vista geral
O Cloud SQL lança regularmente melhorias de software, como patches para vulnerabilidades conhecidas, através de novas versões de manutenção. Embora o Cloud SQL agende atualizações de manutenção a cada poucos meses para garantir que tem a versão de manutenção mais recente, pode querer usar a manutenção self-service se:
- Precisa de uma atualização antes do próximo evento de manutenção agendado.
- Quer atualizar para a versão de manutenção mais recente depois de ignorar o evento de manutenção agendado mais recente.
Não tem de atualizar manualmente para a versão mais recente. Pode permitir que o Cloud SQL atualize automaticamente a versão de manutenção durante o próximo evento de manutenção agendado.
Faça a gestão da manutenção em todas as réplicas de leitura de uma instância principal
Quando realiza a manutenção self-service numa instância principal que tem réplicas de leitura, o Cloud SQL aplica automaticamente a atualização de manutenção a todas as suas réplicas de leitura. Se tiver mais de três instâncias de réplica de leitura, as instâncias são divididas em grupos e atualizadas em paralelo. Como passo final, a atualização de manutenção é aplicada à instância principal.
Se necessário, ainda pode realizar a manutenção autónoma numa única réplica de leitura. No entanto, para garantir que todas as instâncias de réplica de leitura e a instância principal funcionam na mesma versão de manutenção, recomendamos que faça a manutenção self-service em todas as réplicas de leitura de uma instância principal ao mesmo tempo.
Para atualizar uma única instância de réplica de leitura, especifique essa instância de réplica de leitura quando realizar a manutenção autónoma.
Antes de começar
Antes de realizar a manutenção self-service, verifique primeiro a versão de manutenção atual. Em seguida, pode determinar a versão de manutenção de destino para a qual quer fazer a atualização e atualizar a instância para essa versão. Se usar 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 seguinte comando gcloud
, faça a seguinte substituição:
- INSTANCE_ID: a instância a consultar
gcloud sql instances describe INSTANCE_ID
A versão de manutenção instalada na instância é indicada junto ao atributo maintenanceVersion
.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Procure o item maintenanceVersion
na secção DatabaseInstance
da resposta.
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Procure o item maintenanceVersion
na secção DatabaseInstance
da resposta.
Determine a versão de manutenção de destino
Use o método seguinte para ver as versões de manutenção que pode selecionar como alvo. Não pode atualizar para uma versão anterior à versão de manutenção atual.
gcloud
Antes de executar o seguinte comando gcloud
, faça a seguinte substituição:
- INSTANCE_ID: a instância a consultar
gcloud sql instances describe INSTANCE_ID
A versão de manutenção disponível é indicada junto ao atributo
availableMaintenanceVersions
.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Procure o item availableMaintenanceVersions
na secção DatabaseInstance
da resposta.
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Procure o item availableMaintenanceVersions
na secção DatabaseInstance
da resposta.
Atualize todas as réplicas de leitura de uma instância principal para a versão de manutenção de destino
Para fazer uma atualização de manutenção em todas as instâncias de réplica de leitura de uma instância principal, use o seguinte procedimento.
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 aplicar
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
No comando de confirmação, escreva Y
para continuar ou
escreva N
para cancelar.
Se selecionar Y
, o processo de atualização aplica primeiro a versão de manutenção especificada a todas as réplicas de leitura antes de atualizar a instância principal. Todas as instâncias de réplica de leitura que já tenham sido atualizadas para a versão de manutenção de destino são ignoradas.
Se selecionar N
, nenhuma instância é atualizada.
Após a conclusão da atualização das réplicas de leitura e da instância principal, é apresentada uma mensagem semelhante à seguinte:
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 num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform destroy
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- PROJECT_ID: o ID da instância principal
- MAINTENANCE_VERSION: a versão de manutenção do software do Cloud SQL a aplicar
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância principal
- MAINTENANCE_VERSION: a versão de manutenção do software do Cloud SQL a aplicar
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" }
Atualize uma única instância para a versão de manutenção de destino
Para fazer uma atualização de manutenção numa única instância, use o seguinte procedimento. Se necessário, pode usar este procedimento para atualizar uma única instância de réplica de leitura.
gcloud
Antes de usar o seguinte comando gcloud
, faça as seguintes substituições:
- INSTANCE_ID: o ID da instância. Esta instância pode ser uma instância de réplica de leitura.
- MAINTENANCE_VERSION: a versão de manutenção do Cloud SQL a aplicar
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Se especificar uma réplica de leitura, é apresentada uma mensagem de confirmação. Escreva Y
para continuar ou N
para cancelar.
- Se selecionar
Y
, o processo de atualização aplica a versão de manutenção especificada apenas à réplica de leitura especificada. - Se selecionar
N
, nenhuma instância é atualizada.
Após a conclusão da atualização da instância, é apresentada uma mensagem semelhante à seguinte:
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 num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform destroy
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do software do Cloud SQL a aplicar
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do software do Cloud SQL a aplicar
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 | Resolução de problemas |
---|---|
Não é possível aplicar uma atualização de manutenção a uma instância parada. | Para resolver o problema, inicie a instância antes de fazer a atualização de manutenção de autosserviço. |
Devido a uma diferença na versão principal da base de dados, a atualização de manutenção falhou. | Não pode usar a manutenção self-service para atualizar a versão principal da base de dados de uma instância. Para atualizar a versão principal de uma instância, use um dos seguintes procedimentos: |
O que se segue?
- Veja os registos de operações da instância.
- Leia as Perguntas frequentes sobre a manutenção.
- Saiba mais sobre a replicação no Cloud SQL.