標籤:info table ror bank 資料 表結構 服務 完成 RoCE
由於虛擬機器宿主機重啟,導致很多虛擬機器服務需要重點關注,其中一個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.prmdefsfile /ogg/dirdef/cus.defuserid ggs ,password ggspasstable 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資料同步恢複。
Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm