Update from Sync Service
This commit is contained in:
149
wiki/AI工程/DBCheck数据库巡检工具研究.md
Executable file
149
wiki/AI工程/DBCheck数据库巡检工具研究.md
Executable file
@@ -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 等)
|
||||
Reference in New Issue
Block a user