SQL数据库巡检核心是将关键健康指标自动化,聚焦可用性(连接成功率、主从延迟、写入响应)、性能(活跃会话、锁等待、慢查询)及数据安全(磁盘空间、碎片率、行数波动)三大刚性维度,通过轻量稳定脚本实现采集、告警与追溯。
SQL数据库巡检不能只靠人工点查,核心是把关键健康指标变成可采集、可告警、可追溯的自动化流程。重点不在“全”,而在“准”——抓住影响可用性、性能和数据安全的刚性指标,用轻量方式持续运行。
这是巡检的第一道防线。不能只看数据库进程是否存活,必须模拟真实业务行为验证端到端可用性。
SELECT 1),失败连续2次立即告警Seconds_Behind_Master,PostgreSQL查pg_replication_slot_advance()或复制积压字节数,阈值建议≤60秒性能问题往往有征兆。避免等业务报障才介入,要提前捕获资源饱和信号和SQL异常模式。
SHOW PROCESSLIST(MySQL)或pg_stat_activity(PG)中state=‘active’的数量,设置动态阈值(如过去1小时均值×2.5)innodb_row_lock_waits(MySQL)或pg_locks中blocked状态会话数,10分钟内≥5次即标记风险数据是底线。容量和一致性问题不会立刻崩溃,但后果严重,必须建立硬性水位线和校验机制。
DATA_FREE / DATA_LENGTH计算,PG用pg_total_relation_size() - pg_table_size(),单表碎片>30%且体积>1GB时列入优化队列COUNT(
*)与前3天均值,偏差>15%自动触发数据一致性快照比对(如MD5聚合校验)脚本不是越复杂越好,关键是能长期无人值守运行,并让问题可定位。
db_health_log),字段含:实例ID、指标名、原始值、状态(OK/WARN/CRIT)、采集时间、告警等级不复杂但容易忽略。真正落地的关键,是把指标和业务影响挂钩——比如“连接失败”对应登录页白屏,“主从延迟”对应订单查询旧数据。巡检不是生成报表,而是守住服务水位线。