备份整个群集
$ pg_dumpall -f backup.sql
这在幕后工作,通过为每个数据库多次连接到服务器并在其上执行 pg_dump
。
有时,你可能想要将其设置为 cron 作业,因此你希望将备份的日期视为文件名的一部分:
$ postgres-backup-$(date +%Y-%m-%d).sql
但请注意,这可能会每天生成大型文件。Postgresql 有一个更好的定期备份机制 - WAL 档案
pg_dumpall 的输出足以恢复到配置相同的 Postgres 实例,但 $PGDATA
(pg_hba.conf
和 postgresql.conf
)中的配置文件不是备份的一部分,因此你必须单独备份它们。
postgres=# SELECT pg_start_backup('my-backup');
postgres=# SELECT pg_stop_backup();
要进行文件系统备份,必须使用这些功能来帮助确保在准备备份时 Postgres 处于一致状态。