在配置OGG时,需要给同步的表添加补充日志,在ggsci命令行执行 add trandata user.table 该命令实际上包含两层含义: 1)table有PK或UK ,则目标端能准确依据PK或UK找到源端DML更新的数据,从而在目标端同步。 2)table没有PK和UK,则目标端只能依据该table的所有列来找到源端DML更新的数据,从而在目标端同步。 对应此OGG命令,在SQL*PLUS中有等效语法: 1)和第一层含义等效的语法(有主键或唯一键) alter table user.table add supplemental log group ggs_table_1 (PK or UK) always; 2)和第二层含义等效的语法(没有主键和唯一键) alter table user.table add supplemental log group ggs_table_1 (all column) always; 当某个table的column超过32个字段的时候,使用add trandata就会报错: WARNING OGG-00706 Failed to add supplemental log group on table user.table due to ORA-02257: maximum number of columns exceeded ...... 这个时候,就要使用: alter table user.table add supplemental log ...这种方式才可。 此时又分两种情况: 第一情况是列超过32个,但有主键或唯一键: alter table user.table add supplemental log group ggs_table_1 (PK or UK) always; 第二情况是列超过32个,没有主键和唯一键: alter table user.table add supplemental log group ggs_table_1 (all column <32) always; alter table user.table add supplemental log group ggs_table_2 (all colum >32) always;