DM-inspect:达梦 DM8 在 DSH 里的只读巡检与 HTML 报告

前言

在 DeepSeek Harness(DSH)里做达梦 DM8 运维时,常见做法是手写 SQL 或脚本逐项查实例、表空间、日志与性能,再整理成文档。步骤分散、口径不统一,也不便于在会话里让智能体直接给出分级结论。下面介绍社区插件 dsh-plugin-dm8-inspect(仓库 Shiyuedong-Jade/DM-inspect):在 DSH Web 侧注册 dm8_inspect 工具,执行 85 项只读巡检,输出 HTML 报告及同目录 JSON,并支持单实例、共享存储集群(DMDSC)与数据守护主备等形态的配置。

维护者为 Shiyuedong-Jade,分类为客户端插件;当前 package 版本为 0.1.2,许可证 MIT。插件目录页:skillhub.cn/plugins/Shiyuedong-Jade/DM-inspect。

这是什么

dsh-plugin-dm8-inspect 是面向达梦 DM8 的 DSH 巡检插件:通过 JDBC 连接目标库(或使用内置 demo 样例),跑固定巡检项集合,不执行任何会改库配置的语句。结果按严重 / 警告 / 正常 / 提示 / 不适用 / 未取到分级,并写入可打开的 HTML 报告。

环境侧需要 Node.js ≥ 20、Java 8+(JDBC 桥接)、自行放置的 DmJdbcDriver8.jar,以及 DeepSeek Harness 0.1.x。

核心功能

巡检项共 85 项,均为查询类 SQL,覆盖:

  • 实例与版本、表空间与数据文件、日志与归档
  • 内存与缓冲池、SQL 性能、对象与统计信息
  • 用户与安全、作业与备份

可选在填写 SSH 账号后,采集数据库服务器 OS 指标:CPU / 内存 / 磁盘 IO、内核参数、达梦日志告警。

部署形态上支持 单实例、DMDSC(设置卡片或 targets 中 2 个及以上节点)、数据守护主备(README 注明 dw.* 相关 5 项尚未真机验证)。

报告与交互方面:表空间使用率可按阈值着色;Top 类项条数可调;每次巡检在同目录生成 HTML + 内容相同的 JSON;报告文件名带时间戳,同目录多次巡检不覆盖。

安装与启用

1. 安装插件

在 DSH Web profile 下执行(命令来自官方 README):

dsh plugin --profile web add github:Shiyuedong-Jade/DM-inspect

从本地目录安装时使用 file: 前缀,且绝对路径不能含空格:

dsh plugin --profile web add file:/path/to/dsh-plugin-dm8-inspect

2. 放置 JDBC 驱动

驱动不随插件分发。将达梦安装目录下的 dmdbms/drivers/jdbc/DmJdbcDriver8.jar 复制到工作目录的 drivers/:

平台 路径
Linux ~/.dsh/dm8-inspect/drivers/
Windows %USERPROFILE%\.dsh\dm8-inspect\drivers\

工作目录默认 ~/.dsh/dm8-inspect,可用插件配置 home 修改;首次加载会自动创建 drivers/、java/、runtime/。

3. 重启 DSH Web

首次安装后重启 dsh web,并刷新已打开的浏览器页面。

典型用法

在会话中调用工具名 dm8_inspect。参数均可省略,目标、账号、口令可在设置卡片中预先填写。

每次调用会出现设置卡片;保存后可在对话中说「巡检一下」触发执行。工具返回分级结论与报告路径。

常用调用参数(节选,完整表见 README):

参数 默认值 说明
targets 卡片中的目标 [{host, port, user, label}],1 个单实例,多个为集群
user SYSDBA 数据库账号
port 5236 端口
driver jdbc demo 为内置样例,不连库
topN 10 Top 类条数,5~50
tsWarnPct / tsCritPct 80 / 90 表空间告警 / 严重阈值(%)
slowSqlMs 1000 慢 SQL 阈值(毫秒)
sshUser / sshPassword — 填写后才做 OS 级检查
outDir <会话工作目录>/dm8-inspect-reports 报告目录

取值优先级:本次调用参数 > 设置卡片 > 凭据库。数据库口令也可通过环境变量 DM8_INSPECT_PASSWORD、DM8_INSPECT_SSH_PASSWORD,或 ~/.dsh/.credentials.yaml 的 refs 引用;直接在参数里传 password 会写入会话日志,官方建议改用卡片或凭据库。

设置卡片按会话隔离,保存在 dsh 进程内存,重启 dsh 后需重新填写。

可在 profile 的 cordis.patch.yml 中为插件写入长期配置,例如工作目录、默认 driver、凭据引用名、阈值与 clusterConcurrency(集群节点并发,默认 3,上限 8)等,详见 README「配置」一节。

适用场景与注意

适合谁:已在用 DSH Web、需要定期或按需对 DM8 做标准化只读健康检查的团队;希望在对话里直接拿到分级结论和 HTML 报告,而不是临时拼 SQL。

权限与安全:插件以当前 dsh 进程权限 运行;安装前应自行审阅 GitHub 源码 与 MIT 许可证。所有巡检 SQL 为只读查询,但连接与 SSH 仍涉及生产凭据,应按内网规范配置凭据库或环境变量。

能力边界(README 原文要点):

  • 连接失败时不生成报告,只返回失败原因。
  • 单实例下「不适用」至少 11 项,对应 DMDSC / 数据守护专项;要覆盖全部 85 项需在卡片中填写 SSH 账号;未填 SSH 时 OS 相关项为「不适用」。
  • 数据守护形态、dw.* 五项未真机验证;DM9、Windows 达梦、ARM、启用归档等环境亦未验证。
  • 报告默认落在会话工作目录,而非 dsh 启动目录。

卸载:

dsh plugin --profile web remove dsh-plugin-dm8-inspect

并删除工作目录(含驱动 jar),Linux 示例:rm -rf ~/.dsh/dm8-inspect。

小结

dsh-plugin-dm8-inspect 把 DM8 的 85 项只读巡检收进 DSH 的 dm8_inspect 工具:配置目标与阈值后,一次调用即可得到分级结论和 HTML/JSON 报告,并兼顾单实例与集群节点列表。DeepSeek Harness 生态以「一切皆插件」为思路,社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;需要细节时以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/Shiyuedong-Jade/DM-inspect
  • GitHub:https://github.com/Shiyuedong-Jade/DM-inspect
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