logdump工具介绍
Logdump 9 >open ./dirdat/si009180 ---打开文件
Logdump 15 >ghdr on --查看header record信息
Logdump 16 >detail on ---查看列信息,包括number和长度
Logdump 17 >detail data -----To add hex and ASCII data values to the column information
Logdump 18 >usertoken on ---查看用户定义的信
Logdump 19 >n ---显示下一条记录
Hdr-Ind : E (x45) Partition : . (x04)
UndoFlag : . (x00) BeforeAfter: A (x41)
RecLength : 722 (x02d2) IO Time : 2018/03/19 09:39:48.000.000
IOType : 5 (x05) OrigNode : 255 (xff)
TransInd : . (x01) FormatType : R (x52)
SyskeyLen : 0 (x00) Incomplete : . (x00)
AuditRBA : 175727 AuditPos : 23420172
Continued : N (x00) RecCount : 1 (x01)
2018/03/19 09:39:48.000.000 Insert Len 722 RBA 2186
Hdr-Ind: 该值总是E,表示是extract process创建,如果为其他属性,则表示不可用。
UndoFlag:该属性正常值为0,当为1时则表示先前已经成功的记录进行撤销操作。
RecLength:record buffer长度,单位是bytes
IOType:表示操作类型,该属性有如下几种值:
- 3 - Delete
- 5 - Insert
- 10 - Update(full record)
- 15 - Update(compressed record)
TransInd:事务记录标志,有如下4种可能属性;
- x00 - start of transaction
- x01 - middle of transaction
- x02 - end of transaction
- x03 - only record in transaction
SyskeyLen:system key长度。如果system key存在,其第一个bytes表示system key记录,否则该值为0.
AuditRBA:事务record commit地址,同一个事务中,该值均相同。goldengate通过auditRBA+IO Time来确定一个事务,其值是唯一的。
Continued:该属性有两种值:Y和N,用来定义数据片大大小,通常lob,clob或varchar类型,该值是Y,否则是N。
Partition:该属性是goldengate内部使用的一个标示,并不是指os或数据库层面的逻辑分区和物理分区。windows和unix 平台下,该属性值总是为4。
对于Nonstop的记录,该属性的值取决于如下两个方面:
1)存在Bulk IO操作的情况下,该值表示源端分区已经完成的bulk IO操作的数量。其取值范围为0~15.
2)对于其他非bulk io操作的nonstop record情况下,该属性取值通常为0或4. 为4的情况,表示该数据为 FiledComp record格式 (compress存储格式)。
BeforeAfter: 对于update操作,表示该数据是before image还是after image。对于insert操作,总是after images,
而delete操作总是before images。
IO Time:记录提交时间,同一个事务内的所有记录,该属性值都是相同的,为GMT格式。
OrigNode:Nonstop情况下,表示extract数据抽取端的节点号,整个cluster内,每个节点的节点号都是唯一的。该属性取值范围是0~255. 除nonstop之外的其他情况,该属性值为0.
FormatType:表示数据是从事务日志读取还是直接从数据库中获取的。取值为F和R,F表示fetched from database。R表示readable in transaction log。
Incomplete:该属性值从10.4版本就已经废弃了,是向前兼容保留的。
AuditPos: 标示extract process在transaction log中的位置。
RecCount:在windows和unix平台下,ogg处理lob时,是将其split成chunk,然后将chunk写入到file中。 recCount用来表示在读取时对chunk的合并。
对于logdump 看到的record 记录,其实iotype也就4种,3,5,10,15. 其中15表示compress record。 那么如何启用record的压缩存储呢?其实有个参数控制的,那就是auditcompress。
1. 查看下一条正常的记录
Logdump 8> SCANFORHEADER
可以直接输入简写:SFH
2. 查看事务的结束位置
Logdump 20> SCANFORENDTRANS
也可以直接输入简写:SFET.
这个命令会显示下一个事务的第一记录,此时,TransInd的标志应该是0x00
3. 跳到指定的RBA位置
主要用于交付进程宕机之后,定位错误的记录
Logdump 35> POS rba
Logdump 36> N
显示RBA对应的记录信息
跳转到文件的第一条记录
Logdump 37> POS FIRST
也可以如下操作
Logdump 37> POS 0
4. 基于表或文件名过滤
如只查看某个表的数据
Logdump 60> FILTER INCLUDE FILENAME [container | catalog] schema.table
现在,使用 N 命令,只有符合条件的表的记录才会显示。也可以使用Exclude参数不看某个表的记录。
5. 清除当前过滤条件
Logdump 62> FILTER CLEAR
6. 使用多个条件进行过滤
Logdump 60> FILTER INCLUDE FILENAME $volume.subvolume...file..; FILTER RECTYPE record_type; FILTER MATCH ALL
Logdump 60> FILTER INCLUDE ANSINAME catalog.schema.table; FILTER RECTYPE record_type; FILTER MATCH ALL
Logdump 65> FILTER INCLUDE FILENAME schema.table; FILTER RECTYPE record_type; FILTER MATCH ALL
使用MATCH ANY 或 MATCH ALL 可设置多个条件的关联关系。
7. 统计队列文件中的记录数
Logdump 67> COUNT
8. 保存记录到新文件
保存整个文件,使用如下命令
Logdump 68> SAVE file
保存部分记录,使用如下命令
Logdump 69> SAVE file n RECORDS
9. 打开下一个对应序列的队列文件
Logdump 70> NEXTTRAIL
此命令会关闭当前队列文件,并打开对应序号的文件
10. 记录logdump的操作过程
开始记录
Logdump 71> LOG TO filename.txt
写入操作过程到文件
Logdump 72> WRITELOG "text"
停止记录
Logdump 73> LOG STOP
11. 查看当前环境设置
Logdump 74> ENV
这个命令会显示当前的过滤条件是怎样的,文件名,位置等环境信息。
12. 获取在线帮助
Logdump 75> HELP