达梦数据库dmlcvt日志分析工具简介

 达梦数据库dmlcvt日志分析工具简介

 

学习达梦数据库有一段时间了,对达梦数据库有了一定的了解。今天主要介绍一下达梦日志分析工具dmlcvt工具,由于数据库归档日志和重做日志无法直接进行查看分析,我们在实际应用中有时需要对它们进行分析时,就需要专门的工具了,dmlcvt则是分析它们的利器。

一、dmlcvt 工具主要作用

dmlcvt 是 DM 提供的用于解析、修改日志文件的工具,包括联机日志文件和归档日志文件。当意外情况导致系统故障或者介质故障时,需要通过日志文件进行分析、恢复。此时管理员可以使用日志解析工具 dmlcvt,通过指定日志文件类型和路径从日志文件中获取详细的日志信息,分析系统故障原因。可以用日志解析工具 dmlcvt 获取到如下日志信息:日志文件信息、物理事务(ptx)信息、事务对应的记录信息、页信息、警告信息和错误信息。

通常 dmlcvt 解析日志需要指定读入的日志文件类型、具体路径以及结果输出路径等。

指定日志文件路径有四种方式:

1.指定归档目录,程序会解析目录下所有归档日志文件

2.指定单个归档日志文件,程序只解析指定的归档日志文件

3.指定单个联机日志文件,程序只解析指定的联机日志文件

4.指定 dm.ini 文件,程序会解析 dm.ini 中指定的控制文件找出所有联机日志文件

使用 dmlcvt 的前提条件是目标数据库要处于关闭状态。dmlcvt 工具会对第一种方式(指定 dm.ini 文件)做检测,保证数据库处于关闭状态;其他三种情况均由用户负责检测。

最终结果会以文件报告的形式给出,存放在输出路径下。不同操作生成的报告有所不同,所有可能的报告分别为 file_infoxxx.txt、page_infoxxx.txt、rec_infoxxx.txt、warn_infoxxx.txt 和 ref_pagesxxx.txt,其中 xxx 是文件后缀,从 000 开始。

二、dmlcvt参数详解

dmlcvt 使用简单灵活。用户可使用“dmlcvt HELP”快速查看参数用法。

如下图所示:

 

 

 

 

达梦数据库dmlcvt日志分析工具简介

 

 

F_TYPE 和 F_PATH 为必选参数,必须成对使用,其他参数为可选参数,辅助使用。

1.F_TYPE必选参数,表示读入的日志文件类型。与 F_PATH 配合使用,可选值为 1、2、3、4。

当F_TYPE值为1时,F_PATH 必须指向归档目录。分析归档目录下的归档日志;

当F_TYPE值为2时, F_PATH 必须指向某个归档文件。分析指定的单个归档日志;

当F_TYPE值为3时, F_PATH 必须指向单个联机日志文件。分析指定的单个联机日志;

当F_TYPE值为4时,F_PATH必须指向文件dm.ini。可以不必以.ini结尾。分析完整的联机日志。

2.F_PATH必选参数,对应 F_TYPE 的路径。

3.OP_TYPE可选参数,操作类型,对应不同的 F_TYPE。F_TYPE 和 OP_TYPE 组合不同,操作也不同。OP_TYPE 取值和说明请见下表。OP_TYPE 默认值为 1。

4.REC_LEVEL可选参数,打印日志内容级别。当且仅当 OP_TYPE=1 时有效。可选值为 1、2、3,默认为 3。

REC_LEVEL值为1,表示仅打印 ptx 信息。ptx 信息是物理事务信息。

REC_LEVEL值为2,表示仅打印 rec 信息。rec 信息是物理事务对应的记录信息。

REC_LEVEL值为3,表示打印 ptx 和 rec 信息。

5.REC_DATA可选参数,是否打印 rec 数据(以 16 进制显示)。当且仅当 OP_TYPE=1 时有效。布尔类型,可选值:0、1、2。默认为 0。 0:不打印 rec 数据,1:打印所有类型 rec 数据,2:仅打印数字类型的 rec 数据。

一条完整的日志记录包含 rec 信息和 rec 数据两部分。rec 信息是指表空间号、文件号、页号等;rec 数据指的是实际日志数据。

6.PAGE_INFO可选参数,是否打印页信息,即是否生成 page_infoxxx.txt 并将页信息打印到page_infoxxx.txt 报告中。布尔类型,可选值:1 是,0 否。默认为 1。

7.OUT_PATH可选参数,输出文件路径,默认输出到当前路径下。不能为 ASM 路径。生成报告文件,会先删除已经存在的同名文件,再重新创建,建议为空,若不为空,则给出选择是否继续。输出文件夹中可能包含 5 文件。其中:xxx 为文件序号,如 rec_info000.txt 为 REC信息的第一个文件。前两个报告所有操作都会生成,后面三个报告符合条件才会生成。

5 个文件详细介绍如下:

file_infoxxx.txt:执行过程中的操作信息、文件信息等。

warn_infoxxx.txt:执行过程中的警告信息和错误信息。

rec_infoxxx.txt:RREC 记录信息。当 OP_TYPE=1 时才生成。

 page_infoxxx.txt:日志页信息。当 OP_TYPE=1 且 page_info=1(或默认)时才生成。

ref_pagesxxx.txt:收集到的数据页(group_id/file_id/page_no)记录。当 F_TYPE=4 且 OP_TYPE=4 生成。

8.OUT_SIZE可选参数,单个输出文件最大大小。取值范围:32~128,单位 M,默认为 128。当一个文件大小达到 OUT_SIZE 指定大小后,继续生成下一个。例如,page_info000.txt、page_info001.txt......以此类推。

