criticalIntermediateUSE#cloud sql#storage#disk full#autoincrease#quota

Cloud SQL storage auto-grow failed — disk full

gcloud sql instances describe shows dataDiskSizeGb at capacity

Likely source:availabilitydata-loss

Focused incident mode — strips away everything but this runbook.

Symptoms

  • gcloud sql instances describe shows dataDiskSizeGb at capacity
  • Writes fail with 'no space left on device' or transaction log full
  • Cloud SQL console shows Auto-increase storage enabled but disk is full
  • Instance goes read-only or rejects writes intermittently

A full data disk on Cloud SQL turns the instance read-only and can stall writes — grow it before saturation, and treat a lingering resize failure as a manual-action incident, not a wait-for-auto event.

Evidence to grab

Collect these artifacts before you change anything — they prove (or rule out) each cause.

  • Disk usage and auto-increase flag

    gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb,settings.storageAutoResize,settings.storageAutoResizeLimit)'
  • Disk usage metric

    gcloud monitoring time-series list --filter='metric.type="cloudsql.googleapis.com/database/disk/utilization"' --format=json

Diagnostic flow

Run the steps in order, marking each claim confirmed or refuted. The evidence you gather feeds the ranked causes below.

Guided decision tree is ready.

Steps with commands, expected output, and pass/fail branches.

Ranked root causes

Evidence checklist

  • storageAutoResize is true but the disk sits at storageAutoResizeLimit
  • No recent successful resize despite rising usage
  • Console shows the limit message

Confirm before fixing

gcloud sql instances describe <INSTANCE> --format='value(settings.storageAutoResize,settings.storageAutoResizeLimit)'
READ

Check the resize config

Expected: storageAutoResizeLimit set and equal to current size

Fix

gcloud sql instances patch <INSTANCE> --storage-auto-increase-limit=<NEW_LIMIT_GB>
CHANGE

Raise the auto-increase limit so growth can resume

Expected: Updated [<INSTANCE>].

Resolution runbook

Apply from top to bottom after the cause is confirmed. Review every command before running it — risk tags are shown on each.

1
gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb,settings.storageAutoResize,settings.storageAutoResizeLimit)'
READ

Confirm disk full + auto-resize config

2
gcloud sql instances patch <INSTANCE> --storage-size=<LARGER_GB> --storage-auto-increase-limit=<NEW_LIMIT_GB>
CHANGE

Grow the disk and raise the auto-increase cap

3
gcloud sql operations wait <OPERATION_ID>
READ

Wait for the resize operation to complete

4
gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb)'
READ

Verify the new disk size is live

Prevention

  • Set storageAutoResizeLimit high enough to absorb runaway growth.
  • Alert on disk utilization above 80% with a 'disk full' page.
  • Keep WAL/temp growth in check with temp_file_limit for write-heavy workloads.
  • Test failover and restore on a copy to prove recovery before it is needed.

Commands marked READ CHANGE DESTRUCTIVE — never run DESTRUCTIVE commands against production data you cannot restore. Copy → verify → execute.