前言¶
在 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