Logdump是一個GoldenGate內建的trail檔案分析工具,而且能加深對GoldenGate工作原理的理解,非常值得花時間來研究它。
Logdump組件預設在安裝目錄,是個可執行檔,6所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21453124R-0.jpg" title="1.jpg" />
圖6
直接輸入logdump按斷行符號鍵即可進入logdump介面,7所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21453134a-1.jpg" title="2.jpg" />
圖7
1、認識logdump分析工具及常用命令
logdump的命令不是很多,經常用的就那麼幾條,進入logdump命令列之後,直接可以輸入help即可看到用的每一條命令,8和圖9所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2145315441-2.jpg" title="3.jpg" />
圖8
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21453114V-3.jpg" title="4.jpg" />
圖9
其中常用的命令如下。
Usertoken 用來顯示trail檔案的一些標記資訊。
Ggstoken 顯示GoldenGate的一些標記資訊。
Headertoken 顯示頭部的標記資訊。
ghdr on 用來開啟記錄的頭部資訊。
pos first|last| for| rev 其中pos for|rev 比較重要,用於指定在trail檔案中讀的方向向上|向下)。
count detail 會顯示當前trail檔案總的記錄數量,10所示。
其他一些命令查看文檔很容易就能明白。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2145312945-4.jpg" title="5.jpg" />
圖10
2、理解trail檔案格式與常見分析思路
理解trail檔案的格式對理解GoldenGate的工作原理非常重要,對troubleshooting也非常的有協助,11所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2145312R2-5.jpg" title="6.jpg" />
圖11
其中,一個trail檔案最先開始是檔案的頭部資訊,然後是記錄的頭部資訊,接著為記錄的詳細資料。GoldenGate是以事務為單位處理記錄的,所以trail檔案記錄的時間均為commit的時間,12所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2145313260-6.jpg" title="7.jpg" />
圖12
Trial檔案中的處在同一事物中的record,由I/O time和AuditRBA值唯一確定,13所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/214531M42-7.jpg" title="8.jpg" />
圖13
TransInd記錄當前的record處於當前事務的哪個部分,14所示。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2145316401-8.jpg" title="9.jpg" />
圖14
GoldenGate的工作原理可以理解為源端抽取進程從redo日誌中按事物抽取相應的DML操作資訊與資料,然後按時間順序寫到本地的trail檔案,然後源端的投遞進程則與容災端MGR進程、Extract進程互動,通過讀trail檔案資訊,把資料通過TCP/IP協議投遞到容災端。接著容災端的Replicat進程再通過讀投遞過來的trail檔案,轉換為SQL語句往資料庫裡更新資料,這樣就完整地實現了資料複製。
瞭解到這一層後,如果GoldenGate鏈路出現問題,或者trail檔案有損壞,則可以直接通過logdump分析到對應的檢查點,重新抽取或者投遞或者複製,從而可以修複已經損壞的鏈路。
3、Logdump使用指引
在GGSCI中使用如下命令查看當前處理的隊列檔案和RBA號,例如:
樣本47:
GGSCI br-jl-accs-db1) 3> info REPYXA
REPLICAT REPYXA Last Started 2011-01-08 19:48 Status RUNNING
Checkpoint Lag 00:00:00 updated 136:41:42 ago)
Log Read Checkpoint File ./dirdat/p1000556 First Record RBA 59193235
在GoldenGate安裝目錄執行logdump命令,開啟要查看的隊列檔案:
樣本48:
Logdump 1 >open ./dirdat/p1000556
Current LogTrail is ./dirdat/p1000556
Logdump 2 >ghdr on
Logdump 3 >detail on
Logdump 4 >detail data
Logdump 5 >usertoken on
Logdump 6 >pos 59193235 上面INFO命令看到的RBA號碼
Logdump 7 >n
繼續輸入n顯示當前處理的表及相關操作。