Shiyuedong-Jade/DM-inspect ↗★ 0
dsh-plugin-dm8-inspect
达梦 DM8 数据库巡检插件:注册 dm8_inspect 工具,执行 85 项只读巡检并生成 HTML 报告。 适合需要对达梦 DM8 数据库进行一键巡检并生成 HTML 报告的运维人员。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Shiyuedong-Jade/DM-inspect使用
在会话里调用 dm8_inspect。所有参数都可以不填,目标、账号、口令都能在设置卡片里预先填好。
每次调用 dm8_inspect 时会出现一张设置卡片,填好保存后说一句「巡检一下」即可。
工具返回分级结论(严重 / 警告 / 正常 / 提示 / 不适用 / 未取到)和报告路径。报告为 HTML,同目录另存一份内容相同的 JSON。
调用参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
targets | array | 设置卡片中的目标 | [{host, port, user, label}]。1 个为单实例,2 个及以上为集群巡检 |
user | string | SYSDBA | 数据库账号 |
port | integer | 5236 | 数据库端口 |
driver | string | jdbc | jdbc 连真实库;demo 使用内置样例数据,不连库 |
topN | integer | 10 | Top 类巡检项条数,5~50 |
tsWarnPct | integer | 80 | 表空间使用率告警阈值(%) |
tsCritPct | integer | 90 | 表空间使用率严重阈值(%) |
slowSqlMs | integer | 1000 | 慢 SQL 阈值(毫秒) |
queryTimeoutMs | integer | 30000 | 单条 SQL 超时(毫秒) |
sshUser | string | — | 数据库服务器 OS 采集账号,填写后才会执行 |
sshPassword | string | — | 数据库服务器 OS 采集口令 |
outDir | string | /dm8-inspect-reports | 报告目录 |
password | string | — | 数据库口令。会写入会话日志,建议改用设置卡片或凭据库 |
取值优先级:本次调用参数 > 设置卡片 > 凭据库。
配置
设置卡片
| 字段 | 说明 |
|---|---|
| 目标 | 每行一个 host:port。1 个为单实例,2 个及以上为集群巡检 |
| 数据库账号 / 数据库口令 | 默认 SYSDBA |
| SSH 账号 / SSH 口令 | 填写后才会执行数据库服务器 OS 级检查 |
| Top N | Top 类巡检项条数 |
| 慢 SQL 阈值 / 单条 SQL 超时 | 毫秒 |
| 表空间告警阈值 / 表空间严重阈值 | 百分比 |
| 报告目录 | 可选 |
卡片中的值按会话隔离,保存在 dsh 进程内存中,重启 dsh 后需要重新填写。
口令的另外两种来源
环境变量(启动 dsh 前设置):
export DM8_INSPECT_PASSWORD='数据库口令'
export DM8_INSPECT_SSH_PASSWORD='SSH口令'
或写入 ~/.dsh/.credentials.yaml 的 refs,键名同上。
插件配置
写在 profile 的 cordis.patch.yml 中该插件那一行上,也可以在设置界面里修改:
- insert:
- id: dm8-inspect
name: 'dsh-plugin-dm8-inspect'
config:
home: 'D:\dm8-inspect-home' # 工作目录,默认 ~/.dsh/dm8-inspect
driver: 'jdbc'
credentialRef: 'DM8_INSPECT_PASSWORD'
sshCredentialRef: 'DM8_INSPECT_SSH_PASSWORD'
outDir: '' # 默认 /dm8-inspect-reports
topN: 10
tsWarnPct: 80
tsCritPct: 90
slowSqlMs: 1000
queryTimeoutMs: 30000
connectTimeoutMs: 20000
clusterConcurrency: 3 # 集群巡检的节点并发数
| 配置项 | 默认值 | 说明 |
|---|---|---|
home | ~/.dsh/dm8-inspect | 工作目录,其下有 drivers/、java/、runtime/ |
driver | jdbc | 默认巡检驱动 |
credentialRef | DM8_INSPECT_PASSWORD | 数据库口令的凭据名 |
sshCredentialRef | DM8_INSPECT_SSH_PASSWORD | SSH 口令的凭据名 |
outDir | 空 | 报告目录,留空则使用会话工作目录下的 dm8-inspect-reports |
topN | 10 | Top 类巡检项条数 |
tsWarnPct / tsCritPct | 80 / 90 | 表空间使用率阈值(%) |
slowSqlMs | 1000 | 慢 SQL 阈值(毫秒) |
queryTimeoutMs | 30000 | 单条 SQL 超时(毫秒) |
connectTimeoutMs | 20000 | 连接超时(毫秒) |
clusterConcurrency | 3 | 集群巡检的节点并发数,上限 8 |
插件配置
写在 profile 的 cordis.patch.yml 中该插件那一行上,也可以在设置界面里修改:
- insert:
- id: dm8-inspect
name: 'dsh-plugin-dm8-inspect'
config:
home: 'D:\dm8-inspect-home' # 工作目录,默认 ~/.dsh/dm8-inspect
driver: 'jdbc'
credentialRef: 'DM8_INSPECT_PASSWORD'
sshCredentialRef: 'DM8_INSPECT_SSH_PASSWORD'
outDir: '' # 默认 /dm8-inspect-reports
topN: 10
tsWarnPct: 80
tsCritPct: 90
slowSqlMs: 1000
queryTimeoutMs: 30000
connectTimeoutMs: 20000
clusterConcurrency: 3 # 集群巡检的节点并发数
| 配置项 | 默认值 | 说明 |
|---|---|---|
home | ~/.dsh/dm8-inspect | 工作目录,其下有 drivers/、java/、runtime/ |
driver | jdbc | 默认巡检驱动 |
credentialRef | DM8_INSPECT_PASSWORD | 数据库口令的凭据名 |
sshCredentialRef | DM8_INSPECT_SSH_PASSWORD | SSH 口令的凭据名 |
outDir | 空 | 报告目录,留空则使用会话工作目录下的 dm8-inspect-reports |
topN | 10 | Top 类巡检项条数 |
tsWarnPct / tsCritPct | 80 / 90 | 表空间使用率阈值(%) |
slowSqlMs | 1000 | 慢 SQL 阈值(毫秒) |
queryTimeoutMs | 30000 | 单条 SQL 超时(毫秒) |
connectTimeoutMs | 20000 | 连接超时(毫秒) |
clusterConcurrency | 3 | 集群巡检的节点并发数,上限 8 |