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
索引与维护¶
- 结合执行计划和真实数据量设计 B-tree、GIN、GiST 等索引。
- PostgreSQL 的 MVCC 会产生失效元组,autovacuum 对空间回收和统计信息至关重要。
- 长事务会阻碍清理,需监控长时间
idle in transaction会话。
备份与高可用¶
pg_dump/pg_restore适合逻辑备份和选择性恢复。- 物理备份与 WAL 归档用于时间点恢复(PITR)。
- 流复制可提供只读副本和故障切换基础,但仍需规划复制槽、延迟和切换流程。
生产环境要设置连接池、备份保留与恢复演练;不要把数据库超级用户凭据写入应用仓库。