Ogg的备库操作(备机:目标库操作)
Ogg日志文件报错:
2018-01-12 16:23:56 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rjrwz2zx.prm: Error mapping from JRWZ2_ZX.ZX_BANK_SJSX to JRWZ2_ZX.ZX_BANK_SJSX.
2018-01-12 16:23:56 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rjrwz2zx.prm: PROCESS ABENDING.
问题:由于主备库的表JRWZ2_ZX.ZX_BANK_SJSX中的记录数,表结构,索引等不一致导致的错误.
主库操作:
select count(*) from JRWZ2_ZX.ZX_BANK_SJSX;
describe JRWZ2_ZX.ZX_BANK_SJSX;
备库操作:
select count(*) from JRWZ2_ZX.ZX_BANK_SJSX;
describe JRWZ2_ZX.ZX_BANK_SJSX;
经过对比,发现Ogg的主备表JRWZ2_ZX.ZX_BANK_SJSX中的记录数不一样。所以需要同步数据。
主库操作:
select count(*) from JRWZ2_ZX.ZX_BANK_SJSX;
多次查询,发现该表的记录数并不经常更新和新增。所以采取不锁主库的表。不对业务有影响。如果实现不了,就锁主库的表 lock JRWZ2_ZX.ZX_BANK_SJSX
然后载同步主备的数据;
以下操作是在备库执行:
备库操作:create global temporary table JRWZ2_ZX.ZX_BANK_YSX_BAK as select * from JRWZ2_ZX.ZX_BANK_YSX@TO_PRI where 1 = 2;
备库操作:insert into JRWZ2_ZX.ZX_BANK_YSX_BAK select * from JRWZ2_ZX.ZX_BANK_YSX@TO_PRI;
备库操作:select count(*) from JRWZ2_ZX.ZX_BANK_YSX_BAK;
备库操作:commit;
备库操作:delete from JRWZ2_ZX.ZX_BANK_YSX;
备库操作:insert into JRWZ2_ZX.ZX_BANK_YSX select * from JRWZ2_ZX.ZX_BANK_YSX_BAK;
备库操作:commit;