在 CentOS 上,PgAdmin 本身只是一个 PostgreSQL 的管理工具,真正的备份是备份 PostgreSQL 数据库。下面分几种常见情况说明。
Servers → 你的服务器 → Databases → 要备份的数据库
Custom 或 Plain(推荐 Custom,恢复更灵活)/tmp/mydb.backup注意:PgAdmin 运行在本地或服务器上,备份文件会生成在 PgAdmin 所在机器。
pg_dump -U postgres -h localhost mydb > mydb.sql
或自定义格式(推荐):
pg_dump -U postgres -F c -b -v -f mydb.backup mydb
pg_dumpall -U postgres > all_db.sql
pg_dump -U postgres mydb | gzip > mydb.sql.gz
crontab -e
示例(每天 2 点备份):
0 2 * * * /usr/bin/pg_dump -U postgres mydb | gzip > /backup/mydb_$(date +\%F).sql.gz
psql -U postgres -d mydb < mydb.sql
pg_restore -U postgres -d mydb mydb.backup
postgres 用户有写备份目录权限command not found,先安装:yum install postgresql
-h 参数-j(并行):pg_dump -j 4 -F d -f /backup/mydb_dir mydb
如果你愿意,可以告诉我:
我可以给你更精确的方案。