生产环境部署与高可用
了解生产部署规范
掌握主从复制基础原理
了解日常运维规范
核心讲解
(1)生产部署规范
系统配置
关闭透明大页、调整文件句柄数
独立磁盘挂载数据目录
关闭不必要的服务
安全配置
修改默认端口
限制访问 IP
强密码策略
最小权限原则
监控告警
监控连接数、QPS、慢查询、磁盘、内存
异常告警
备份:定时备份,定期验证
(2)主从复制
原理:主库写 WAL 日志,从库重放 WAL,实现数据同步
作用:读写分离、高可用、故障转移、负载均衡
模式:
流复制:实时同步,常用
逻辑复制:表级复制,灵活
架构:一主一从、一主多从
(3)日常运维
查看连接数:
SELECT count(*) FROM pg_stat_activity;查看慢查询
杀死慢 SQL
膨胀检查、VACUUM
日志巡检
定期备份验证
(4)高可用方案
基础:主从 + 手动切换
自动切换:Repmgr、Patroni
分布式:Citus
操作示例
-- 常用运维SQL
-- 1. 查看总连接数
SELECT count(*) FROM pg_stat_activity;
-- 2. 查看活跃连接
SELECT * FROM pg_stat_activity WHERE state = 'active';
-- 3. 查看运行超过1分钟的SQL
SELECT pid, now()-query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active' AND now()-query_start > interval '1 min'
ORDER BY duration DESC;
-- 4. 终止慢SQL
SELECT pg_terminate_backend(进程PID);
-- 5. 查看表大小
SELECT
relname,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM pg_stat_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
-- 6. 查看数据库大小
SELECT pg_size_pretty(pg_database_size('school_db'));
常见误区
主从不延迟:网络、大事务都会导致延迟,要监控延迟
从库可以写:默认从库只读,写会报错,读写分离要走主库写
有备份就万无一失:备份 + 高可用 + 监控,多重保障
上线前不压测:生产环境上线前一定要压测,知道性能瓶颈
课后练习
查看你的数据库当前连接数和活跃连接
查看数据库和各表的大小
了解主从复制的搭建步骤
思考:生产环境为什么需要主从架构?

