Reduzir a capacidade de armazenamento da instância

Nesta página, mostramos como gerenciar a capacidade de armazenamento de uma instância do Cloud SQL usando recursos de redução de armazenamento.

Antes de começar

  1. Analise as limitações do recurso.

  2. Se você estiver usando a CLI gcloud, verifique se está usando a versão mais recente do SDK Google Cloud e da CLI gcloud.

  3. Receba as seguintes permissões do IAM:

    • cloudsql.instances.getDiskShrinkConfig
    • cloudsql.instances.performDiskShrink

    Essas permissões estão disponíveis em um dos seguintes papéis. Ao atribuir seu papel, recomendamos aplicar o princípio de privilégio mínimo:

    • Administrador do Cloud SQL (roles/cloudsql.admin)
    • Editor do Cloud SQL (roles/cloudsql.editor)

    Para saber mais, acesse os recursos a seguir:

Preparar a instância

Atenda aos seguintes requisitos antes de começar.

Essas etapas são as mesmas para instâncias principais e réplicas de leitura.

Se você estiver atualizando uma réplica de leitura, reduza primeiro a capacidade da instância principal e depois o tamanho da réplica.

  1. Extraia o ID do projeto que contém a instância que você quer gerenciar.

  2. Verifique o estado atual da instância para garantir que ela esteja em execução. Uma maneira de verificar é usar o comando describe:

      gcloud sql instances describe
    

    Retorna o seguinte status:

      RUNNABLE
    

    Caso contrário, inicie a instância.

  3. Crie um backup da instância atual. Isso permite restaurar a instância mais tarde se você tiver problemas durante a configuração.

  4. Desative todas as extensões ou recursos que permitem conexões de saída (ou exigem transferência de dados de saída).

Reduzir a capacidade de armazenamento de uma instância

As etapas a seguir são as mesmas para instâncias principais e réplicas de leitura.

  1. Verifique a capacidade mínima de armazenamento de destino da instância e o tempo estimado da operação. Essas informações podem ajudar você a planejar a operação de redução de armazenamento.

    gcloud

    Execute o comando gcloud sql instances get-storage-shrink-config:

    gcloud sql instances get-storage-shrink-config INSTANCE_NAME
    

    Substitua:

    • INSTANCE_NAME: o nome da instância principal.

    A resposta inclui um valor para minimalTargetSizeGb. É possível usar esse valor para determinar o valor que você quer usar para o parâmetro --storage-size ao executar uma operação de redução de armazenamento.

    A resposta também retorna uma mensagem com um tempo estimado de operação, semelhante a esta:

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1

    Use o método GET para conferir a capacidade mínima de armazenamento de destino da instância.

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o nome do projeto em que a instância principal está.
    • INSTANCE_ID: o ID da instância principal.

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    A resposta inclui um valor para min_target_size_gb. É possível usar esse valor para determinar o valor que você quer usar para o parâmetro --storage-size ao executar uma operação de redução de armazenamento.

    A resposta também retorna uma mensagem com um tempo estimado de operação, semelhante a esta:

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1beta4

    Use o método GET para conferir a capacidade mínima de armazenamento de destino da instância.

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o nome do projeto em que a instância principal está.
    • INSTANCE_ID: o ID da instância principal.

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    A resposta inclui um valor para min_target_size_gb. É possível usar esse valor para determinar o valor que você quer usar para o parâmetro --storage-size ao executar uma operação de redução de armazenamento.

    A resposta também retorna uma mensagem com um tempo estimado de operação, semelhante a esta:

    ...
    "The estimated operation time is 20 minutes".
    
  2. Reduza a capacidade de armazenamento da instância.

    gcloud

    Execute o comando a seguir para reduzir o armazenamento na instância:

    gcloud sql instances perform-storage-shrink INSTANCE_NAME \
      --storage-size=TARGET_STORAGE_SIZE --async
    

    Substitua:

    • INSTANCE_NAME: o nome da instância.
    • TARGET_STORAGE_SIZE: a capacidade de armazenamento desejada em GB. Por exemplo, 100 GB.

    Recomendamos usar a flag --async para aguardar a operação de forma assíncrona.

    REST v1

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o ID do projeto em que a instância está.
    • INSTANCE_ID: o ID da instância.
    • TARGET_STORAGE_SIZE: o tamanho de armazenamento de destino em GB.

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    Corpo JSON da solicitação:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    Você vai receber uma resposta JSON semelhante a esta:

    REST v1beta4

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o ID do projeto em que a instância está.
    • INSTANCE_ID: o ID da instância.
    • TARGET_STORAGE_SIZE: o tamanho de armazenamento de destino da instância.

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    Corpo JSON da solicitação:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    Você vai receber uma resposta JSON semelhante a esta:

  3. Para verificar o status da operação de redução de armazenamento, consulte Verificar o status de uma operação.

Cancelar operação de redução de armazenamento

  1. Receba o ID da operação de redução de armazenamento.

    Para recuperar o ID da operação, execute o seguinte comando list:

    gcloud sql operations list
    
  2. Envie um pedido de cancelamento.

    gcloud

    Execute o comando a seguir para cancelar a solicitação:

    gcloud sql operations cancel OPERATION_ID
    

    Substitua:

    OPERATION_ID: o ID da operação de redução de armazenamento que você quer cancelar.

    REST v1

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o ID do projeto em que a instância está.
    • OPERATION_ID: o ID da operação de redução de armazenamento que você quer cancelar.

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    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

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • PROJECT_ID: o ID do projeto em que a instância está.
    • OPERATION_ID: o ID da operação de redução de armazenamento que você quer cancelar.

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Verificar o status de um pedido de cancelamento ou outra operação

Para verificar o status de uma solicitação, execute os comandos a seguir:

gcloud

  1. Receba o ID da operação para a solicitação de cancelamento:

    gcloud sql operations list
    
  2. Verifique o status da operação:

    gcloud sql operations describe OPERATION_ID
    

    Substitua:

    OPERATION_ID: o ID da operação que você quer verificar.

REST v1

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o nome do projeto em que a instância está.
  • OPERATION_ID: o ID da operação de redução de armazenamento.

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o nome do projeto em que a instância está.
  • OPERATION_ID: o ID da operação de redução de armazenamento.

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Solução de problemas

Para informações sobre solução de problemas, consulte Problemas ao atualizar a capacidade de armazenamento.

A seguir