fastdbchkrep 起源于我不想整理巡检报告的惰性需求,特意弄的一个工具。
经历了3个多月的功能开发和展示优化,目前已经满足了我的需求。
感兴趣的同学们也来一起尝试下。
github:https://github.com/iop07695432/fastdbchkrep

FastDBCheckRep
数据库巡检报告生成工具 - 让 DBA 专注于数据库分析而非报告格式化
📖 项目概述
核心定位
FastDBCheckRep 是一款数据库巡检和报告生成的工具包,旨在为数据库管理员(DBA)提供自动化、专业化的数据库健康检查和报告生成服务。
解决的问题
在企业级数据库管理领域,传统的数据库巡检工作面临以下挑战:
- 数据收集复杂性:需要从多个系统层面(操作系统、数据库实例、存储等)收集大量指标数据
- 报告格式化耗时:DBA 需要花费大量时间将技术数据转换为业务可读的专业报告
- 一致性难以保证:手工报告容易出现格式不统一、遗漏关键信息等问题
- 可视化要求提升:现代企业对数据可视化和图表展示的要求越来越高
核心理念
让 DBA 专注于数据库分析而非报告格式化
- 自动化数据收集 → 解析 → 报告生成 → PDF 导出全流程
- 标准化、专业化的报告输出,便于项目交付验收
- 高质量的图表和可视化输出
目标用户
- 数据库管理员(DBA)
- 运维工程师
- 技术咨询公司
- 需要定期生成数据库巡检报告的企业
目标用户
- 数据库管理员(DBA)
- 运维工程师
- 技术咨询公司
- 需要定期生成数据库巡检报告的企业
✨ 功能特性
已完整实现的功能
Oracle 数据库支持(✅ 完整实现)
- 单机模式(ONE):支持 Oracle 11g、12c、19c 非多租户版本
- RAC 模式:支持 2-4 节点 Oracle RAC 集群
- 自动合并多节点报告
- 图片路径自动重写
- 节点一致性验证
- AWR 报告处理:高保真 HTML 截图(支持按 summary 文本灵活匹配截取 AWR 各章节)
- 性能监控图表:CPU、内存、磁盘 I/O 趋势图(Matplotlib 生成)
MySQL 数据库支持(✅ 完整实现)
- 单机模式(ONE):完整的 MySQL 巡检数据解析
- 独立解析器:专用的 MySQL 元数据解析器
SQL Server 数据库支持(🚧 部分实现)
- 版本支持:2005、2008、2012、2014、2016、2017、2019
- 直接 TXT 解析:跳过 JSON 中间层,简化流程
- 智能版本检测:通过版本字符串和提示语双重判断
- 当前状态:解析器和报告生成器已实现,持续优化中
技术亮点
🎨 AWR HTML 截图解决方案(里程碑级创新)
- 高保真截图:使用 Playwright 实现 AWR 报告的高质量截图
- 自动化处理:无需手工截图和裁剪
- 图片压缩优化:Pillow 压缩至 <200KB
- 技术价值:将 AWR 报告处理时间从小时级降低到分钟级
📊 性能监控图表生成
- CPU 使用率趋势图:user/system/iowait/idle 多维度展示
- 内存使用率图表:双 Y 轴(百分比 + GB)
- 磁盘 I/O 趋势图:读写性能可视化
- 高质量输出:300 DPI,适合打印和展示
🔄 RAC 多节点支持
- 支持 2-4 节点(不仅限于 2 节点)
- 自动合并节点报告
- 图片路径自动重写
- 节点一致性验证
📦 二进制分发支持
- PyInstaller 打包,无需 Python 环境即可运行
- Playwright 浏览器可打包到二进制中
- 适合客户现场部署