更新存储空间容量时出现问题

本页面介绍了在尝试减少或缩减实例存储容量时可能会收到的常见错误消息。

C4A 和 N4 机器类型的存储空间缩减失败

尝试对 C4A 或 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.

C4A 和 N4 机器类型使用 Google Cloud Hyperdisk,可让用户调整磁盘吞吐量和 IOPS 值。如果您尝试将磁盘大小缩小到配置的吞吐量和 IOPS 值无效的程度,则磁盘缩小操作会失败并返回错误。

在此示例错误消息中,请求的实例 IOPS 值大于新的小磁盘最大 IOPS 值,因此操作失败。

如需解决此问题,请根据机器的 Google Cloud Hyperdisk 限制重新计算要使用的目标存储空间大小,然后再次运行存储空间缩减操作。

读取池的操作失败

当您尝试在读取池上运行任何与存储空间缩减相关的操作时,会发生以下错误:

示例 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.

读取池或读取池节点不支持存储空间缩减操作。

示例 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.

您无法检查读取池、读取池节点或副本的存储空间缩减配置。

不过,您可以查看关联的主实例的可用存储容量

无法查看取消状态

尝试检查存储空间缩减操作的取消请求的状态时,可能会发生以下错误:

  {
    "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"
  }

如需解决此问题,请按以下步骤操作:

  1. 此错误消息可能表示取消请求即将完成。请在几分钟后再次尝试查看操作状态。
  2. 如果您仍然收到相同的错误消息,请与 Cloud SQL 支持团队联系以获取帮助。
  3. 成功后,系统将返回如下所示的消息:

    {
      "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"
    }
    

存储空间缩小失败

尝试运行存储空间缩减操作时,可能会发生以下错误:

  There is a pending blocking operation for instance: INSTANCE_NAME

此错误消息可能表示另一项操作仍在运行,例如:

  • 备份操作
  • 导入操作
  • 实例上之前执行的存储空间缩减操作
  • 与您要修改的读取副本关联的主实例上仍有存储空间缩减操作在运行

如需解决此问题,请等待上一个操作完成。

如果之前的 IMPORT 操作卡住,请与 Cloud SQL 支持团队联系,请求帮助取消该操作。

如需了解详情,请参阅限制

主实例的存储空间大小无效

当您尝试在主实例上运行存储空间缩减操作,但请求的目标大小无效时,可能会出现以下错误:

示例 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.
  • 所请求的目标大小必须大于或等于实例允许的最小存储空间大小。

    如需解决此问题,请指定更大的目标存储空间大小,然后再次运行该操作。

    如需了解详情,请参阅限制

示例 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.
  • 请求的目标大小过小。如果为 --storage-size 请求的目标大小已达到 10 GB 的最小值,则无法进一步缩小。

    如需解决此问题,请指定更大的目标存储空间大小,然后再次运行该操作。

    如需了解详情,请参阅限制

示例 3

  ERROR: (gcloud.sql.instances.perform-storage-shrink) argument --storage-size: VALUE
  must be greater than or equal to 10GB; received: SIZE
  • 如果为 --storage-size 请求的目标大小过小,请在主实例上运行以下命令,以获取允许的最小存储容量:

    gcloud sql instances get-storage-shrink-config PRIMARY_INSTANCE_NAME
    

    响应包含 minimalTargetSizeGb 的值。您可以将此值用于 --storage-size 参数,然后再次运行该操作。

示例 4

  Invalid target storage size SIZE. Target storage
  size should be smaller than present storage size CURRENT_SIZE.
  • 如果 --storage-size 的请求目标大小过大,则表示该值大于主实例的当前存储空间大小,您需要使用较小的值。

    如果您想使用更大的磁盘,请先修改实例,然后再试一次。

示例 5

  Requested storage size is too close to current storage usage, request storage
  size should be minimum SIZEGB.
  • 如果请求的目标大小与现有存储空间大小过于接近,则需要修改该值并再次运行该操作。修改选项包括:

    如需了解详情,请参阅限制

复制品的存储空间大小无效

当您尝试对副本运行存储空间缩减操作,但请求的目标大小无效时,可能会出现以下错误:

示例 1

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

如果 --storage-size 的请求目标大小已达到 10 GB 的最小值,则无法进一步缩小。

如需解决此问题,请指定可接受范围内的目标存储空间大小,然后再次运行该操作。

如需了解详情,请参阅限制

示例 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.

读取副本的存储空间容量在任何时候都不能小于其关联的主实例。如果您想缩减副本的存储容量,必须先对其关联的主实例完成存储缩减操作。

如需了解详情,请参阅限制

存储空间不足

尝试设置存储空间缩小大小时,可能会出现以下错误:

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

此错误消息可能表示实例上的存储空间不足。

如需解决此问题,请按以下步骤操作:

  1. 请务必遵循所有存储空间缩减步骤。
  2. 确保目标存储空间大小大于您之前设置的最小目标大小。

max_wal_size 值过大

尝试缩小 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": ...
  }

如果为 max_wal_size 标志设置的值过高,则实例可能需要很长时间才能重启,导致操作超时并失败。

如需解决此问题,您需要将 max_wal_size 值更新为小于 5128 MB。如需查看有关如何修改数据库标志的示例,请参阅配置数据库标志

以下命令是一个示例:

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

替换以下内容:

  • INSTANCE_NAME:副本实例的名称。
  • MAX_WAL_SIZE:您要使用的预写日志上限。

存储空间缩小在 10 天后失败

如果存储空间缩减操作持续时间超过 10 天,则会超时。

如需解决此问题,请升级实例的 CPU 以缩短总运行时间。

存储空间缩小失败,并显示内部错误

不成功的存储空间缩减操作可能会返回一条消息,指示存在内部错误。

如需解决此问题,请与 Cloud SQL 支持团队联系以寻求帮助。

存储空间缩小 gcloud 命令在 10 分钟后失败

尝试使用 gcloud sql instances 命令缩小实例的存储空间大小时,可能会出现以下错误:

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

如果操作持续时间超过 10 分钟,您可能会收到此错误消息。

如需解决此问题,请在命令末尾添加 --async 标志,以异步等待操作完成。

后续步骤