暂无图片
OGG复制进程报错
我来答
分享
豆宇斯
2022-10-10
OGG复制进程报错

1.源端目标端均是Oracle 19c 单机,目标端复制进程提示 ABENDED,查看日志发现其中一张表同步报错

2022-10-10 11:09:33 ERROR OGG-01296 Error mapping from USER.TABLE to USER.TABLE.

2.desc查看表结构,源端目标端是一样的字段

3.查看discardfile

4.开始时候目标端执行 info trandata USER.TABLE 发现提示

Logging of supplemental redo log data is disabled for table

手动 delete trandata 再 add trandata,目前是enabled 状态,不过还是存在

No unique key is defined for table

5.源端目标端的 key columns不一样,源端只有一个字段,目标端是ALL

6.get_ddl发现源端比目标端多一个

CONSTRAINT "PK_TABLE_N" PRIMARY KEY ("OID")

想问下这个问题是目标端没有主键导致的么,谢谢

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
李宏达

参考这个 https://blog.csdn.net/ccpcbear/article/details/97795743

暂无图片 评论
暂无图片 有用 0
暂无图片
豆宇斯
题主
2022-10-11
最终解决办法。。停止同步这张表。。。
豆宇斯

源端还要多一个

USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

暂无图片 评论
暂无图片 有用 0
李宏达

应该是“USING INDEX”的问题,把源端和目标端的主键用using重建一下。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2022-10-10
生产环境需要提流程申请,回头我测试下看看
李宏达
答主
2022-10-10
对,生产环境要慎重。
Thomas

如果源端没有写 using index, 难道就不行吗?

我测试了,写不写都会创建一个与主键同名的index啊。

SQL> create table tbtb (id number,cc varchar2(10),dd varchar2(10),constraint pk_tbtb primary key (id,cc) using index );

Table created.

SQL> select index_name from user_indexes where table_name='TBTB';

INDEX_NAME
--------------------------------------------------------------------------------------------------------------------
PK_TBTB

SQL> drop table tbtb;

Table dropped.

SQL> create table tbtb (id number,cc varchar2(10),dd varchar2(10),constraint pk_tbtb primary key (id,cc) );

Table created.

SQL> select index_name from user_indexes where table_name='TBTB';

INDEX_NAME
--------------------------------------------------------------------------------------------------------------------
PK_TBTB

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2022-10-10
我们现在是源端有主键,目标端没有。。
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