今天ogg报了个错
2017-03-31 16:35:01 OGG-01296 error mapping from a.t1 to table b.t2
检查源端和目标端的表结构,没有问题。
重新生成def文件比对,没有问题。
后来注意到报错前有几个warning提示
2017-03-31 16:34:54 WARNING OGG-00869 OCI Error ORA-14402: updating partition key column would cause a partition change (status = 14402). UPDATE "b"."t2" SET "ORG_NO" = :a
1 WHERE "TG_ID" = :b0.
2017-03-31 16:34:54 WARNING OGG-01004 Aborted grouped transaction on 'b.t2', Database error 14402 (OCI Error ORA-14402: updating partition key column would cause a partiti
on change (status = 14402). UPDATE "b"."t2" SET "ORG_NO" = :a1 WHERE "TG_ID" = :b0).
2017-03-31 16:34:54 WARNING OGG-01003 Repositioning to rba 161092024 in seqno 77130.
2017-03-31 16:34:57 WARNING OGG-01154 SQL error 14402 mapping a.t1 to b.t2 OCI Error ORA-14402: updating partition key column would cause a partition change (status =
14402). UPDATE "b"."t2" SET "ORG_NO" = :a1 WHERE "TG_ID" = :b0.
2017-03-31 16:34:57 WARNING OGG-01003 Repositioning to rba 161102952 in seqno 77130.
报ora的错误,是说分区表更新主键列将导致分区的更改。
通过开启表的行移动来解决此问题
alter table b enable row movement
这个问题一般发生在分区表上,更新某个键值后该记录不属于这个分区了就要迁移到其他分区。