前言¶
DeepSeek Harness(DSH)的生態核心在於插件化。對於達夢 DM8 數據庫的運維人員來說,缺乏一套結構化的方法來評估數據庫在災難發生後的實際恢復能力是一個常見痛點。DM-recovery 插件旨在填補這一空白,它通過對照恢復場景與實際庫狀態,輸出客觀的恢復能力報告。
這是什麼¶
DM-recovery 是一個達夢 DM8 數據庫可恢復能力評估插件。由 Shiyuedong-Jade 維護,基於 MIT 許可證開源。它不進行修復或掃描,而是通過覈對庫內元數據與(可選的)主機只讀命令,回答“能否恢復到哪一點”以及“需要丟棄哪些數據”的問題。
核心功能¶
插件主要圍繞 16 個恢復場景進行評估,並輸出五檔能力判定:
- 16 個恢復場景:覆蓋邏輯損壞(5 項)、物理損壞(8 項)和集羣容災(3 項)。包括單條記錄誤刪、整表誤 DROP/TRUNCATE、單頁/單文件損壞、控制文件丟失、DMDSC 節點故障等。
- 五檔能力判定:對每個場景判定爲“可恢復”、“僅能粗粒度恢復”、“不可恢復”、“無法判定”或“不適用”。
- 歸檔鏈逐段覈對:驗證歸檔鏈的連續性,檢查未歸檔尾部及可回溯起點。
- 備份可用性覈對:從“賬本(V$BACKUPSET)”到“磁盤位置”,再到“調用方提供的備份路徑”三個維度覈對備份集的可信度。
- DMDSC 支持:支持逐節點核對參數差異、壞頁歸屬及歸檔目錄自足性。
- 可選 SSH 只讀覈驗:在數據庫主機上執行
dmrman CHECK BACKUPSET、日誌掃描和文件查找,獲取庫內查詢無法獲取的壞頁證據。 - HTML 報告與 findings:生成包含場景對照表和結論摘要的 HTML 報告,並附帶
findings.json供機器解析。
安裝與啓用¶
在 DSH 環境中,使用官方插件命令安裝:
dsh plugin --profile web add github:Shiyuedong-Jade/DM-recovery
安裝後,首次運行需重啓 dsh web。由於達夢 JDBC 驅動屬於商業組件,不隨插件分發,需手動放置到工作目錄:
| 平臺 | 路徑 |
|---|---|
| Windows | %USERPROFILE%\.dsh\dm-recovery-readiness\drivers\ |
| Linux | ~/.dsh/dm-recovery-readiness/drivers/ |
確保路徑下有 DmJdbcDriver8.jar 文件。
使用¶
在會話中調用 dm_recovery_readiness 命令。該命令有一個必填參數 action,支持以下 6 種動作:
| action | 說明 |
|---|---|
report |
生成 HTML 報告與 findings.json,這是主產出 |
readiness |
執行處置能力體檢,判斷能否在線修及恢復程度 |
list |
查詢壞頁清單,判斷是否需再次修復 |
triage |
逐頁分診,定位壞頁到具體對象並給出處置路徑 |
backup |
檢查備份可用性,覈對賬本、磁盤與自定義路徑 |
capacity |
檢查歸檔空間參數與回溯窗口 |
基本參數¶
| 參數 | 類型 | 默認值 | 說明 |
|---|---|---|---|
action |
string | 必填 | 指定上述動作之一 |
host |
string | — | 數據庫服務器 IP 或主機名,支持 host:port |
port |
integer | 5236 | 數據庫端口 |
user |
string | SYSDBA | 數據庫賬號 |
targets |
string | — | DMDSC 節點列表,格式 host:port,逗號分隔 |
outDir |
string | 插件工作目錄下 | 報告輸出目錄 |
backupPath |
string | — | backup 動作時,調用方提供的備份位置 |
sshHost |
string | — | 主機側覈驗的數據庫主機 IP,爲空則僅做 JDBC 查詢 |
示例¶
生成一份恢復能力報告:
dm_recovery_readiness report host=10.0.0.61 user=SYSDBA
檢查備份可用性:
dm_recovery_readiness backup host=10.0.0.61 backupPath=/path/to/backup
報告與輸出¶
report 動作會在輸出目錄生成兩個文件:
dm-recovery-<庫名>-<時間戳>.html:包含 16 個場景的對照表、能力彙總和處置建議。dm-recovery-<庫名>-<時間戳>.findings.json:結構化數據,用於自動化處理。
報告默認輸出到插件工作目錄下的 dm-recovery-reports。
安全與權限¶
該插件採用純只讀設計:
- 庫內操作:所有 SQL 均爲查詢語句。
- 主機操作:若配置了 SSH,僅執行三條只讀命令(
dmrman CHECK BACKUPSET、日誌掃描腳本、文件查找)。不執行修復、恢復或修改配置的操作。
適用場景與注意¶
- 適用場景:定期進行恢復能力體檢,評估 DM8 實例在遭遇邏輯或物理損壞時的存活能力,以及 DMDSC 集羣的容災配置合理性。
- 前置依賴:
- Node.js ≥ 20
- Java ≥ 8(用於橋接)
- 需自行提供達夢 JDBC 驅動
DmJdbcDriver8.jar - DeepSeek Harness 0.1.x
- 若需主機覈驗,需
plink(主機密鑰指紋需確認)及手工拷貝的腳本scan-backup-log.sh到數據庫主機。
短結尾¶
DM-recovery 插件爲達夢數據庫運維提供了一套標準化的恢復能力評估手段。通過結構化的場景測試和詳細的 HTML 報告,DBA 可以快速定位歸檔鏈斷裂、備份不可用或集羣配置缺失等關鍵問題。其只讀特性保證了在評估過程中的數據安全性。