diff --git a/wiki/AI工程/DBCheck数据库巡检工具研究.md b/wiki/AI工程/DBCheck数据库巡检工具研究.md new file mode 100755 index 0000000..fd3ea36 --- /dev/null +++ b/wiki/AI工程/DBCheck数据库巡检工具研究.md @@ -0,0 +1,149 @@ +# DBCheck — 开源跨平台数据库巡检工具研究 + +> 来源: https://mp.weixin.qq.com/s/tR4FpYFnfi6vFmPgoNSUuA +> 研究日期: 2026-05-05 + +## 项目概览 + +- **名称**: DBCheck +- **GitHub**: https://github.com/fiyo/DBCheck.git +- **官网**: https://dbcheck.top +- **许可证**: MIT +- **定位**: 开源跨平台数据库巡检工具,一键生成专业巡检报告 + +## 支持的数据库 + +| 数据库 | 连接资源 | 缓存性能 | 查询效率 | 日志 | 安全 | 集群 | +|--------|----------|----------|----------|------|------|------| +| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ | — | +| SQL Server | ✅ | ✅ | ✅ | ✅ | ✅ | — | +| 达梦 DM8 | ✅ | ✅ | ✅ | ✅ | ✅ | — | +| TiDB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Oracle | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | + +## 解决的三大痛点 + +| 痛点 | 说明 | DBCheck 方案 | +|------|------|-------------| +| **重复劳动** | 50 套库 × 20 分钟 = 16 小时 | 一键自动,3 分钟出报告 | +| **标准不一** | 不同 DBA 巡检质量差异大 | 内置 130+ 标准化规则 | +| **历史缺失** | 无法判断趋势 | 自动保存快照,趋势折线图 | + +## 系统架构 + +``` +用户交互层 +├── CLI 模式(自动化脚本/CI/CD) +├── Web UI 模式(Flask + 原生 JS) +└── 编程接口(Python 模块 import) + +核心调度层 +├── checkdb() 总入口 +├── APScheduler 定时调度 +└── SSH 隧道支持 + +数据库适配层 +├── main_mysql.py +├── main_pg.py +├── main_sqlserver.py +├── main_dm.py(达梦) +└── main_tidb.py + +分析引擎层 +├── analyzer.py(130+ 规则引擎) +├── slow_query_analyzer.py(慢查询分析) +└── AI 诊断模块(Ollama 本地) + +输出层 +├── Word 报告(python-docx) +└── Web UI 可视化报告 +``` + +## 核心功能 + +### 1. AI 智能诊断 + +- **本地部署 Ollama**,数据零出站,满足等保合规 +- 建议包含:问题描述 + 可执行 SQL + 操作影响 + 优先级标注 +- **安全约束**:硬编码仅允许 localhost,无法被配置绕过 + +### 2. 130+ 条标准化检查规则 + +覆盖维度: +- 连接资源(连接数使用率、连接堆积) +- 缓存性能(Buffer Pool 命中率) +- 查询效率(全表扫描、慢查询) +- 日志与告警(错误日志、归档日志空间) +- 安全审计(弱密码、权限过剩) +- 复制/集群(主从延迟、Region 均衡) + +### 3. 历史趋势分析 + +- 每次巡检快照自动存入 `history.json`(SQLite 版本规划中) +- Web UI 折线图展示关键指标历史变化 +- 支持任意时间段对比 + +### 4. 慢查询深度分析 + +- 解析慢查询日志,提取 Top 20 慢 SQL +- 执行 EXPLAIN 模拟,识别全表扫描、索引缺失 +- 自动生成建议创建的索引 SQL + +### 5. RAG 知识库(进阶功能) + +- 支持格式:PDF、Markdown、TXT、HTML +- 检索增强生成,让 AI 建议更精准 + +### 6. 定时巡检 + 多渠道告警 + +- 基于 APScheduler,支持标准 Cron 表达式 +- 企业微信/钉钉/邮件通知 + +## 快速上手 + +```bash +# 方式一:源码运行 +git clone https://github.com/fiyo/DBCheck.git +cd DBCheck +pip install -r requirements.txt +python web_ui.py +# 访问 http://localhost:5000 + +# 方式二:下载可执行文件 +# Windows: DBCheck.exe +# Linux: DBCheck-Linux-x64 +# macOS: DBCheck-macOS-x64 +``` + +## 技术栈 + +| 组件 | 技术 | +|------|------| +| 后端 | Python + Flask | +| 报告生成 | python-docx | +| 定时任务 | APScheduler | +| AI 诊断 | Ollama(本地 LLM) | +| 前端 | 原生 JS(无重型框架) | +| 数据持久化 | history.json → 规划 SQLite | + +## 开源理念 + +- MIT 许可证,商用/修改/分发自由 +- 所有检查 SQL、AI Prompt、报告逻辑全部开源可审计 +- 功能路线图由社区投票决定 +- 参与方式:Star / Issue / PR + +## 项目评价 + +**优点**: +- ✅ 解决真实痛点,实用性强 +- ✅ 多数据库支持,国产达梦也在列 +- ✅ AI 诊断本地部署,安全合规 +- ✅ 架构清晰,模块化设计 +- ✅ 零重型前端依赖,部署极简 + +**可改进**: +- 🔧 历史数据目前用 JSON,建议尽早切 SQLite +- 🔧 Web UI 较简单,可考虑 Vue3/Element Plus 升级 +- 🔧 可增加更多数据库(MongoDB、Redis 等)