9.LSN_START可选参数,指定日志 LSN 值,表示从该 LSN 开始打印或者截断到该 LSN。取值1~9223372036854775807。LSN_START 的使用如下:

当 OP_TYPE=1 时,为可选参数。表示从该 LSN 开始打印日志。默认从日志中第一个 lsn 开始。

当 F_TYPE=2 , OP_TYPE=2 时 , 必 须 指 定 。 截 断 归 档 日 志 文 件 到 指 定LSN(LSN_START)。

当 F_TYPE=2,OP_TYPE=4 时,必须指定。拷贝从指定 LSN(LSN_START)开始的归档文件内容到指定的输出目录(OUP_PATH)中自动新建的归档文件。

当 F_TYPE=4,OP_TYPE=4 时,必须指定。找出指定 LSN(LSN_START)开始的REDO 日志中涉及的数据页号。

当 F_TYPE=4 , OP_TYPE=5 时 , 必 须 指 定 。 截 断 REDO 日 志 到 指 定LSN(LSN_START)。

10.LSN_END可 选 参 数 , 指 定 的 结 束 LSN 。 当 且 仅 当 OP_TYPE=1 时 有 效 。 取 值1~9223372036854775807,默认直到最后一个 lsn 结束。

11.ARCH_SEQ可选参数。截断归档日志文件到指定日志页序号。当且仅当 F_TYPE=2,OP_TYPE=3时有效。取值 1~9223372036854775807,默认未指定。若指定小于归档文件的起始页 SEQ 或者大于等于归档文件结束页 SEQ,则不执行截断。

12.PTX_COUNT可选参数,总共打印多少 ptx。当且仅当 OP_TYPE=1 时有效。取值范围:1~9223372036854775807,缺省不限制打印 ptx 个数。

13.F_OFFSET可选参数,文件偏移,仅适用于单个指定联机日志文件的记录打印操作,即当 F_TYPE=3时有效。只解析指定文件偏移之后的日志。取值范围:1~9223372036854775807。默认不使用指定偏移,从归档文件的起始位置开始。

若指定偏移小于日志文件头(4096),则取起始偏移;若大于日志文件长度,则报错。

若不以 512 对齐,则调整 512 对齐,并取模值作为日志页内偏移。但若指定 CALC_OFF,则若 F_OFFSET 不以 512 对齐,则报错。

14.DB_MAGIC可选参数,用于查找指定库的归档日志。仅用于指定归档目录,当且仅当 F_TYPE=1 时有效。默认不指定。若未指定,但存在多个库归档日志,则给出选择提示。取值范围:

1~2147483647

15.CALC_OFF可选参数,在指定了 F_OFFSET 时,是否再计算有效日志页(rpag)偏移。如果未指定的 F_OFFSET,则忽略 CALC_OFF。可选值:1 是,0 否。默认 1。

因为指定的 F_OFFSET 并不一定是有效的 redo 日志页偏移,指定了 CALC_OFF 参数后,工具会根据指定的 F_OFFSET 计算出有效的 rpag 偏移。

16.TS_ID:可选参数,指定表空间 ID,打印此表空间 REC。当且仅当 OP_TYPE=1 时有效。取值范围:0~32767。不使用此参数时,默认打印所有表空间的 REC;当使用此参数时,只能指定一个表空间ID,只打印此表空间 REC。

17.FILE_ID:可选参数,指定文件 ID,打印此文件的 REC。当且仅当 OP_TYPE=1 时有效。取值范围:0~32767。不使用此参数时,默认解析所有文件的 REC;当使用此参数时,只能指定一个文件 ID,只解析文件 ID 为指定值的文件 REC。

18.PAGE_NO:可选参数,指定页号,打印指定数据页页号的 REC。当且仅当 OP_TYPE=1 时有效。取值范围:0~2147483647。

不使用此参数时,默认解析数据库中所有页的 REC;当使用此参数时,只能指定一个页号,只解析页号为指定值的页的 REC。

19.REC_TYPE:可选参数,指定记录类型,只打印指定的记录类型。当且仅当 OP_TYPE=1 时有效。

当不指定此参数时,打印全部记录类型;若指定此参数,则只能指定某一种记录类型。

20.DCR_INI:可选参数。指定 dmdcr.ini 访问路径。 当归档文件在 ASM 上时使用。若指定,则执行DCR 初始化;否则,不执行。默认不指定。

21:DM_INI:可选参数。指定与归档文件或者联机日志文件匹配的 dm.ini 的路径。即当 F_TYPE=3或访问归档文件为加密日志时必须指定。对于日志版本号为 0x7002 之前的归档日志,如果未指定 DM_INI,则作为非加密日志处理,若结果出错或执行异常,可重新指定 DM_INI 再次执行;对于日志版本号在为 0x7002及以后的归档日志,自动判断是否为加密日志,若是,在必须指定 DM_INI。联机日志访问建议指定 DM_INI,若未指定,则给出提示是否继续。

22.RAC_SEQNO:可选参数。专门用于 RAC 环境。RAC 环境目标节点号。取值范围 0~15。默认不指定,当做单站点处理,对于 RAC 环境,则取当前站点。当 F_TYPE=1 和 4 时使用,其他忽略。

23.IGNORE_CRC:可选参数,用于指明在日志转换校验过程中是否忽略日志页 CRC 校验。可选值:0 不忽略;1 忽略,默认为 0。

24.HELP:查看帮助信息。

通过上面介绍可以看出来,达梦提供的dmlcvt工具功能较为强大,通过选择配置不同的参数,可以解析不同的日志对象,并生成用户所期望的解析结果,为数据库管理运维人员进行故障处理提供了便利。