哪种pgdump格式对于小存储空间和快速恢复是最好的?

5

这是我第一次尝试使用PostgreSQL备份(db dumps),我一直在研究不同的pgdump格式,其他pgdump选项和pgdumpall。对于一个Postgres初学者来说,他希望每小时备份两个数据库(将覆盖以前的备份),这些数据库包含表触发器,并且每个db中有两个不同的模式(schema),那么要轻松实现以下目标的备份格式和选项有哪些:

  1. 小文件大小(每个数据库单个文件或选择要还原的数据库)
  2. 易于作为干净的数据库恢复(有/无相同的数据库名称)
  3. 易于在不同的服务器上还原(用户可能不同)
  4. 恢复时禁用触发器,并在恢复后重新启用。

请提供备份和还原的示例命令。

欢迎提出任何有用的pgdump/pgrestore建议。


永远不要禁用触发器 - 它们无论如何都不会影响备份,但如果您禁用它们,您的数据库可能会变得不一致。不要覆盖先前的转储 - 总是保留多个备份。 - Tometzky
2个回答

3
这个命令将创建一个小的dmp文件,其中只包含数据库的结构 - 表、列、触发器、视图等等。(这个命令只需要几分钟)
pg_dump -U "dbuser" -h "host" -p "port" -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname

**ex:** pg_dump -U thames -h localhost -p 5432 -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname

这个命令将备份完整的数据库。
pg_dump -h localhost -U "dbuser" "dbname" -Fc > "pathfilename.backup"

**ex:** pg_dump -h localhost -U thames thamesdb - Fc > "thamesdb.backup"

并且用于恢复的方法是:

pg_restore -i -h localhost -U "user" -d "dbname" -v "dbname.backup"

**ex:** pg_restore -i -h localhost -U thames -d thamesdb -v "thamesdb.backup"

备份所选表格(使用正则表达式)这里

pg_dump -t '(A|B|C)'

要获取完整的详细信息,您可以访问pgdump帮助页面,那里有很多选项可供选择。


-3
如果你想每小时进行备份,我认为你应该使用日志归档而不是pg_dump。

你能否详细解释一下,使用日志归档进行备份和恢复需要做什么? - thames
@jjanes 如果您能解释一下,那就太好了。 - Mani Deep
我认为我无法比文档做得更好:http://www.postgresql.org/docs/current/static/continuous-archiving.html - jjanes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接