OGG-01431 OGG-01003 OGG-01151 OGG-01003错误处理

来源:这里教程网 时间:2026-03-03 17:00:45 作者:

1 创建测试表,并插入数据: OGGTEST@orcl>create table test_number (id number(8)); Table created. insert into test_number values(0);insert into test_number values(1);insert into test_number values(10);insert into test_number values(100);insert into test_number values(1000);insert into test_number values(10000);insert into test_number values(100000);insert into test_number values(1000000);insert into test_number values(10000000);insert into test_number values(-1); insert into test_number values(-10); insert into test_number values(-100); insert into test_number values(-1000); insert into test_number values(-10000); insert into test_number values(-100000); insert into test_number values(-1000000); insert into test_number values(-10000000); insert into test_number values(-100000000); commit; 目标端查看数据是否同步,发现已经同步: 目标端: OGGTEST@orcl>/         ID ----------          0          1         10        100       1000      10000     100000    1000000   10000000         -1        -10       -100      -1000     -10000    -100000   -1000000  -10000000 测试超出范围的数据,发现报错:OGGTEST@orcl>insert into test_number values(100000000);   insert into test_number values(100000000)                               *ERROR at line 1:ORA-01438: value larger than specified precision allowed for this columnOGGTEST@orcl>insert into test_number values(-100000000); insert into test_number values(-100000000)                               *ERROR at line 1:ORA-01438: value larger than specified precision allowed for this column 2  根据如上试验,可以确定,相同的列,插入负值,0,正值都是没问题的。 以下测试列联合。目标端增加一列数据,用于测试连接值。目标端: OGGTEST@orcl>alter table test_number add id_numbertest number(11); Table altered. OGGTEST@orcl>desc test_number;  Name                                      Null?    Type  ----------------------------------------- -------- ----------------------------  ID                                                 NUMBER(8)  ID_NUMBERTEST                                      NUMBER(11) 修改OGG参数如下:MAP  oggtest.test_number, TARGET oggtest.test_number, COLMAP (USEDEFAULTS, ID_NUMBERTEST=@STRCAT("612",ID)); 源端: insert into test_number values(11); insert into test_number values(110); insert into test_number values(1100); insert into test_number values(11000); insert into test_number values(110000); insert into test_number values(1100000); insert into test_number values(11000000); commit; 目标端数据验证: OGGTEST@orcl>/         ID   ID_NUMBERTEST ---------- ---------------          0          1         10        100       1000      10000     100000    1000000   10000000         -1        -10       -100      -1000     -10000    -100000   -1000000  -10000000         11           61211        110          612110       1100         6121100      11000        61211000     110000       612110000    1100000      6121100000   11000000     61211000000 24 rows selected. 3 测试负值,查看OGG的信息 源端测试负值: insert into test_number values(-11); OGGTEST@orcl>insert into test_number values(-11); 1 row created. OGGTEST@orcl>commit; Commit complete. 目标端发现OGG报错: GGSCI (oracle10g1) 71> info all Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            REPLICAT    ABENDED     REPTB1      00:00:06      00:00:13 查看报错信息: MAP resolved (entry oggtest.test_number):   MAP  "OGGTEST"."TEST_NUMBER", TARGET oggtest.test_number, COLMAP (USEDEFAULTS,  ID_NUMBERTEST=@STRCAT("612",ID)); 2021-09-24 16:34:02  WARNING OGG-00869  No unique key is defined for table 'TEST_NUMBER'.  All viable columns will be used to represent the key, but may not guarante e uniqueness.  KEYCOLS may be used to define the key. Using the following default columns with matching names:   ID=ID, ID_NUMBERTEST=ID_NUMBERTEST Using the following key columns for target table OGGTEST.TEST_NUMBER: ID, ID_NUMBERTEST. 2021-09-24 16:36:17  WARNING OGG-01431  Aborted grouped transaction on 'OGGTEST.TEST_NUMBER',  Mapping error. 2021-09-24 16:36:17  WARNING OGG-01003  Repositioning to rba 5350 in seqno 17. 2021-09-24 16:36:17  WARNING OGG-01151  Error mapping from OGGTEST.TEST_NUMBER to  OGGTEST.TEST_NUMBER. 2021-09-24 16:36:17  WARNING OGG-01003  Repositioning to rba 5350 in seqno 17. Source Context :   SourceModule            : [er.errors]   SourceID                : [/scratch/aime1/adestore/views/aime1_adc4150267/oggcore/OpenSys/src/app/er/errors.cpp]   SourceFunction          : [take_rep_err_action]   SourceLine              : [632]   ThreadBacktrace         : [12] elements                           : [/app/oracle/goldengate/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x2afaa1 92e61e]]                           : [/app/oracle/goldengate/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*,  unsigned int, ...)+0x2ec) [0x2afaa192715c]]                           : [/app/oracle/goldengate/libgglog.so(_MSG_ERR_MAP_TO_TANDEM_FAILED(CSourceContext*,  ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const &, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, CMessageFactory::MessageDisposition)+0x53)  [0x2afaa192312b]]                           : [/app/oracle/goldengate/replicat(take_rep_err_action(short, int, char const*, extr_ptr_def*,  __std_rec_hdr*, char*, file_def*, bool)+0xaa7) [0x524c31]]                           : [/app/oracle/goldengate/replicat(process_extract_loop()+0x274c) [0x53e78c]]                           : [/app/oracle/goldengate/replicat(replicat_main(int, char**)+0x741) [0x551101]]                           : [/app/oracle/goldengate/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain()+0x4f)  [0x5ef7ff]]                           : [/app/oracle/goldengate/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib:: MultiThreading::Thread::ThreadArgs*)+0x104) [ 0x5efa54]]                           : [/app/oracle/goldengate/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**)+0x8b)  [0x5efb5b]]                           : [/app/oracle/goldengate/replicat(main+0x2c) [0x5502ac]]                           : [/lib64/libc.so.6(__libc_start_main+0xf4) [0x3c9561d994]]                           : [/app/oracle/goldengate/replicat(__gxx_personality_v0+0x31a) [0x4c266a]] 2021-09-24 16:36:17  ERROR   OGG-01296  Error mapping from OGGTEST.TEST_NUMBER to  OGGTEST.TEST_NUMBER. GGSCI (oracle10g1) 75> info reptb1 REPLICAT   REPTB1    Last Started 2021-09-24 16:32   Status ABENDED Checkpoint Lag       00:00:06 (updated 00:02:56 ago) Log Read Checkpoint  File ./dirdat/pt000017                      2021-09-24 16:36:11.000484  RBA 5350                      使用logdump查看数据: Logdump 815 >open  ./dirdat/pt000017 Current LogTrail is /app/oracle/goldengate/dirdat/pt000017  Logdump 816 >pos 5350 Reading forward from RBA 5350  Logdump 817 >n ___________________________________________________________________  Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)   UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)   RecLength  :    14  (x000e)   IO Time    : 2021/09/24 16:36:11.000.484    IOType     :     5  (x05)     OrigNode   :   255  (xff)  TransInd   :     .  (x03)     FormatType :     R  (x52)  SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)  AuditRBA   :         61       AuditPos   : 10841720  Continued  :     N  (x00)     RecCount   :     1  (x01)  2021/09/24 16:36:11.000.484 Insert               Len    14 RBA 5350  Name: OGGTEST.TEST_NUMBER  After  Image:                                             Partition 4   G  s     0000 000a 0000 ffff ffff ffff fff5                | ..............       Column     0 (x0000), Len    10 (x000a)     0000 ffff ffff ffff fff5                          | ..........      -此值转换为十进制为-11,既然这个值是正常的,那么只有ID_NUMBERTEST值有问题的    GGS tokens:  TokenID x52 'R' ORAROWID         Info x00  Length   20   4141 414d 7138 4141 4541 4141 4142 4741 4159 0001 | AAAMq8AAEAAAABGAAY..   TokenID x4c 'L' LOGCSN           Info x00  Length    7   3935 3136 3135 37                                 | 9516157   TokenID x36 '6' TRANID           Info x00  Length    8   332e 3132 2e35 3635                               | 3.12.565   在目标端测试相关数据: OGGTEST@orcl>select concat('612','-11') from dual; CONCAT ------ 612-11 OGGTEST@orcl>insert into test_number values (111,612-11); 1 row created. OGGTEST@orcl>commit; Commit complete.   OGGTEST@orcl>insert into test_number values (111,'612-11'); insert into test_number values (111,'612-11')                                     * ERROR at line 1: ORA-01722: invalid number 修改OGG参数: MAP  oggtest.test_number, TARGET oggtest.test_number,  COLMAP (USEDEFAULTS, ID_NUMBERTEST=@STRCAT("612",ID));修改后 MAP  oggtest.test_number, TARGET oggtest.test_number,  COLMAP (USEDEFAULTS, ID_NUMBERTEST=@EVAL( ID < 0 ,"612",@STRCAT("612",ID))); 测试,发现问题解决,负值的问题已经解决。 OGGTEST@orcl>select * from test_number;         ID   ID_NUMBERTEST ---------- ---------------          0          1         10        100       1000      10000     100000    1000000   10000000         -1        -10       -100      -1000     -10000    -100000   -1000000  -10000000         11           61211        110          612110       1100         6121100      11000        61211000     110000       612110000    1100000      6121100000   11000000     61211000000        -11             612         111             601 26 rows selected.

相关推荐