ERROR   OGG-01028 和 Compression is not supported

***********************************************************************
                 Oracle GoldenGate Capture for Oracle
    Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
   Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:42:16

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.


extract 進程 配置 


--基礎參數區域
EXTRACT extdr
SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8")
Set environment variable (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID dkogg,PASSWORD ************************************************, ENCRYPTKEY default
REPORTCOUNT EVERY 30 MINUTES,RATE
DISCARDFILE ./dirrpt/extdr.dsc,  APPEND,  MEGABYTES 1024
DISCARDROLLOVER AT 3:00
WARNLONGTRANS 2h, CHECKINTERVAL 3m
EXTTRAIL ./dirdat/sa
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS  CONVERTUCS2CLOBS

2015-05-25 13:44:35  WARNING OGG-00254  CONVERTUCS2CLOBS is a deprecated parameter.
TRANLOGOPTIONS  EXCLUDEUSER dkogg
THREADOPTIONS   MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000
--TRANLOGOPTIONS _INFINITYTOZER
TRANLOGOPTIONS _INFINITYTOZERO
--NODDLCHANGEWARNING
--DDL參數區域,所有複製對象,屏蔽對象在源端體現。
DDL INCLUDE MAPPED OBJTYPE 'TABLE' INCLUDE MAPPED OBJTYPE 'INDEX' INCLUDE MAPPED OBJTYPE 'SEQUENCE' INCLUDE MAPPED OBJTYPE 'VIEW' INCLUDE MAPPED OBJTYPE 'PROCEDURE' INC
LUDE MAPPED OBJTYPE 'FUNCTION' INCLUDE MAPPED OBJTYPE 'PACKAGE' EXCLUDE OPTYPE COMMENT
DDLOPTIONS  addtrandata REPORT
--添加對象
TABLE DUSER.*;
SEQUENCE  DUSER.*;


今天發現進程ABENDED 了

查看:

***********************************************************************
**                     Run Time Messages                             **
***********************************************************************


2015-05-25 13:44:42  INFO    OGG-01517  Position of first record processed Sequence 336592, RBA 157712, SCN 16.1806035766, 2015-5-25 上午11:27:56.
TABLE resolved (entry DKADVUSER.DK_B_ORGANIZATION):
  TABLE "DKADVUSER"."DK_B_ORGANIZATION";
Using the following key columns for source table DKADVUSER.DK_B_ORGANIZATION: ORGANIZATION_ID.


Source Context :
  SourceModule            : [er.processloop]
  SourceID                : [/scratch/aime1/adestore/views/aime1_adc4150256/oggcore/OpenSys/src/app/er/processloop.cpp]
  SourceFunction          : [process_extract_loop]
  SourceLine              : [873]
  ThreadBacktrace         : [7] elements
                          : [/opt/ogg/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x7fde5399d06e]]
                          : [/opt/ogg/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x2cc) [0x7fde5399944c]]
                          : [/opt/ogg/libgglog.so(_MSG_ERR_ER_GENERIC_FAILURE(CSourceContext*, char const*, CMessageFactory::MessageDisposition)+0x31) [0x7fde539812a9]]
                          : [/opt/ogg/extract(process_extract_loop()+0x3884) [0x55d9b4]]
                          : [/opt/ogg/extract(main+0x5d9) [0x56cb99]]
                          : [/lib64/libc.so.6(__libc_start_main+0xfd) [0x3e3ee1ed5d]]
                          : [/opt/ogg/extract(__gxx_personality_v0+0x38a) [0x4e8b7a]]

2015-05-25 13:44:43  ERROR   OGG-01028  Record on table DUSER.B_ORGANIZATION with rowid AAAX05AAOAAGfocAAH from transaction 13.33.4286930 (0x000d.021.004169d2) i
s compressed. Compression is not supported.

那麼B_ORGANIZATION 表是 compression 是DISABLED .


仔細查找找到原因


1、alter table ... modify partition ... compress ... ,該方法僅適用於新插入的數據。

2、alter table ... move partition ... compress ... ,該方法適用於新插入的數據和已存在的數據。


當時對壓縮表做了解壓縮,我用的第1種modify方式 解壓縮。也就說當前程序對錶B_ORGANIZATION中AAAX05AAOAAGfocAAH 這一行數據做了重新編輯,這樣就會出現OOG-01028錯誤現象。如下是oracle的解決方法:



However, due to bug 10063108, sometimes the error message on compressed tables are not entirely correct. This problem has been fixed in 11.1.1.0.3 and above 


A table created as compressed will cause all of the DMLas to go into compressed blocks on disk. If the user does an "alter table nocompress", every DML that goes into the table AFTER that point in time will be uncompressed. The query for compression will return "nocompress" now, but that simple "alter" does not change the already existing compressed blocks on disk that were created before the "alter". So to capture the records from a table which was compressed we need to do the following 


SQL> alter table <tablename> move nocompress; 


This will touch every single block on disk and will uncompress everything and so OGG should be all good. 


如果是分區表請用


SQL> ALTER TABLE <Table_name> MOVE PARTITION <partition_name> NOCOMPRESS TABLESPACE <tablespace>; 

如果表的segment 比較大,要先確保有足夠空間。


完成之後再對錶進行重新同步。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章