一、功能简介
dmdbchk 是 DM 提供的用于检查数据库完整性、正确性的命令行工具。在服务器正常关闭后的脱机情况下,用户可以使用 dmdbchk 对数据库进行校验,包括校验 DM 数据库内部的物理存储结构是否正常,对象信息是否合法等。除此之外,dmdbchk 工具还可以检测并删除操作系统中残留的信号量和共享内存,避免达到操作系统上限后数据库服务无法启动。
检验的内容具体包括以下方面:
- 数据文件合法性检验。
- 索引正确性校验。
- 对象 ID 合法性校验。
- 残留信号量和共享内存的检测及删除。
注意:dmdbchk并不能检查出用户实际数据的正确性,如果数据文件被手动人为修改,正好修改到的是用户数据部分,是检查不出来的。
校验完毕后,dmdbchk 会在当前目录下(dmdbchk 所在目录)生成一个名为dbchk_err.txt 的检查报告,供用户查看。
该工具位于安装目录的/dmdbms/bin 目录下。
二、使用dmdbchk
dmdbchk 工具需要从命令行启动。找到 dmdbchk 所在安装目录/dmdbms/bin,输入dmdbchk 和参数后回车。参数在下文介绍。
注意:dmdbchk 工具不同的参数用法也不同,如果是校验数据库的参数,则要求必须是经过初始化,且正常关闭的数据库,才能被 dmdbchk 工具校验,否则 dmdbchk 会报错退出。
例如,正常关闭/home/test/dmdbms 目录下数据库后,使用 dmdbchk 对数据库进行校验。
./dmdbchk PATH=/home/test/dmdbms/dm.ini
如果 dm.ini 在 dmdbchk 当前目录,也可以写成这样:
./dmdbchk PATH=dm.ini
甚至是这样:
./dmdbchk dm.ini
三、查看dmdbchk参数
dmdbchk 使用简单灵活。用户可使用dmdbchk help
快速查看dmdbchk版本信息以及参数用法。
./dmdbchk HELP
[2021-12-22 15:37:20] dmdbchk V8
version: 1-2-101-21.12.16-153499-10000-ENT
格式: ./dmdbchk KEYWORD=value
例程: ./dmdbchk path=/opt/dmdbms/bin/dm.ini
关键字 说明
-----------------------------------------------------------------------------
PATH dm.ini 绝对路径或者当前目录的 dm.ini
DCR_INI dmdcr.ini 的路径
HELP 打印帮助信息
START_INDEXID 最小检查索引号
END_INDEXID 最大检查索引号
CHECK_SEMA 检查当前系统信号量使用情况(只适用于 LINUX,1:只做检查 2:检查并删除残留
信号量)
CHECK_SHM 检查当前系统共享内存使用情况(只适用于 LINUX,1:只做检查 2:检查并删除残
留共享内存)
四、dmdbchk报告解读
dmdbchk 校验的过程对用户不可见,校验的结果以报告的形式呈现给用户。
dmdbchk 校验数据库的报告内容分为七部分:
- 一 dmdbchk 版本信息;
- 二开始标志;
- 三数据文件校验结果;
- 四索引校验结果;
- 五对象 ID 校验结果;
- 六结束标志;
- 七错误总数。
该文章摘自达梦数据库官方文档,详细内容可访问官方文档查看。
官方文档地址
https://eco.dameng.com/document/dm/zh-cn/pm/dm8-dmdbchk-manual.html