DM8 dmdbchk使用手册学习记录
dmdbchk 是 DM 提供的用于检查数据库完整性、正确性的命令行工具。
检验的内容具体包括三方面:
1. 数据文件合法性检验。
数据文件校验只校验数据文件大小。如果数据库文件实际大小大于或等于文件头中记录的大小,则合法。
2. 索引正确性校验。
索引检验包括:普通表 B 树索引校验、LIST 表扁平 B 树索引校验、列存储表索引校验。校验内容具体包括:B 树的层次、层次关系,每层的内部页、叶子页以及页之间的前后链接关系,每个页的页头信息(如页类型等)等。
3. 对象 ID 合法性校验。
对象 ID 校验包括数据库内的所有对象的 ID 检验。对象包括:索引、表、约束、存储过程、模式、同义词、用户等。如果从系统表中查出的对象 ID 小于库的 ID 预留页中记录的该类型对象的下一分配 ID,则合法。因为库的 ID 预留页中记录的是各类型对象下一个新分配对象将使用的 ID,因此若系统表中的对象 ID 大于或等于该 ID,说明库已损坏。
4. 残留信号量和共享内存的检测及删除
一般 Linux 下默认可创建的信号量个数为 128 个,共享内存为 4096 个。
校验完毕后,dmdbchk 会在当前目录下(dmdbchk 所在目录)生成一个名为
dbchk_err.txt 的检查报告,供用户查看。
该工具位于安装目录的/dmdbms/bin 目录下。
使用dmdbchk
dmdbchk 工具需要从命令行启动。找到 dmdbchk 所在安装目录/dmdbms/bin .
1.正常关闭数据库.
2.使用dmdbchk检查.
dmdbchk PATH=/opt/dm8/data/DAMENG/dm.ini
3.查看检查结果
more dbchk_err.txt
-- 查看帮助
dmdbcheck HELP
[dmdba@dm8 dbcheck]$ dmdbchk HELP
[2022-07-28 15:20:57] dmdbchk V8
version: 03134283890-20220525-161267-10045 Pack7
格式: ./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:检查并删除残留共享内存)
[dmdba@dm8 dbcheck]$
查看报告:
更多信息社区地址:https://eco.dameng.com