【巡检实战】一套命令巡检 Oracle+MySQL+TiDB+主机,check 四合一工具实测

绝学无忧
绝学无忧 Lv.1 新人创作者

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:巡检报告异常与预警汇总

河北省
浏览 26
收藏
2
分享
2 +1
+1
全部评论