PostgreSQL增量备份的最佳方法

Den*_*søe 58 postgresql backup

我目前正在使用pg_dump管道gzip输送到split.但问题是所有输出文件总是被更改.因此,基于校验和的备份始终会复制所有数据.

有没有其他好方法可以执行PostgreSQL数据库的增量备份,从而可以从备份数据中恢复完整数据库?

例如,如果pg_dump可以使所有内容都完全排序,那么所有更改仅应用于转储结束或类似.

int*_*tgr 57

更新: 查看Barman,以便更轻松地设置WAL归档以进行备份.

您可以使用PostgreSQL的连续WAL归档方法.首先,您需要设置wal_level=archive,然后执行完整的文件系统级备份(在发出pg_start_backup()pg_stop_backup()命令之间),然后通过配置archive_command选项复制更新的WAL文件.

好处:

  • 增量,WAL归档包括恢复数据库当前状态所需的一切
  • 几乎没有开销,复制WAL文件很便宜
  • 您可以在任何时间点恢复数据库(此功能称为PITR,或时间点恢复)

缺点:

  • 设置比pg_dump更复杂
  • 完整备份将比pg_dump大得多,因为包含了所有内部表结构和索引
  • 对于大量写入数据库不适用,因为恢复需要很长时间.

有一些工具,如pitrtoolsomn​​ipitr,可以简化设置和恢复这些配置.但我自己没有用过它们.

  • Ping任何更新/更新的发展. (2认同)
  • 从9.1开始,有pg_basebackup - www.postgresql.org/docs/9.4/static/app-pgbasebackup.html.它适用于相同或较旧主要版本的服务器,低至9.1.但是,WAL流模式(-X流)仅适用于服务器版本9.3及更高版本. (2认同)

小智 9

另请查看http://www.pgbackrest.org

pgBackrest是PostgreSQL的另一个备份工具,你应该在它支持时进行评估:

  • 并行备份(测试几乎线性扩展到32个核心,但可能会更远......)
  • 压缩静态备份
  • 增量和差异(压缩!)备份
  • 流式压缩(数据在源处仅压缩一次,然后通过网络传输并存储)
  • 并行,增量恢复(将旧版本更新到最新版本的能力)
  • 完全支持表空间
  • 备份轮换和存档过期
  • 能够恢复由于某种原因失败的备份
  • 等等..