Problemas para actualizar la capacidad de almacenamiento

En esta página, se describen los mensajes de error comunes que puedes recibir cuando intentas reducir o disminuir la capacidad de almacenamiento de la instancia.

Falla la reducción del almacenamiento para los tipos de máquinas C4A y N4

El siguiente error puede producirse cuando intentas aplicar una operación de reducción de almacenamiento a un tipo de máquina C4A o N4:

  ERROR: (gcloud.sql.instances.perform-storage-shrink) HTTPError 400: Invalid
  request: Requested provisioned IOPS is too high for the machine type and/or data disk size.

Los tipos de máquinas C4A y N4 usan Google Cloud Hyperdisk, que permite a los usuarios ajustar los valores de IOPS y capacidad de procesamiento del disco. Si intentas reducir el tamaño del disco hasta un punto en el que los valores de IOPS y capacidad de procesamiento configurados dejan de ser válidos, la operación de reducción del disco fallará y mostrará un error.

En este mensaje de error de ejemplo, el valor de IOPS de la instancia solicitada es mayor que el valor máximo de IOPS del disco pequeño nuevo, por lo que la operación falla.

Para resolver este problema, vuelve a calcular el tamaño de almacenamiento objetivo que deseas usar según las limitaciones de Google Cloud Hyperdisk de tu máquina y vuelve a ejecutar la operación de reducción del almacenamiento.

Las operaciones fallan para un grupo de lectura

Los siguientes errores ocurren cuando intentas ejecutar cualquier operación relacionada con la reducción del almacenamiento en un grupo de lectura:

Ejemplo 1

gcloud sql instances perform-storage-shrink READ_POOL_NAME

ERROR: (gcloud.sql.instances.perform-storage-shrink) HTTPError 400: Invalid
request: Requested operation is not supported on a read pool.

Las operaciones de reducción de almacenamiento no son compatibles con los grupos de lectura ni con los nodos de grupos de lectura.

Ejemplo 2

gcloud sql instances get-disk-shrink-config READ_POOL_NAME

ERROR: (gcloud.sql.instances.get-storage-shrink-config) HTTPError 400: Invalid
request: Requested operation is not supported on a read pool.

No puedes verificar la configuración de reducción de almacenamiento de un grupo de lectura, un nodo de grupo de lectura o una réplica.

Sin embargo, puedes consultar la capacidad de almacenamiento disponible de la instancia principal asociada.

No se puede verificar el estado de cancelación

El siguiente error puede ocurrir cuando intentas verificar el estado de una solicitud de cancelación de una operación de reducción de almacenamiento:

  {
    "kind": "sql#operation",
    "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/example_instance",
    "status": "RUNNING",
    "user": "user@example.com",
    "insertTime": "2023-12-18T22:54:11.663Z",
    "startTime": "2023-12-18T22:54:12.047Z",
    "error": {
      "kind": "sql#operationErrors",
      "errors": [
        {
          "kind": "sql#operationError",
          "code": "CANCEL_ERROR",
          "message": "The UPDATE operation 490cdbe6-8b75-415c-99c1-ccc80000004f can not be cancelled."
        }
      ]
    },
    "operationType": "UPDATE",
    "name": "OPERATION_ID",
    "targetId": "example_instance",
    "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
    "targetProject": "PROJECT_ID"
  }

Para resolver el problema, sigue estos pasos:

  1. Este mensaje de error podría indicar que la solicitud de cancelación está casi completa. Intenta verificar el estado de la operación nuevamente en unos minutos.
  2. Si el mensaje de error persiste, comunícate con el equipo de asistencia de Cloud SQL para obtener ayuda.
  3. Si se ejecuta correctamente, se muestra un mensaje similar al siguiente:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/example_instance",
      "status": "DONE",
      "user": "user@example.com",
      "insertTime": "2023-12-18T22:54:11.663Z",
      "startTime": "2023-12-18T22:54:12.047Z",
      "error": {
        "kind": "sql#operationErrors",
        "errors": [
          {
            "kind": "sql#operationError",
            "code": "CANCEL_SUCCESSFUL",
            "message": "The UPDATE operation is canceled."
          }
        ]
      },
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "example_instance",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

