逻辑备份
-F c
)、压缩(gzip
)及选择性备份(如指定表-t
)。pg_dump -U postgres -F c -b -v -f /backup/db_backup.backup mydb
物理备份
--incremental
)和压缩,适用于快速恢复。pg_basebackup -D /backup/full -F t -z -P -h localhost -p 5432 -U postgres
连续归档(PITR)
postgresql.conf
,设置wal_level=replica
、archive_mode=on
,并配置archive_command
(如cp %p /backup/pgarch/%f
)。自动化与定时任务
cron
定期执行备份脚本,如每日凌晨备份:0 1 * * * /usr/bin/pg_dump -U postgres -F c -f /backup/db_$(date +%Y%m%d).backup
。逻辑备份恢复
pg_restore -U postgres -d mydb /backup/db_backup.backup
物理备份恢复
pg_basebackup
恢复全量备份,配合WAL日志实现PITR。sudo systemctl stop postgresql
cp -r /backup/full/* /var/lib/postgresql/版本号/
postgresql.auto.conf
指定restore_command
和恢复时间点,重启服务。误删数据恢复
pg_resetwal
回滚到一致状态点(可能导致部分数据丢失)。参考来源:[1,2,3,4,5,6,7,8,9,10]