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. Se você estiver executando uma instância do PostgreSQL, defina o valor da flag max_wal_size como menos de 5.128 MB. Se o valor de max_wal_size for muito grande, a instância poderá demorar para iniciar, e a operação poderá falhar.

  5. Desative todas as extensões ou recursos que permitem conexões de saída (ou exigem transferência de dados de saída). Por exemplo, uma conexão de saída pode ser estabelecida usando uma destas extensões ou recursos e precisa ser desativada antes de realizar uma operação de redução de armazenamento:

    • dblink extensão
    • PL/proxy extensão
    • pglogical extensão
    • Wrappers de dados estrangeiros (como postgres_fdw, oracle_fdw e tds_fdw)
    • Replicação lógica no PostgreSQL 10 e versões mais recentes

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