云 SQL的磁盘大小比实际数据库大很多

4

Cloud SQL 报告我使用了约 4TB 的 SSD 存储,但我的数据库只有约 225GB。这个差异是怎么解释的?我能删除一些内容以释放空间吗?如果我将其移到另一个实例,所需的存储空间会减少吗?


这可能受到许多因素的影响。你使用的数据库引擎是什么(postgres、mysql或其他)?从那里开始,我们需要检查是否有很多未被清理的死元组。 - kucing_terbang
1
这是Postgres数据库,我已经在所有表上运行了VACUUM FULL,但它并没有改变GCP SQL概述报告的存储量。 - Matt Durrant
嗯...我猜这可能是因为一个toast表的大小。你能否执行 vacuum full verbose analyze table_name 并将输出放在这里? - kucing_terbang
2个回答

1

关于为什么您的Cloud SQL存储增加了,有几个可能的选项:

- 您是否启用了时间点恢复?PITR使用预写日志,如果您启用了此功能,那可能是您增加存储的原因。

- 您是否使用了临时表并且没有删除它们?

如果以上都不适用于您,我强烈建议您向GCP支持团队开案例,以便他们查看您的Cloud SQL实例。

另一方面,您应该打开一个案例来将磁盘大小减小到更小的值,这样就不需要创建新实例并将所有数据复制到该新实例中,此外,缩小磁盘是在Google端完成的,使您的工作量最小化。

可以安排维护窗口,Google可以在其中执行此任务,您可能希望安排维护窗口以最小化停机时间的影响。对于此案例,需要知道新磁盘的大小以及您何时想执行此操作。

最后,如果您想使用迁移方法,您应该导出数据库,然后创建新实例,导入数据库,并将旧实例与新实例同步,以使两个实例中的所有数据都完整。这些步骤可能需要数小时才能完成。

0

您没有指定数据库的类型。在我的情况下,对于MySQL数据库,有几百GB的二进制日志(mysql标志)。 您可以使用以下命令进行检查:

SHOW BINARY LOGS;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接