Falla la reducción del almacenamiento

El siguiente error puede ocurrir cuando intentas ejecutar una operación de reducción de almacenamiento:

  There is a pending blocking operation for instance: INSTANCE_NAME

Este mensaje de error puede indicar que aún se está ejecutando otra operación, como las siguientes:

  • Operación de copia de seguridad
  • Operación de importación
  • Una operación anterior de reducción de almacenamiento en la instancia
  • Una operación de reducción de almacenamiento aún se está ejecutando en una instancia principal asociada con la réplica de lectura que deseas modificar.

Para resolver el problema, espera a que se complete la operación anterior.

Si una operación anterior de IMPORT está atascada, comunícate con la asistencia de Cloud SQL para solicitar ayuda para cancelar la operación.

Para obtener más información, consulta Limitaciones.

Tamaño de almacenamiento no válido para una instancia principal

Es posible que se produzcan los siguientes errores cuando intentes ejecutar una operación de reducción de almacenamiento en una instancia principal y el tamaño de destino solicitado no sea válido:

Ejemplo 1

  Invalid target storage size SIZE. Target storage
  size should be at least 10GB, which is the minimum storage size for a
  Cloud SQL instance.
  • El tamaño objetivo solicitado debe ser mayor o igual que el tamaño de almacenamiento mínimo permitido para la instancia.

    Para resolver el problema, especifica un tamaño de almacenamiento objetivo más grande y vuelve a ejecutar la operación.

    Para obtener más información, consulta Limitaciones.

Ejemplo 2

  Instance INSTANCE_NAME cannot shrink storage further
  because the storage size is 10GB and the minimum storage size for a Cloud SQL
  instance is 10GB.
  • El tamaño de destino solicitado es demasiado pequeño. Si el tamaño de destino solicitado para --storage-size ya es el tamaño mínimo de 10 GB, no puedes reducirlo más.

    Para resolver el problema, especifica un tamaño de almacenamiento de destino más grande y vuelve a ejecutar la operación.

    Para obtener más información, consulta Limitaciones.

Ejemplo 3

  ERROR: (gcloud.sql.instances.perform-storage-shrink) argument --storage-size: VALUE
  must be greater than or equal to 10GB; received: SIZE
  • Si el tamaño de destino solicitado para --storage-size es demasiado pequeño, ejecuta el siguiente comando en la instancia principal para obtener la capacidad de almacenamiento mínima permitida:

    gcloud sql instances get-storage-shrink-config PRIMARY_INSTANCE_NAME
    

    La respuesta incluye un valor para minimalTargetSizeGb. Puedes usar este valor para el parámetro --storage-size y volver a ejecutar la operación.

Ejemplo 4

  Invalid target storage size SIZE. Target storage
  size should be smaller than present storage size CURRENT_SIZE.
  • Si el tamaño objetivo solicitado para --storage-size es demasiado grande, esto indica que el valor es mayor que el tamaño de almacenamiento actual de la instancia principal y que debes usar un valor más pequeño.

    Si quieres tener un disco más grande, primero edita la instancia y vuelve a intentar la operación.

Ejemplo 5

  Requested storage size is too close to current storage usage, request storage
  size should be minimum SIZEGB.
  • Si el tamaño de destino solicitado está demasiado cerca del tamaño de almacenamiento existente, debes modificar el valor y volver a ejecutar la operación. Estas son algunas de las opciones de modificación:

    • Aumenta el valor objetivo.
    • Establece el valor objetivo para que sea el mismo que el valor de minimalTargetSizeGb.

    Para obtener más información, consulta Limitaciones.

Tamaño de almacenamiento no válido para una réplica

