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