【巡检实战】一套命令巡检 Oracle+MySQL+TiDB+主机,check 四合一工具实测
Lv.1 新人创作者
日常巡检是 DBA 的必修课,但主机、Oracle、MySQL、TiDB 各查各的,指标要手工看、报告要手工拼,周末加班也做不完。我用 WPS 灵犀写的 check 巡检工具,把系统、Oracle、MySQL、TiDB 四种检查整合到一个入口,一条命令跑完 371 项检查、自动生成 Word 报告——实测 4 套环境只用了 6 分 32 秒。
为什么巡检总在加班
每个 DBA 都逃不过巡检,但痛点很现实:
· 检查太分散:主机用 SSH、Oracle 用 sqlplus、MySQL/TiDB 用各自的客户端,四套工具、四套账。
· 报告靠手工:指标看完要一条条抄进 Word,格式不统一、还容易漏项。
· 经验难沉淀:老 DBA 该看哪些指标、阈值定多少,全在脑子里,新人接手无从下手。
一句话让灵犀写个四合一巡检工具
我把需求直接丢给灵犀:
“帮我做一个巡检工具,把系统、Oracle、MySQL、TiDB 四种检查整合到一个入口。用 Python 写,连主机用 paramiko 和 pywinrm,连数据库用 python-oracledb 和 pymysql,检查完自动生成 Word 巡检报告。”
灵犀就把整个工具搭出来了:系统检查用 SSH/WinRM/DockerExec,Oracle 支持 11g/19c,MySQL 支持单机/主从/MGR,TiDB 支持 v6.5/v7.5/v8.1,还带 GUI 和命令行两个入口。
实操三步走
第一步:配置连接
新建一份 config.json(或者在 GUI 里填),写清要巡检的主机和数据库实例:
{
"targets": [
{"name": "主机-192.168.200.200", "type": "system", "host": "192.168.200.200", "conn": "ssh"},
{"name": "Oracle-RAC", "type": "oracle", "host": "192.168.200.201", "port": 1521, "sid": "ORCLCDB"},
{"name": "MySQL-MGR", "type": "mysql", "host": "192.168.200.202", "port": 3306},
{"name": "TiDB-v75", "type": "tidb", "host": "192.168.200.203", "port": 4000}
]
}
第二步:下达巡检指令
命令行一条命令跑全套:
python check_cli.py --config config.json
(或者打开 check_qt.py 图形界面,勾选要巡检的类型,点“开始巡检”。)
第三步:一键出报告
巡检跑完自动生成 Word 报告,每类检查的指标、阈值判定、异常高亮都排好版,直接能发给领导。
一次巡检测出了什么(实测数据)
我拿一套混合环境跑了一次:
· 覆盖范围:1 套 Oracle RAC(11g+19c)、1 套 MySQL 主从 + MGR、1 套 TiDB v7.5、3 台主机
· 检查项:371 项(系统 88 + Oracle 122 + MySQL 90 + TiDB 71)
· 耗时:6 分 32 秒
· 报告大小:约 78KB Word 文档
结果里抓出 3 条预警:
· Oracle 表空间 USERS 使用率 92%(阈值 85%)
· MySQL 主从延迟 3.2 秒(阈值 2 秒)
· 主机 /data 磁盘使用率 85%(阈值 80%)
对比我手工巡检:以前四套环境挨个连、指标挨个抄,少说要一两个小时;现在一条命令 6 分 32 秒跑完,报告还自带阈值判定,漏项几乎不可能。
核心要点总结
· 四合一:系统 + Oracle + MySQL + TiDB 一个入口,不用再来回切换工具。
· 自动报告:巡检完直接出 Word,阈值判定 + 异常高亮,交给领导就能用。
· 经验可复用:把老 DBA 的检查项和阈值写进插件,新人照着跑就行。
▲ 图1:check 巡检工具命令行运行效果
▲ 图2:巡检报告异常与预警汇总