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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中模拟按键?   尽管元素存在,但HtmlUnit中的java ElementNotFoundException   在Java中,长双精度并发写入不是原子的吗?   java如何在另一个对象数组中打印对象的int值?   java在显示或更改视图后执行一些代码   java JFR:读取时发生OutOfMemoryError。jfr文件   java Android助手检查是否购买   java这种设计模式的好处是什么?   Weblogic 10.3中针对托管服务器的java部署问题   java如何获取字符串。在编译时投诉的格式   声明字符串数组时发生java错误   java JPA在多个并行线程中从表中删除时发生死锁   java Android:在按钮动画之后启动活动   java并发与JMS主题在春季   使用Lucene spatial search/DateRangePrefixTree进行java日期范围查询?   java可选接口问题   JavaDbUnit没有在每个方法之后清洗和插入数据库,所以测试不是独立的   java在IAIK PKCS11包装器中一对私钥和证书如何匹配?