如果 Cloud SQL 实例的存储空间容量大于应用所需容量,您可以手动将存储空间容量缩减为较小的大小。
主实例和读取副本实例均支持存储空间缩减操作,并且所有 Cloud SQL 版本均提供此功能。
存储空间容量要求
目标存储空间大小必须大于为确保实例安全而确定的最低允许存储空间容量。
为确保性能稳定,我们建议为某些操作(例如重新编制索引)预留一定的存储容量。我们建议预留大约 100 GB 或当前使用量的 20% 或更多空间,以较大者为准。
如需了解详情,请参阅责任共担。
性能
存储空间缩减操作可能会影响实例性能。Cloud SQL 使用配有永久性存储磁盘的 Compute Engine 虚拟机。Hyperdisk Balanced 提供的存储可线性扩缩,并提供可预测的性能。
如需了解详情,请参阅配额和固定限制。
停机时间
缩减存储空间的操作需要实例停机;操作完成后,实例会重启。
根据基础磁盘的大小,存储空间缩减操作可能会导致相当长的停机时间。如果您的实例需要有限的停机时间,我们建议您使用 Database Migration Service 将数据迁移到新的较小实例,而不是使用存储空间缩减功能。
缩小实例存储空间时发生的停机时间与恢复读取副本时发生的停机时间相当。
运维
在存储空间缩减操作完成之前,所有其他操作均不可用。
建议您等待其他操作完成后,再运行存储空间缩减操作。这包括备份或导入数据等操作。
必须先在主实例上完成存储空间缩减操作,然后才能在读取副本上应用缩减操作。
读取副本的存储空间容量在任何时候都不能小于其关联的主实例。如果您想缩减副本的存储容量,则必须先对其关联的主实例完成存储缩减操作。
共享核心实例不支持存储空间缩减操作。不过,您可以将应用设置更改为非共享核心实例,然后执行存储空间缩减操作。
副本
如果您缩小主实例的存储空间大小,则其副本仍会具有更大的磁盘。如果您想减小副本的存储空间大小,则必须手动执行此操作。
如果对主实例应用了存储空间缩减操作,则随后创建的任何只读副本都会应用与更新后的主实例相同的存储空间配置。
如果主实例及其关联的读取副本使用不同的数据库版本,并且对副本应用了存储空间缩减操作,则重新创建的副本会更新到主数据库版本,以确保副本成功重启。
- 虽然可以使用存储空间缩减操作来缩减使用读取池的主实例的存储空间,但您无法对读取池应用存储空间缩减操作。
您无法查看读取副本的最低存储容量。此功能仅适用于主实例。不过,您可以缩小只读副本的存储空间容量,使其与关联的主实例的存储空间容量保持一致。
读取副本的存储空间容量在任何时候都不能小于其关联的主实例。
限制
此功能存在以下限制:
- 不支持从外部服务器复制。
- 对于 PostgreSQL 实例,
max_wal_size数据库标志必须小于 5128 MB。
- 存储空间缩减操作无法应用于级联副本。
- 不支持使用 Terraform。