有没有可能在单个pg_dump命令中备份多个数据库,而不是为每个数据库运行一个pg_dump命令?
有没有可能在单个pg_dump命令中备份多个数据库,而不是为每个数据库运行一个pg_dump命令?
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运算符将其重定向到文件。