注册
dmlcvt工具使用
技术分享/ 文章详情 /

dmlcvt工具使用

阳春白雪 2022/06/09 1608 0 0

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

可以用日志解析工具 dmlcvt 获取到如下日志信息:
日志文件信息
物理事务(ptx)信息
事务对应的记录信息
页信息
警告信息和错误信息
通常 dmlcvt 解析日志需要指定读入的日志文件类型、具体路径以及结果输出路径等。

指定日志文件路径有四种方式:
一、指定归档目录,程序会解析目录下所有归档日志文件
二、指定单个归档日志文件,程序只解析指定的归档日志文件
三、指定单个联机日志文件,程序只解析指定的联机日志文件
四、指定 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步骤:

[dmdba@dm1 bin]$ ./dmlcvt help
version: 03134283890-20220304-158322-10045
格式: ./dmlcvt  KEYWORD=value
例程: ./dmlcvt  F_TYPE=4 F_PATH=/opt/dmdbms/data/DAMENG/dm.ini OUT_PATH=/opt/temp 

关键字              说明(默认值)
--------------------------------------------------------------------------------
F_TYPE              必选,表示读入的日志文件类型,与F_PATH配合使用
                    1 F_PATH必须指向归档目录
                    2 F_PATH必须指向某个归档文件
                    3 F_PATH必须指向单个联机日志文件
                    4 F_PATH必须指向文件dm.ini
                    5 F_PATH必须指向ptx->log组成的二进制文件
                    6 F_PATH必须指向从内存中dump出来的rpkg->data文件
                    7 F_PATH必须指向从内存中dump出来的buf_ctl->page文件
                        f_type=7 f_path=/xxx/24272.dat out_path=/xxx/24272 rec_data=1 desc_file=/xxx/desc.txt n_napp_flds=6 rowid_off=12
F_PATH              必选,对应F_TYPE的路径 
                    当F_TYPE = 6:
                       1.gdb dump memory /tmp/x.log begin_addr end_addr
                       2.dmlcvt f_type=6 f_path='/tmp/x.log' out_path='/tmp/log_analyse' rec_data=1
OP_TYPE             可选,操作类型,对应不同的F_TYPE.
                    当F_TYPE = 1:
                       1 打印日志内容,默认值
                    当F_TYPE = 2:
                       1 打印日志内容,默认值
                       2 截断归档日志文件到指定LSN(LSN_START)
                       3 截断归档日志文件到SEQ(ARCH_SEQ)
                       4 拷贝从指定LSN(LSN_START)开始的归档文件内容到指定的输出目录(OUT_PATH)中自动新建的归档文件
                       5 调整归档文件元信息
                       6 通过归档日志构造数据页
                            f_type=2 f_path=/xxx/arch/x.log out_path=/xxx/arch/36121 op_type=6 ts_id=4 file_id=0 page_no=36121 rec_data=1
                    当F_TYPE = 3:
                       1 打印联机日志内容,默认值
                    当F_TYPE = 4:
                       1 打印日志内容,默认值
                       2 调整当前CKPT到最近的一个合法位置
                       3 调整当前CKPT到最老的一个合法位置
                       4 找出指定LSN(LSN_START)开始的REDO日志中涉及的数据页号
                       5 截断REDO日志到指定LSN(LSN_START)
REC_LEVEL           可选,打印日志内容级别,可选值为1,2,3,默认为3
                       1 仅打印ptx信息
                       2 仅打印rec信息
                       3 打印ptx和rec信息
REC_DATA            可选,打印rec数据类型,可选值为0,1,2,默认为0
                       0 不打印rec数据
                       1 打印所有类型的rec数据
                       2 仅打印数据类型的rec数据
PAGE_INFO           可选,是否打印页信息,bool型,可选值 1/0,默认为1
OUT_PATH            可选,输出文件路径,默认为当前路径,并包含以下文件: rec_infoxxx.txt, page_infoxxx.txt, file_infoxxx.txt, warn_infoxxx.txt 
                       F_TYPE=4并且OP_TYPE=4,则包含ref_pagesxxx.txt 
OUT_SIZE            可选,输出文件最大大小,单位(M),最小32,最大1024,默认为128
LSN_START           可选,从该lsn开始打印
LSN_END             可选,直到该lsn结束打印
ARCH_SEQ            可选,截断到的归档日志页序号
PTX_COUNT           可选,总共打印多少ptx
F_OFFSET            可选,文件偏移,仅对单个日志文件有效,即当F_TYPE=3或者F_TYPE=2且OP_TYPE=1时有效 
PMNT_MAGIC          可选,库的perment magic值,仅对归档目录有效,即当F_TYPE=1时有效 
DB_MAGIC            可选,库的db magic值,仅对归档目录有效,即当F_TYPE=1时有效 
TS_ID               可选,指定表空间id
FILE_ID             可选,指定文件id
PAGE_NO             可选,指定页号
REC_TYPE            可选,指定记录类型
DCR_INI             可选,dmdcr.ini的路径
DM_INI              可选,dm.ini的路径
DSC_SEQNO           可选,DSC环境中节点号
HELP                查看帮助信息
[dmdba@dm1 bin]$ ./dmlcvt  F_TYPE=4 F_PATH=/home/dmdba/dmdbms/data/DW_A/dm.ini OUT_PATH=/home/dmdba/tmp 
checking the instance is active....
DMLCVT V8
NODE: 0 
main log file: 
file_name=/home/dmdba/dmdbms/data/DW_A/DW_A01.log, sig=DMRLOG, ver=7007, magic=7,
file_free=268435456,file_len=268435456
cur log file: 
file_name=/home/dmdba/dmdbms/data/DW_A/DW_A02.log, sig=DMRLOG, ver=7007, magic=7, 
file_free=143424000,file_len=268435456
log file count: 2
log file list:
        /home/dmdba/dmdbms/data/DW_A/DW_A01.log
        /home/dmdba/dmdbms/data/DW_A/DW_A02.log
LAST CKPT LSN: 12484951
LAST CKPT file id: 1
LAST CKPT file offset: 143424000
NEXT RPKG sequence: 536562

begin analyze redo log ...

begin to parse log file -> /home/dmdba/dmdbms/data/DW_A/DW_A02.log, begin_offset->143425024......

begin to parse log file -> /home/dmdba/dmdbms/data/DW_A/DW_A01.log, begin_offset->4096......

begin to parse log file -> /home/dmdba/dmdbms/data/DW_A/DW_A02.log, begin_offset->4096......

analyze start time: 2022-06-09 13:43:19 +08:00
analyze end time: 2022-06-09 13:43:27 +08:00

生成文件如下:

[dmdba@dm1 tmp]$ ll
总用量 776708
-rw-r--r--. 1 dmdba dinstall       957 6月   9 13:43 file_info000.txt
-rw-r--r--. 1 dmdba dinstall 125151469 6月   9 13:43 page_info000.txt
-rw-r--r--. 1 dmdba dinstall 134217627 6月   9 13:43 rec_info000.txt
-rw-r--r--. 1 dmdba dinstall 134217615 6月   9 13:43 rec_info001.txt
-rw-r--r--. 1 dmdba dinstall 134217620 6月   9 13:43 rec_info002.txt
-rw-r--r--. 1 dmdba dinstall 134217581 6月   9 13:43 rec_info003.txt
-rw-r--r--. 1 dmdba dinstall 133319416 6月   9 13:43 rec_info004.txt
-rw-r--r--. 1 dmdba dinstall         0 6月   9 13:43 warn_info000.txt

社区地址:https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服