96 字
1 分钟
PostgreSQL 备份与恢复
2026-01-27

相关文章:PostgreSQL 安装指南 · PostgreSQL 远程访问与数据目录迁移

一、备份与恢复整个数据库#

备份#

# 导出整个集群(所有数据库)
sudo -u postgres pg_dumpall -h localhost -p 5432 -v > /tmp/pg_full_backup.sql

传输到目标服务器#

rsync -avz --progress /tmp/pg_full_backup.sql user@192.168.1.100:/tmp/

恢复#

# 实体 PostgreSQL
sudo -u postgres psql -f /tmp/pg_full_backup.sql
# Docker 容器 PostgreSQL
docker cp /tmp/pg_full_backup.sql postgres:/tmp/
docker exec -i postgres psql -U postgres -f /tmp/pg_full_backup.sql

二、备份与恢复单个表#

备份#

# 备份指定表
sudo -u postgres pg_dump -h localhost -p 5432 \
-d mydb -t users -v > /tmp/users_backup.sql
# 备份时包含 DROP/CREATE 语句(便于重复恢复)
sudo -u postgres pg_dump -h localhost -p 5432 \
-d mydb -t users --clean --if-exists -v > /tmp/users_backup_clean.sql

传输到目标服务器#

rsync -avz --progress /tmp/users_backup.sql user@192.168.1.100:/tmp/

恢复#

NOTE

如果目标表已存在,需要先删除或重命名,否则恢复会报错。

# 实体 PostgreSQL
sudo -u postgres psql -d target_database -f /tmp/users_backup.sql
# Docker 容器 PostgreSQL
docker cp /tmp/users_backup.sql postgres:/tmp/
docker exec -i postgres psql -U postgres -d target_database -f /tmp/users_backup.sql
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

PostgreSQL 备份与恢复
https://blog.olinl.com/posts/postgresql-backup/
作者
顾拾柒
发布于
2026-01-27
许可协议
CC BY-NC-SA 4.0

目录