通过使用pg_dump进行多个数据库备份

4

有没有可能在单个pg_dump命令中备份多个数据库,而不是为每个数据库运行一个pg_dump命令?


不,这是不可能的。但可以轻松编写批处理文件/Shell脚本来完成此操作。 - user330315
请分享脚本如果您有的话 - user3837299
2
取决于您的操作系统。请参见例如此处此处此处此处此处 - user330315
1个回答

2
看起来可以使用pg_dumpall命令实现。详细信息请参考https://www.postgresql.org/docs/9.6/static/app-pg-dumpall.html

从文档中了解到:

描述

pg_dumpall是一个实用工具,将集群中所有PostgreSQL数据库写入(“dump”)一个脚本文件中。该脚本文件包含可用作psql输入以恢复数据库的SQL命令。它通过调用每个数据库的pg_dump来执行此操作。 pg_dumpall还会转储所有数据库共有的全局对象。(pg_dump不保存这些对象。)目前,这包括有关数据库用户和组、表空间以及适用于整个数据库的访问权限等属性的信息。

由于pg_dumpall从所有数据库读取表格,因此您很可能需要连接为数据库超级用户才能生成完整的转储。此外,您需要超级用户特权才能执行保存的脚本,以允许添加用户和组,并创建数据库。

SQL脚本将写入标准输出。使用[-f|file]选项或shell运算符将其重定向到文件。


2
如果您想避免在集群中备份几个数据库,则此方法无法帮助。 - user3837299
1
这并不完全正确,因为在使用pg_restore时,您可以指定要导入的数据库。 - ZedTuX

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