天天看点

OGG之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。

OGG之logdump工具介绍

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

继续阅读