通过OGG图形化软件发现OGG进程存在异常
通过ogg进程
GGSCI>view report ogg_process_name
检索error 报错信息发现ogg 00869 ora 14402
ORA-14402: updating partition key column would cause a partition change (status = 14402),
SQL <UPDATE <"SCHEMANAME">.<"TABLENAME"> SET "TYPE" = :a1,"COL1" = :a2,"STATUS" =
查询mos
Replicat fails with "OCI Error ORA-14402: updating partition key column would cause a partition change" (Doc ID 1461706.1) Source and target partitions need not be same and in this example source table was not partitioned and
target was RANGE partitioned on LAST_MODIFIED_DATE column as below PARTITION BY RANGE (LAST_MODIFIED_DATE) ( PARTITION WEEK_16 VALUES LESS THAN (TIMESTAMP' 2012-04-22 00:00:00') LOGGING NOCOMPRESS TABLESPACE USER_DATA PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT ), ID was the PK column and a row with values ID = 1872347 and LAST_MODIFIED_DATE=2012-04-21 00:00:00 was residing in PARTITION WEEK_16 An update from the source came in for ID = 1872347 changing the LAST_MODIFIED_DATE column value to 2012-05-20 00:00:41.793444000 This update causes the row to move from PARTITION WEEK_16 to PARTITION WEEK_20 and since ROW MOVEMENT was disabled by
default it caused the replicat to abend PARTITION WEEK_20 VALUES LESS THAN (TIMESTAMP' 2012-05-21 00:00:00') LOGGING NOCOMPRESS The solution would be to enable ROW MOVEMENT and restart the replicat ALTER TABLE <SCHEMANAME>.<TABLENAME> ENABLE ROW MOVEMENT;
汇总就是比如目标端是一个分区表
row 一条记录原本在分区1的范围内(时间小于2012-04-22);
现在应用update信息 将时间调整>2012-04-22 此时行记录应该调整到另一个分区上,此时报错! 解决方法对表开启行移动,记录就能跨越分区了!!!