Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm

Rangle發表於2018-07-30

由於虛擬機器宿主機重啟,導致很多虛擬機器服務需要重點關注,其中一個DG的從庫和另一個report庫有OGG同步,所以這裡再系統恢復後檢查OGG狀態的時候,果然目標端的REPLICAT程式處於abend狀態,重啟也無效,具體資訊如下:

一、錯誤資訊

目標端ggserr.log

2018-07-29 10:15:56  INFO    OGG-06510  Oracle GoldenGate Delivery for Oracle, reprpt01.prm:  Using the following key columns for target table GGS.T_EMP.
2018-07-29 10:15:56  ERROR   OGG-01163  Oracle GoldenGate Delivery for Oracle, reprpt01.prm:  Bad column length (21) specified for column BANK in table CU.T_EMP, maximum allowable length is 20.
2018-07-29 10:15:56  ERROR   OGG-01668  Oracle GoldenGate Delivery for Oracle, reprpt01.prm:  PROCESS ABENDING.

二、錯誤原因

從錯誤日誌看出這裡由於源端和目標端的表結構不一致,導致ogg程式啟動失敗。這種一般是由於源改了表結構,目標端沒改,在源和目標程式不重啟的情況下不影響同步,一旦重啟程式則無法直接同步,即報如上錯誤。

三、處理過程

1.排查源端和目標端的表結構

(果然表結構不一致,目標端通過alter table GGS.T_EMP modify  BANK varchar2(21);更改後重啟目標端程式,依舊報錯)

2.通過源端和目標端建立表定義檔案的方式完成同步

源端配置

1)配置表定義檔案

GGSCI (cus) 1> edit params defen.prm
defsfile /ogg/dirdef/cus.def
userid  ggs ,password ggspass
table CUS.t_emp;

  defgen paramfile ./dirprm/defgen.prm

 在dirdef目錄生成檔案dirdef/cus.def ,具體內容如下

後面內容就不截圖了,包含現有表結構的實際定義內容等。

2)源端的表定義檔案scp到目標端的./dirdef目錄下

目標端配置

3)目錄端的replicat程式配置檔案新增內容

GGSCI (cusreport) 2> edit params REPRPT01

sourcedefs  /ogg/dirdef/cus.def  override

##切記一定要假如override,否則不會生效

4)重啟目標端

 GGSCI (cusreport) 3> start  REPRPT01

至此OGG資料同步恢復。

相關文章