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
羽毛球分组比赛记分
小程序二维码

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

小夜