Los siguientes errores pueden producirse cuando intentas ejecutar una operación de reducción de almacenamiento en una réplica y el tamaño de destino solicitado no es válido:

Ejemplo 1

  Cannot shrink storage further for replica INSTANCE_NAME
  because the minimum storage size for a Cloud SQL replica is 10GB.

Si el tamaño de destino solicitado para --storage-size ya es el tamaño mínimo de 10 GB, no puedes reducirlo más.

Para resolver el problema, especifica un tamaño de almacenamiento objetivo que se encuentre dentro de un rango aceptable y vuelve a ejecutar la operación.

Para obtener más información, consulta Limitaciones.

Ejemplo 2

  Cannot shrink storage further for replica REPLICA_INSTANCE_NAME
  because current replica storage size isn't greater than primary instance
  PRIMARY_INSTANCE_ID storage size. If you want to shrink
  both primary and replica instance, please shrink primary instance first.

En ningún momento, una réplica de lectura puede tener una capacidad de almacenamiento menor que su instancia principal asociada. Si deseas reducir la capacidad de almacenamiento de una réplica, primero debes completar una operación de reducción de almacenamiento en su instancia principal asociada.

Para obtener más información, consulta Limitaciones.

Espacio de almacenamiento insuficiente

El siguiente error puede ocurrir cuando intentas establecer el tamaño de reducción del almacenamiento:

  {
    "error": {
      "code": 400,
      "message": "Invalid target storage size TARGET_SIZE. ...",
      "errors": ...
  }

Este mensaje de error puede indicar que no tienes suficiente almacenamiento en la instancia.

Para resolver el problema, sigue estos pasos:

  1. Asegúrate de seguir todos los pasos para reducir el almacenamiento.
  2. Asegúrate de que el tamaño de almacenamiento objetivo sea mayor que el tamaño objetivo mínimo que estableciste anteriormente.

El valor de max_wal_size es demasiado grande

El siguiente error puede ocurrir cuando intentas reducir el tamaño de almacenamiento de una instancia de PostgreSQL:

  {
    "error": {
      "code": 400,
      "message": "Operation not allowed on instance INSTANCE_NAME with max_wal_size = MAX_WAL_SIZE, should be set less than 5120 before disk shrink operation..",
      "errors": ...
  }

Si el valor establecido para la marca max_wal_size es demasiado alto, es posible que la instancia tarde en reiniciarse, lo que provocará que la operación agote el tiempo de espera y falle.

Para resolver este problema, debes actualizar el valor de max_wal_size a menos de 5,128 MB. Para ver un ejemplo de cómo modificar una marca de base de datos, consulta Configura marcas de base de datos.

El siguiente comando es un ejemplo:

  gcloud sql instances patch INSTANCE_NAME \
  --database-flags=max_wal_size=MAX_WAL_SIZE

Reemplaza lo siguiente:

  • INSTANCE_NAME: el nombre de la instancia de réplica.
  • MAX_WAL_SIZE: Es el registro de escritura anticipada máximo que deseas usar.

La reducción del almacenamiento falla después de 10 días

Las operaciones de reducción de almacenamiento agotan el tiempo de espera si persisten durante más de 10 días.

Para resolver el problema, actualiza la CPU de la instancia para reducir el tiempo general de operación.

La reducción del almacenamiento falla con un error interno

Las operaciones de reducción de almacenamiento que no se realicen correctamente pueden mostrar un mensaje que indique un error interno.

Para resolver el problema, comunícate con el equipo de asistencia de Cloud SQL para obtener ayuda.

El comando de reducción de almacenamiento gcloud falla después de 10 minutos

El siguiente error puede ocurrir cuando intentas reducir el tamaño de almacenamiento de una instancia con el comando gcloud sql instances:

  Performing a storage size decrease on a Cloud SQL instance....failed.

Es posible que recibas este mensaje de error si la operación dura más de 10 minutos.

Para resolver el problema, agrega la marca --async al final del comando para esperar la operación de forma asíncrona.

¿Qué sigue?