我们有一个 PostgreSQL 数据库,它的大小最近显着增长,在过去的几个月里从大约 340GB 增加到 571GB,我们没有跟踪在那段时间用户行为的任何重大变化。我们的主要 DBA 提出了一些建议,他的主要建议是导出整个数据库,然后重新导入它,根据他在从我们的主数据库克隆的第二台服务器上的测试,这需要大约 3 小时的停机时间,并获得大小降到只有 300GB。
我关心的两个主要领域是找出这种显着增长的来源(使用 du -h 我至少可以看到它在 /data 目录中,表空间或 pg_wal 没有显着增长),并了解如何导入和导出该数据库可以为我们带来将近 300GB 的空间恢复,而不会实际丢失任何生产数据。