如何进行GoldenGate附加日志的理解

发布时间:2021-11-12 09:31:17 作者:柒染
来源:亿速云 阅读:467

本篇文章为大家展示了如何进行GoldenGate附加日志的理解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

附加日志是什么呢?使用OGG的时候为什么需要打开附加日志?

一、OGG需要打开附加日志的原因

GoldenGate实现主备库的复制是不是单纯的基于SQL的复制,而是基于逻辑变化复制(LCR)的复制。

         而要实现这种逻辑上的复制ORACLE需要打开附加日志,记录额外需要的信息。
二、附加日志

附加日志(supplemental log)可以指示数据库在日志中添加额外信息到日志流中,以支持基于日志的工具,如逻辑standby、GoldenGate、LogMiner等等。可以在数据库和表上设置。

 附加日志 分别有最小附加日志(minimal supplemental logging)和标识键日志(identification key logging)两种。

GoldenGate在部署时明确要求打开的是最小附加日志。而最小附加日志可以确保LogMiner(或其他任何基于LogMiner的产品)可以支持行链接、簇表、索引组织表等。
三、表级附加日志

除此之外,在复制过程中还要求添加表级附加日志。即添加trandata

添加表级附加日志的过程是这样的:如果有主键则只加入主键;无主键添加唯一索引;两者皆无,则添加所有列。

而将主键或唯一索引添加入附加日志,是因为主备库的需要,原因如下:

主库的数据改变了,GoldenGate又不是基于SQL的复制,想要改变备库的数据,就要对主备库建立映射关系。而每张表的主键或者唯一键就是很好选择。为什么呢。因为只要把主备库的表先对应起来,然后再通过主键或者唯一键映射,主键或者唯一键都是唯一的,所以主库上修改了一行数据。备库上自然有一行数据与其对应。

比如:当我们执行这个语句的时候,trail文件至少有以下信息

          update dept set dname='Personnel' where dname='RESEARCH';

 镜像 
deptno 
DNAME 
   table
后镜像    
20 Personnel 
emp.dept

trail文件中会写入上述后镜像的一些信息,从库在通过这些信息修改备库数据。

ps:也有一些其他的数据库通过记录rowid方式实现,但这种方法有明显的弊端。

四、开启附加日志需要注意的有:

1.对于无主键和唯一键的表,虽然可以以所有列作为基准代替,但是这种表会产生大量的日志量和回滚段的开销。

2.在添加附加日志时。有时候Lock会导致无法打开表的附加日志;

3.添加过程中如果一个表报错未加成功,后面就不执行,后面的表全部未增加附加日志;

这里只是列举了部分,其他的还需要自己发现或在生产中总结

上述内容就是如何进行GoldenGate附加日志的理解,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. oracle附加日志(supplemental log)
  2. goldengate 缺少归档日志abend处理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

goldengate

上一篇:OGG复制进程延迟不断增长怎么办

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》