postgresql 2
🔹 ① 逻辑备份(防误操作)
- 工具:pg_dump
- 作用:
- 防止 DROP TABLE / DELETE / 误更新
- 跨版本恢复
sh
pg_dump -Fc mydb > mydb_$(date +%F).dump🔹 ② 物理备份 + WAL(防硬件/系统崩溃)
- 工具:
- pg_basebackup
- 或 pgBackRest(生产首选)
- 作用:
- PITR(时间点恢复)
- 整库秒级恢复
conf
wal_level = replica
archive_mode = on
archive_command = 'cp %p /backup/wal/%f'3️⃣ 自动清理与膨胀控制
PG 没有自动回收空间(MVCC):
sql
SHOW autovacuum;配置
conf
autovacuum = on
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.024️⃣ 连接数控制(事故高发点)
sh
max_connections = 100 # 常见生产值5️⃣ 权限最小化
- 禁止应用用 superuser
- 禁止直接 DROP SCHEMA
- 读写分离账号
6️⃣ 监控
工具推荐:
- pg_stat_statements
- Prometheus + Grafana
至少监控:
- 磁盘使用率
- WAL 增长速度
- 活跃连接数
- 慢查询
开启 慢 SQL
sql
log_min_duration_statement = 500