备份整个群集

$ pg_dumpall -f backup.sql

这在幕后工作,通过为每个数据库多次连接到服务器并在其上执行 pg_dump

有时,你可能想要将其设置为 cron 作业,因此你希望将备份的日期视为文件名的一部分:

$ postgres-backup-$(date +%Y-%m-%d).sql

但请注意,这可能会每天生成大型文件。Postgresql 有一个更好的定期备份机制 - WAL 档案

pg_dumpall 的输出足以恢复到配置相同的 Postgres 实例,但 $PGDATApg_hba.confpostgresql.conf)中的配置文件不是备份的一部分,因此你必须单独备份它们。

postgres=# SELECT pg_start_backup('my-backup');
postgres=# SELECT pg_stop_backup();

要进行文件系统备份,必须使用这些功能来帮助确保在准备备份时 Postgres 处于一致状态。