Skip to content

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.02

4️⃣ 连接数控制(事故高发点)

sh
max_connections = 100   # 常见生产值

5️⃣ 权限最小化

  • 禁止应用用 superuser
  • 禁止直接 DROP SCHEMA
  • 读写分离账号

6️⃣ 监控

工具推荐:

  • pg_stat_statements
  • Prometheus + Grafana

至少监控:

  • 磁盘使用率
  • WAL 增长速度
  • 活跃连接数
  • 慢查询

开启 慢 SQL

sql
log_min_duration_statement = 500