天天看點

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

繼續閱讀