阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

GoldenGate单独一个表数据不同步解决方法

132次阅读
没有评论

共计 2343 个字符,预计需要花费 6 分钟才能阅读完成。

补充日志只要是针对 UPDATE 命令的,是对重做日志记录中变更矢量块的补充信息,增加了变更矢量记载的记录量。日志挖掘器(LogMiner)、闪回事务查询、闪回事务等都需要补充日志的支持。也就是说补充日志主要是为 UPDATE 命令服务的,补充的目的是高度还原 UPDATE 命令,避免因为 update 命令造成的行迁移和行移动,让 LogMiner 通过分析重做日志中识别 update 命令不是由 insert 和 delete 完的。

数据库级补充日志分为:最小补充日志、标识关键字段补充日志
(1). 最小补充日志:是最基本的一种数据库级补充日志,而 LogMiner 正是依赖最小补充日志工作服务的(即识别 行移动 行迁移)。
    启用最小补充日志命令:
        alter database add supplemental log data;
    关闭最小补充日志命令:
        alter database drop supplemental log data;
(2). 标识关键字段补充日志:分为主键、外键、唯一索引、全体字段补充日志 4 种。
  主键补充日志:在 update 命令的重做记录中添加被修改行的主键字段的旧值,无论是否被修改,都记录。如果表没有主键,则由长度最小的唯一索引字段代替,若连唯一索引也没有,则记录该行所有字段.
    alter database add supplemental log data (Primary key) columns;
  唯一索引补充日志:唯一索引主要是为复合索引(唯一)服务的。只有唯一索引的字段被 update 时,才会记录该字段被修改前的值。
    alter database add supplemental log data (unique) columns;
  外键补充日志:同唯一索引补充日志一样,只有外键字段被 update 时,才会记录被修改前的旧值,即也是为复合外键服务的。
    alter database add supplemental  log data (foreign key) columns;
  全体字段补充日志:顾名思义就所有字段的值不论是否被修改都记录。会导致磁盘快速增长,LGWR 进程繁忙。不建议使用。
    alter database add supplemental log data (all) columns;
表级补充日志:
  分为:主键、唯一索引、外键、全体字段、用户自定义字段 5 种。
  前 4 种同数据库级 标识关键字段补充日志效果用法一样。只不过是在特定表上启用补充日志
  1.alter table tb_name add supplemental log data (primary key) columns;
  2.alter table tb_name add supplemental log data (unique) columns;
  3.alter table tb_name add supplemental log data (foreign key) columns;
  4.alter table tb_name add supplemental log data (all) columns;
  5.alter table tb_name add supplemental log group group_name (col01,col02,col05,col09) | always;

1. 查看数据库是否开启补充日志

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;    – 开启了补充日志
SUPPLEME
——–
YES
SQL> SELECT supplemental_log_data_min,supplemental_log_data_pk,supplemental_log_data_ui,
supplemental_log_data_fk,supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP SUP SUP          – 只开启了主键的补充日志
——– — — — —
YES    NO  NO  NO  NO
SQL>

2. 查看表是否添加到补充日志中

SQL> select * from dba_log_groups where table_name=’abc’;    – 查看表是否有补充日志
no rows selected
SQL> select * from dba_log_group_columns  where table_name=’abc’;  – 查看补充日志的字段
no rows selected
SQL>

3. 解决方法(1)

GGSCI (iZ23jtzbnliZ) 35> dblogin userid ggs,password system  –EXTRACT 进程里的用户名和密码
Successfully logged into database.
GGSCI (iZ23jtzbnliZ) 36> add TRANDATA tong.abc    – 添加补充日志(tong 是数据库,abc 是表名)
Logging of supplemental redo data enabled for table  UPCENTER.NEWS_FLASH_TAB_CLAS_RELA.
GGSCI (iZ23jtzbnliZ) 37>

3. 解决方法(2)
SQL> alter table abc add supplemental log data(all,primary key,unique,foreign key) columns;
SQL>

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146430.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2343字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中