ストレージ容量の更新に関する問題

このページでは、インスタンス ストレージ容量の削減を試みたときに表示される可能性のある一般的なエラー メッセージについて説明します。

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.
  • リクエストされたターゲット サイズが既存のストレージ サイズに近すぎる場合は、値を変更してオペレーションを再度実行する必要があります。変更オプションには次のものがあります。

    • 目標値を増やします。
    • 目標値を minimalTargetSizeGb 値と同じ値に設定します。

    詳細については、制限事項をご覧ください。

レプリカのストレージ サイズが無効です

レプリカでストレージ縮小オペレーションを実行しようとしたときに、リクエストされたターゲット サイズが無効な場合、次のエラーが発生することがあります。

例 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 フラグを追加して、オペレーションを非同期で待機します。

次のステップ