溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

oracle中如何解決OGG-01163問題

發(fā)布時(shí)間:2021-11-10 14:01:53 來源:億速云 閱讀:429 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫(kù)

小編給大家分享一下oracle中如何解決OGG-01163問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

故障現(xiàn)象:
復(fù)制進(jìn)程Abended,在日志中報(bào)了以下錯(cuò)誤:
2018-02-23 21:28:36  ERROR   OGG-01163  Oracle GoldenGate Delivery for Oracle, rlis.prm:  Bad column length (21) specified for column BATCHNO in table LISBASE.LCSIGNLIST, maximum allowable length is 20.

故障分析:
經(jīng)詢問得知,因應(yīng)用產(chǎn)生超過現(xiàn)有字段長(zhǎng)度的數(shù)據(jù),應(yīng)用運(yùn)維人員在未知會(huì)DBA的情況下直接修改了表的字段定義,且該字段為主鍵。從而導(dǎo)致了該錯(cuò)誤。

故障解決:
因?yàn)镚oldenGate的復(fù)制進(jìn)程默認(rèn)是從trail文件中獲取表的meta data信息,在抓取進(jìn)程未重啟的情況下,trail文件中表的meta data信息并不會(huì)更新。所以我們需要手工介入,讓復(fù)制進(jìn)行使用新的meta data.

步驟:
1、在源庫(kù)使用defgen工具生成表的定義文件:
//LCSIGNLIST_def.prm
DEFSFILE ./dirdef/LCSIGNLIST.def
USERID ggs@LISDB_BEQ, PASSWORD AACAAAAAAAAAAALAOGDEBEAACFOGYIVGRDIIDGQHSBPDRHXF, ENCRYPTKEY DEFAULT
TABLE LISBASE.LCSIGNLIST;

defgen PARAMFILE dirdef/LCSIGNLIST_def.prm
這時(shí)會(huì)生成一個(gè)LCSIGNLIST.def文件,這其實(shí)就是個(gè)文本文件,按照OGG的描述方式對(duì)表的定義進(jìn)行了描述:

*+- Defgen version 5.0, Encoding ISO-8859-1
*
* Definitions created/modified  2018-02-23 23:33
*
*  Field descriptions for each column entry:
*
*     1    Name
*     2    Data Type
*     3    External Length
*     4    Fetch Offset
*     5    Scale
*     6    Level
*     7    Null
*     8    Bump if Odd
*     9    Internal Length
*    10    Binary Length
*    11    Table Length
*    12    Most Significant DT
*    13    Least Significant DT
*    14    High Precision
*    15    Low Precision
*    16    Elementary Item
*    17    Occurs
*    18    Key Column
*    19    Sub Data Type
*    20    Native Data Type
*    21    Character Set
*    22    Character Length
*    23    LOB Type
*    24    Partial Type
*
Database type: ORACLE
Character set ID: zhs16gbk
National character set ID: UTF-16
Locale: neutral
Case sensitivity: 14 14 14 14 14 14 14 14 14 14 14 14 11 14 14 14
TimeZone: +08:00
*
Definition for table LISBASE.LCSIGNLIST
Record length: 632
Syskey: 0
Columns: 16
BATCHNO           64     30        0  0  0 1 0     30     30      0 0 0 0 0 1    0 1   0    1       -1      0 0 0
CONTNO            64     20       36  0  0 1 0     20     20      0 0 0 0 0 1    0 1   0    1       -1      0 0 0
MANAGECOM         64     10       62  0  0 1 0     10     10      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
MAKEOPERATOR      64     60       78  0  0 1 0     60     60      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
MAKEDATE         192     19      144  0  0 1 0     19     19     19 0 5 0 0 1    0 0   0   12       -1      0 0 0
MAKETIME          64      8      166  0  0 1 0      8      8      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
MODIFYDATE       192     19      180  0  0 1 0     19     19     19 0 5 0 0 1    0 0   0   12       -1      0 0 0
MODIFYTIME        64      8      202  0  0 1 0      8      8      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
RECEIVEOPERATOR   64     60      216  0  0 1 0     60     60      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
RECEIVEDATE      192     19      282  0  0 1 0     19     19     19 0 5 0 0 1    0 0   0   12       -1      0 0 0
RECEIVETIME       64      8      304  0  0 1 0      8      8      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
REASON            64    255      318  0  0 1 0    255    255      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
STATE             64      1      578  0  0 1 0      1      1      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
STANDBYFLAG1      64     10      584  0  0 1 0     10     10      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
STANDBYFLAG2      64     10      600  0  0 1 0     10     10      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
STANDBYFLAG3      64     10      616  0  0 1 0     10     10      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
End of definition

在該案例中被修改的列是BATCHNO,原來的長(zhǎng)度為20,我們可以看到定義文件中此時(shí)已經(jīng)是30,前面的64為數(shù)據(jù)類型,64表示VARCHAR2類型。

2、將定義文件傳到目標(biāo)庫(kù)(或者復(fù)制粘貼也可以),修改復(fù)制進(jìn)行的參數(shù),增加:
SOURCEDEFS ./dirdef/LCSIGNLIST.def OVERRIDE
這個(gè)參數(shù)的意思是從LCSIGNLIST.def獲取表的定義,OVERRIDE必須,這樣才能覆蓋trail中的meta信息。
將復(fù)制進(jìn)程起來后,在日志中我們可以觀察到:
2018-02-23 23:33:14  INFO    OGG-02752  Oracle GoldenGate Delivery for Oracle, rlis.prm:  The definition for table LISBASE.LCSIGNLIST from definitions file /u01/app/oracle/product/ogg/gghome/12.2.0.1/gghome_1/dirdef/LCSIGNLIST.def overrides the table metadata from the trail.
LCSIGNLIST.def已經(jīng)使用了,復(fù)制進(jìn)程也正常進(jìn)行。

看完了這篇文章,相信你對(duì)“oracle中如何解決OGG-01163問題”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI