全库问题统一排查是指利用标准化脚本,对数据库中所有 Schema 内的表、索引、视图、存储过程、约束、权限等对象进行一次全面“体检”,主动发现隐藏的稳定性与性能隐患,避免逐一巡查的遗漏。通常安排在业务低峰期或变更窗口执行,整个过程围绕以下检查维度展开:
- 失效对象
查询 DBA_OBJECTS 中状态为 INVALID 的对象(如视图、包体、触发器)。失效对象往往由基表结构变更引起,需立即重新编译或修复源码,防止调用时中断。
- 表与索引碎片
通过统计行链/行迁移、索引高度和空闲空间比例,识别碎片化严重的表和索引。对碎片表可在线重定义或执行 SHRINK;索引碎片超标时,可采用重建(REBUILD)方式恢复性能。
- 统计信息过期
检查 DBA_TAB_STATISTICS 中 STALE_STATS='YES' 的表,过期的统计信息会让优化器误判数据量,生成低效执行计划。应及时收集这些表的统计信息,或设定自动收集策略。
- 索引健康状况
识别重复/冗余索引、UNUSABLE 状态的索引以及长期不用的索引。重复索引浪费磁盘与写入开销,无效索引会导致相关 SQL 报错,需确认后清理或修复。
- 约束与触发器
确认所有外键约束的被引用表正常、无禁用后需要启用的约束,同时检查触发器是否仍然有效、是否存在级联副作用影响核心交易。
- 空间容量
核对表空间使用率,对于开启自动扩展的数据文件,检查剩余空间和上限,防止因空间满导致应用挂起;归档日志目录也需同步检查。
- 备份有效性
校验 RMAN 或手动备份的完整性,确认最近一次备份可用且归档日志无断裂,做一次模拟恢复演练更为保险。
- 安全合规项
快速筛查默认账户、弱口令、权限过高的用户,以及敏感对象的审计设置是否满足合规要求,排除越权风险。
实施方式:将上述检查项整理成一套统一的 SQL 脚本集,定时运行并输出为检查报告。每次排查发现的问题要录入跟踪记录,按严重等级排定修复计划。全库排查通常由 DBA 每周或每月执行一次,与日常监控联动,实现从被动报警到主动预防的闭环管理。