使用達夢數據庫dmdbchk工具對數據庫進行健康檢查

使用達夢數據庫dmdbchk工具對數據庫進行健康檢查

一、dmdbchk工具作用
dmdbchk工具可以檢查達夢數據庫完整性、正確性,通過對數據庫校驗,檢查內部的物理存儲結構是否正常,對象信息是否合法等。還可以檢測操作系統中殘留的信號量和共享內存,檢測同時予以刪除。
檢驗內容主要有:數據文件合法性檢驗、 索引正確性校驗、對象 ID 合法性校驗、殘留信號量和共享內存。校驗完畢後,dmdbchk 會在當前目錄下(dmdbchk 所在目錄)生成一個名爲dbchk_err.txt 的檢查報告。
二、命令參數
通過help命令,可以查看dmdbchk所有參數含義。
./dmdbchk HELP
顯示結果如下:
PATH dm.ini 絕對路徑或者當前目錄的 dm.ini
DCR_INI dmdcr.ini 的路徑
HELP 打印幫助信息
START_INDEXID 最小檢查索引號
END_INDEXID 最大檢查索引號
CHECK_SEMA 檢查當前系統信號量使用情況(只適用於 LINUX,1:只做檢查 2:檢查並刪除殘留信號量)
CHECK_SHM 檢查當前系統共享內存使用情況(只適用於 LINUX,1:只做檢查 2:檢查並刪除殘留共享內存)
三、具體應用
1.檢驗數據庫
./dmdbchk PATH=/dm8/data/DAMENG/dm.ini START_INDEXID=33555569 END_INDEXID=33555570
生成報告如下:
在這裏插入圖片描述
通過上圖看出,報告內容分爲七部分,分別爲:dmdbchk 版本信息;二開始標誌;三數據文件校驗結果;四索引校驗結果;五對象 ID 校驗結果;六結束標誌;七錯誤總數。
2.檢測信號量
信號量本質是一種數據操作鎖,它本身不具有數據交換的功能,而是通過控制其他的通信資源(文件,外部設備)來實現進程間通信,它本身只是一種外部資源的標識。信號量在此過程中負責數據操作的互斥、同步等功能。
如果殘留的信號量或共享內存個數達到操作系統上限,服務器再次啓動時,會因爲創建信號量或共享內存失敗而無法啓動成功。檢測結果如下圖:
在這裏插入圖片描述
通過操作系統命令檢測信號量使用情況:
在這裏插入圖片描述
兩種方法結果一致,dmdbchk提供的信息更加詳細。
3.檢測共享內存
生成的報告如下圖:
在這裏插入圖片描述
通過操作系統命令檢測系統內存使用情況,得到結果如下,兩者可以相互印證:
在這裏插入圖片描述 dmdbchk工具使用比較簡單,生成的檢驗報告可以作爲數據庫管理員重要參考,在數據庫出現故障時可以作爲排查依據。