PostgreSQL 备份
1 前置检查
# 确认连得上
psql -U <用户名> -h <host> -p 5432 -d <库名> -c "SELECT version();"
能出结果再继续。
2 场景 1:纯 SQL 文本
备份
pg_dump -U postgres -h 127.0.0.1 -p 5432 mydb \> mydb_$(date +%F).sql
文件大小 ≈ 裸数据,压缩可再省 70%:
gzip mydb_2025-09-19.sql # 得到 .gz
恢复
# 1. 建空库(如已存在可跳过)
createdb -U postgres newdb# 2. 导入
psql -U postgres -d newdb -f mydb_2025-09-19.sql
3 场景 2:自定义格式(推荐)
- 体积更小
- 支持只恢复某张表或只恢复数据
备份
pg_dump -U postgres -h 127.0.0.1 -F c -b -v \-f mydb.dump mydb
参数说明
-F c
自定义压缩格式
-b
含大对象
-v
显示进度
恢复整库
pg_restore -U postgres -d newdb -v mydb.dump
只恢复两张表
pg_restore -U postgres -d newdb -t users -t orders mydb.dump