探讨一下,如何用开源替代Oracle Goldengate - 墨天轮

标签: | 发表时间:2022-01-23 21:26 | 作者:
出处:https://www.modb.pro

大家好,今天我们要来探讨一下如何用开源替代Oracle Goldengate软件。因为ogg是商业软件。所以我们要想办法在今后的运维中进行开源替换。

debezium

比较有名的就是debezium,它是一个开源项目,为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台。

它的架构如图所示,它通过kafka connect将变更后的数据传入kafka,然后在给下游的消费者使用。

从它的兼容矩阵上可以看到,当前1.5稳定版是支持12c和19c数据库的。

那么我们来看看,它是通过什么方式来获取Oracle的变更数据的。

通过官方文档的资料,我们可以发现它当前有两种模式。一种是通过本机的Oracle LogMiner来实现(免费 API),另外一个是通过Oracle Xstream的来实现,使用 XStream API,您需要拥有 GoldenGate 产品的许可证(尽管不需要安装 GoldenGate)。也就是说想要绕开Oracle GoldenGate,就只能使用Oracle自带的LogMiner。

但是LogMiner又牵扯到另外一个有意思历史问题。我们来了解一下。

引起这个问题的特性叫 Continuous Mining

Oracle最初创建Logminer目的是使用该工具手动做一些逻辑恢复,比如开发做了一个误操作删了一条数据,就可以通过Logminer挖掘回来。同时也可以帮助进行取证分析,比如有人干坏事拒不承认,也是可以找到证据的。

这个免费API设计初衷并不是为了大型的变更而构建的,LogMiner在任何给定时间最多消耗1个CPU。由于 CPU 限制,LogMiner每秒无法处理超过10,000次以上的更改,当然这个数字也会随着更改大小的增加而减小。此外可能还会出现网络故障或者延迟的情况,如果系统无法从中断中迅速的恢复,LogMiner将持续的滞后。在每秒处理 50,000-60,000 次更改的系统中,LogMiner 永远跟不上数据更新的速度。

为了简单连续的流式更改,而不必总停止和启动LogMiner读取每个重做日志文件,Oracle在Logminer中开发了 Continuous Mining(连续挖掘)的功能。有了这个选项就可以订阅Logminer事件流,并在数据库发生更改时收到通知。但是这个情况在2019年1月Oracle 推出19c发生了改变,Oracle宣布不再支持continuous_mine选项,连续挖掘的遭到弃用然后变为不支持状态。

我们来看一下debezium讨论组对这个问题的探讨,从基本回答来看, log.mining.continuous.mine控制是否使用连续挖掘,默认不使用。

不过大佬们说了可以不依赖于连续挖掘的功能,能够在19c上正常的工作。所以说如果我们使用debezium应该是没有问题的。

yugong

第二个我们想到的工具是yugong,之前我们从Oracle迁移到MySQL就用到这个工具,写这个工具的人真的是一个大神,它完美的使用了另外一个解决办法,而且这个解决办法在我看来还有一些黑科技。

先来看它的工作原理,它使用的是物化视图日志。

物化视图日志有一个 黑科技,今天我要隆重推荐一下。

物化视图的快速刷新,是可以将语句合并的,比如insert和update它可以合并成一个merge,所以它比ogg这类软件要快。其实像割接这样的工作,本质上我们不需要管它的过程,我们只需要管最终结果一致就行了。

其他

当然网上还有一些技术方案,例如 symmetricds,它是基于触发器的方案,也是开源的。

Flink CDC暂时还不支持Oracle数据库,它也使用了debezium。袋鼠云开源了一个flinkx,基于logminer的,但缺点是不支持RAC,不过相信未来的版本会支持的。

相关 [探讨 开源 oracle] 推荐:

探讨一下,如何用开源替代Oracle Goldengate - 墨天轮

- -
大家好,今天我们要来探讨一下如何用开源替代Oracle Goldengate软件. 所以我们要想办法在今后的运维中进行开源替换. 比较有名的就是debezium,它是一个开源项目,为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台. 它的架构如图所示,它通过kafka connect将变更后的数据传入kafka,然后在给下游的消费者使用.

阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

- - agapple
   08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步. .

Oracle 收购 Ksplice

- feng823 - LinuxTOY
实现无需重启即可为 Linux 内核打安全补丁的 Ksplice 被 Oracle 收购. 在被收购前, Ksplice 为 Fedora, Ubuntu 免费提供该功能,对于 RHEL 和 CentOS 则需要订阅其产品. Oracle 表示将把 Ksplice 带来的零宕机安全更新功能添加到 Oracle 产品订阅服务中,同时停止对其他企业级 Linux 发行版的支持,将 Oracle Unbreakable Linux 打造成唯一具备零宕机安全更新功能的企业级 Linux 发行版.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

oracle license计算

- Fenng - eagle's home
Oracle license的计算是基于CPU core的. 用core的数目乘以一个系数core factor就可以得到所需的oracle license的数目. 对于不同的CPU,core factor是不一样的,可以从oracle提供的这张列表中查到 Oracle Processor Core Factor Table.

Oracle Exadata初探

- - 技术改变世界 创新驱动中国 - 《程序员》官网
在我们看来,它是一个把硬件和软件根据合理的配置整合在一起的 Oracle数据库(在本文编写时是11gR2版本)平台. Exadata数据库机器包含了存储子系统,在存储层上运行着研发的新软件,这使得研发人员可以做一些在其他平台上无法完成的事情. 实际上,Exadata一开始是以一个存储系统形式诞生的,如果你跟参与研发此产品的人交谈,你经常会听到他们称存储组件为Exadata或者是SAGE (Storage Appliance for Grid Environments,网格环境存储设备),这是该产品研发项目的代码名称.

Oracle MySQL Or NoSQL续

- - Sky.Jian 朝阳的天空
接前面一篇,这里再将之前在“中国系统架构师大会”5周年的时候发布的纪念册“IT架构实录”上的一篇文章发出来,也算是前面博文中PPT的一个文字版解读吧. Oracle,MySQL 还是 NoSQL. 随着阿里系的“去IOE”运动在社区的宣传声越来越大,国内正在掀起一股“去xxx”的技术潮. 不仅仅是互联网企业,包括运营商以及金融机构都已经开始加入到这个潮流之中.

[转]Oracle 碎片

- - 小鸥的博客
  当生成一个数据库时,它会 分成称为表空间( Tablespace )的多个逻辑段( Segment ),如系统( System )表空间 , 临时( Temporary )表空间等. 一个表空间可以包含多个数据范围( Extent )和一个或多个自由范围块,即自由空间( Free Space ).

oracle 索引

- - 数据库 - ITeye博客
        自动:在使用primary和unique后系统会自动创建唯一索引.         手动:create   index   索引名  on 表名(字段1,....). 查询表上有哪些索引(网上找的,能用,表名和索引名要大写). 1、查找表的所有索引(包括索引名,类型,构成列):. select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表.