Files
chill_notes/wiki/AI工程/DBCheck数据库巡检工具研究.md
2026-05-05 13:27:16 +08:00

150 lines
4.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.py130+ 规则引擎)
├── 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 等)