sql数据库 巡检须聚焦安全与性能两大维度:安全类查弱密码、过度授权、明文敏感信息及备份加密;性能类盯 CPU/内存占用 、慢查询、阻塞链和日志增长;需 自动化 脚本、监控告警与健康档案闭环管理。

SQL 数据库定期巡检不是“有空看看”,而是通过标准化检查项,提前发现隐患、预防故障、保障业务连续性。核心围绕 安全底线 和性能水位 两大维度展开,关键在“可量化、可追踪、可告警”。
一、安全类必查指标(防未然)
安全漏洞往往不爆发于高负载时,而藏在配置疏忽与权限失控中:
- 弱密码与默认账户 :检查
sa、root等高危账户是否仍用默认口令或简单密码(如123456、password),建议用 SQL 脚本批量查询密码策略启用状态及过期时间; - 过度授权用户 :筛选拥有
db_owner、sysadmin等高权限但近 90 天无登录 / 操作记录的账号,及时回收或降权; - 明文敏感信息 :扫描建表语句、存储过程、注释中是否硬 编码 密码、密钥、身份证号等,可用正则匹配 + 脱敏规则识别;
- 备份加密与传输安全 :确认全量备份是否启用 TDE(透明 数据加密)或备份压缩加密,远程备份链路是否强制ssl/TLS。
二、性能类高频指标(控水位)
性能问题多由缓慢积累导致,需盯住“资源瓶颈点”和“SQL 质量洼地”:
- CPU 与内存持续占用 >85%:非峰值时段也超阈值?需结合
sys.dm_os_performance_counters查sqlserver:Resource Pool Stats定位争用池; - 慢查询 TOP 10(执行时间 >3s 或逻辑读 >10 万页):用扩展 事件(XEvent)或 Query Store 自动捕获,重点分析缺失索引、参数嗅探、大字段 LOB 操作;
- 阻塞链深度 ≥3 层或持续 >30 秒 :通过
sys.dm_exec_requests+blocking_session_id实时抓取,检查长事务、未提交更新、锁升级是否开启; - 日志文件自动增长频次 > 5 次 / 天:说明日志预分配不足,易引发 VLF 碎片,应按业务峰值预设合理初始大小并禁用小步增长(如每次 1MB)。
三、巡检自动化建议(省人力)
手工查几十个视图效率低且易遗漏,推荐轻量落地方式:
- 用 T -SQL 写巡检脚本,输出 html 报告(含红 / 黄 / 绿状态标识),每日凌晨自动执行并邮件推送;
- 将关键指标(如阻塞数、缓存命中率、备份成功率)接入zabbix/prometheus,设置动态基线告警(非固定阈值);
- 对 SQL Server,启用 Query Store 并设置自动清理策略(如保留 30 天),它本身就是最可靠的性能“黑匣子”;
- 每次巡检后更新《数据库健康档案》,记录异常项、处理动作、责任人和闭环时间——这是追责与复盘的唯一依据。
四、容易被忽略但很关键的细节
很多事故源于“看起来正常”的配置: