在 CentOS 上备份 PostgreSQL 数据库,一般有两种常见方式:
pg_dump(推荐,最常用)pg_dump -U 用户名 数据库名 > /备份路径/数据库名.sql
示例:
pg_dump -U postgres mydb > /backup/mydb_$(date +%F).sql
-h 主机地址(默认 localhost)
-p 端口(默认 5432)
-F c 自定义格式(压缩)
-f 输出文件
示例(压缩备份):
pg_dump -U postgres -F c -f /backup/mydb.dump mydb
pg_dumpall(备份所有数据库)适合整机迁移或全库备份:
pg_dumpall -U postgres > /backup/all_db.sql
peer authentication failed切换为 postgres 用户:
su - postgres
pg_dump mydb > /backup/mydb.sql
或修改 pg_hba.conf 使用 md5 认证。
crontab -e
每天 2 点备份:
0 2 * * * /usr/bin/pg_dump -U postgres mydb > /backup/mydb_$(date +\%F).sql
⚠️ pgAdmin 实际也是调用 pg_dump
psql -U postgres -d mydb < /backup/mydb.sql
或自定义格式:
pg_restore -U postgres -d mydb /backup/mydb.dump
如果你告诉我:
我可以给你更精确的命令。