首页 > 解决方案 > 重新压缩 PostgreSQL 自定义格式转储文件 -Z 6 到 -Z 9

问题描述

有人可以向我解释如何以自定义格式重新压缩 pgdump 文件而不恢复它吗?

我的解决方法是具有复制功能的主数据库,总共 5 个节点,大小约为 300GB,我使用一个作为从属副本来创建转储文件,使用 -Z 9 大约需要 4 个小时,使用 -Z 6 大约需要 2小时。使用 -Z 9 的问题是它花费了太多时间并且副本变得太落后于主节点,这就是我使用 -Z 6 压缩的原因。我不能再添加一个节点来制作转储文件。

在转储存储上恢复数据库并创建新的转储文件更好的压缩是没有选择的,因为转储存储上用于恢复数据库的资源不足。

我已经尝试使用 bz2 或 7z 压缩 pgdump 文件,但 pgdump 文件的总大小约为 40GB,我得到的差异只有 1 GB。如果我使用 -Z 9 压缩,我得到的 pgdump 文件大小约为 32 GB。

是否有任何选项可以使用 pg_restore 和 pg_dump 并将 -Z 6 压缩的 pgdump 文件重新压缩为 -Z 9 压缩?

标签: postgresqlpg-dumppg-restore

解决方案


我不认为有一种简单的方法可以用更高的压缩率重写 PostgreSQL 转储文件,但是用创建转储-Z 0然后用gzip或类似的东西压缩它呢?

这将pg_dump尽可能快,并且您仍然可以进行压缩。


推荐阅读