PostgreSQL 备份恢复与流式复制 - 精简版

第一部分:备份与恢复

一、备份方案对比

备份类型工具特点
逻辑备份pg_dump、pg_dumpall可跨版本、可选单表、速度较慢
物理备份pg_basebackup速度快、恢复快、必须整库恢复

二、逻辑备份

2.1 pg_dump 常用命令

# 切换用户
su - postgres

# 备份单表(COPY 格式,推荐)
pg_dump itheima -t users > /tmp/users.sql

# 备份单表(INSERT 格式,兼容性好)
pg_dump itheima -t users --inserts > /tmp/users.sql

# 备份多个表
pg_dump itheima -t users -t projects > /tmp/users_projects.sql

# 备份单库
pg_dump itheima > /tmp/itheima.sql

# 备份为二进制格式(推荐,只能用 pg_restore 恢复)
pg_dump -Fc itheima -f /tmp/itheima.dump

# 备份时压缩
pg_dump itheima | gzip > /tmp/itheima.gz

# 备份全部库
pg_dumpall > /tmp/all.sql

# 排除指定库
pg_dumpall --exclude-database='db1' -f /tmp/all.sql

# 远程备份
pg_dump -h 192.168.50.213 -U postgres itheima -t users > /data/user.sql

2.2 pg_dump 常用选项

选项说明
-h主机名或 IP
-p端口号
-U用户名
-W提示输入密码
-Fc二进制压缩格式(推荐)
-Fp纯文本 SQL
-t指定表名
--inserts使用 INSERT 导出

2.3 逻辑恢复

# 恢复纯文本 SQL(必须先创建数据库)
psql -c 'create database itheima;'
psql -X itheima < /data/pgdata/itheima.sql

# 恢复压缩文件
cat /data/pgdata/itheima.sql.gz | gunzip | psql itheima

# 恢复二进制格式(推荐)
psql -c 'drop database itheima;'
psql -c 'create database itheima;'
pg_restore -d itheima /data/pgdata/itheima.dump

命令作用:

执行结果:

关键参数:

注意事项:


**关键参数:**

**注意事项:**




**主库写入:**

);

从库验证:

---------+--------------+------------ 1 | 研发A项目 | 2026-03-01 2 | 市场B项目 | 2026-03-01 3 | 财务系统升级 | 2026-03-15



**主库查看:**
---------+----------------+------------+-----------

从库查看:

----------+----------------+-----------------


**判断标准:** 主库 `state=streaming` + 从库 `status=streaming` = 主从正常