PostgreSQL实用程序
pgtricks的Python项目详细描述
此包包含两个备份PostgreSQL数据库转储的工具。
pg_dump_splitsort
pg_dump_splitsort是一个方便的脚本,用于预处理postgresql的 pg_dump输出,使其更适合在版本中扩散和存储 控制。
用法:
pg_dump_splitsort <filename>.sql
脚本将转储拆分为以下文件:
0000_prologue.sql:
第一份之前的所有内容
0001_<schema>.<table>.sql
:
:
NNNN_<schema>.<table>.sql:
复制按第一个字段排序的每个表的数据
9999_epilogue.sql:
上次复制后的所有内容
表数据的文件是编号的,因此 文件可用于重新创建数据库:
$ cat *.sql | psql <database>
我发现一个很好的方法来快速查看转储之间的差异是
在整个目录上使用meld
工具:
$ meld old-dump/ new-dump/
将转储存储在版本控制中还可以看到 差异。下面是如何将git配置为在diff中使用颜色:
# ~/.gitconfig [color] diff = true [color "diff"] frag = white blue bold meta = white green bold commit = white red bold
注意:如果已经创建/删除/重命名表,请记住删除所有
.sql
在后处理新转储之前的文件。
pg_增量备份
pg_incremental_backup脚本
- 使用pg_dump 生成数据库转储
- 使用pg_dump_splitsort
- 创建更改或将更改提交到包含转储的本地git存储库中
- 将更改推送到远程存储库
用法:
pg_incremental_backup [-h] [--output-dir OUTPUT_DIR] database [remote] positional arguments: database remote optional arguments: -h, --help show this help message and exit --output-dir OUTPUT_DIR, -o OUTPUT_DIR