postgresql - 重新压缩 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 压缩?
解决方案
我不认为有一种简单的方法可以用更高的压缩率重写 PostgreSQL 转储文件,但是用创建转储-Z 0
然后用gzip
或类似的东西压缩它呢?
这将pg_dump
尽可能快,并且您仍然可以进行压缩。
推荐阅读
- javascript - insertRow 后无法按 ID 删除表行
- c++ - 有没有办法用本机 C++ 代码替换 Windows API Timer (SetTimer)?
- php - 如何在 GamemakerStudio 2 中使用 http_post_string 将数据发送到 mySQL 数据库?
- vb.net - PInvoke FormatMessage Message ByRef lpBuffer As [String] 什么都不是
- design-patterns - 标记接口有什么好处?
- java - java hdfs客户端是否需要core-site.xml和hdfs-site.xml进行连接?
- codeigniter-3 - 在 Codeigniter 视图中显示文件夹中的所有图像
- c# - rx.net 中的背压问题
- cordova - 构建失败,无法读取未定义的属性“拒绝”
- sql - 在sql中将季度数转换为月份名称