跳转至

PostgreSQL

功能完善的关系型数据库。运维重点包括 SQL/索引、WAL、备份恢复、复制、VACUUM 和连接管理。

日常检查

-- 当前连接与运行中的查询
SELECT datname, usename, state, query
FROM pg_stat_activity;

-- 数据库与表大小
SELECT pg_size_pretty(pg_database_size(current_database()));
SELECT pg_size_pretty(pg_total_relation_size('public.example_table'));

-- 查看索引定义
\d+ public.example_table

索引与维护

EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM public.example_table WHERE email = 'user@example.com';
  • 结合执行计划和真实数据量设计 B-tree、GIN、GiST 等索引。
  • PostgreSQL 的 MVCC 会产生失效元组,autovacuum 对空间回收和统计信息至关重要。
  • 长事务会阻碍清理,需监控长时间 idle in transaction 会话。

备份与高可用

  • pg_dump/pg_restore 适合逻辑备份和选择性恢复。
  • 物理备份与 WAL 归档用于时间点恢复(PITR)。
  • 流复制可提供只读副本和故障切换基础,但仍需规划复制槽、延迟和切换流程。

生产环境要设置连接池、备份保留与恢复演练;不要把数据库超级用户凭据写入应用仓库。