达梦数据库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”快速查看参数用法。
如下图所示:
| |
|
|
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工具功能较为强大,通过选择配置不同的参数,可以解析不同的日志对象,并生成用户所期望的解析结果,为数据库管理运维人员进行故障处理提供了便利。