mysql数据分发_如何利用MySQL golden gate 分发数据库同步消息至ActiveMQ

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

Oracle golden gate是甲骨文推出的一款数据库同步软件,可以实现异构数据库之间的亚秒级同步,它不仅仅支持Oracle,还支持Mysql和一些业界常用数据库。Ogg可以自动抽取表级数据的动态变化,直接将同步信息作用于目标数据库。然而,在某一些场景之中,我们并不需要将同步信息直接作用于目标数据库,而是将其保存在队列中,然后在队列中取出这些信息,完成一些下游系统的业务需求,这样可以让增量同步更加灵活。本篇文章主要讲述如何,配置Ogg来抽取源表的同步信息生成trail文件(Ogg专属同步文件),并利用分发器读取trail文件,适配成可以解析的xml,将其作为消息发送给队列。本文将不再讲诉一下关于安装的步骤,直接上干货。

oracle归档和日志

Oacle归档模式是ORACLE热备份的必要条件,特别是7X24生产的数据库。可以这么认为:归档日志是增量同步的数据源,因此必须开启。可以通过下面的的指令查看是否开了归档:

SQL> archive log list

Ogg抽取进程

开启了归档和日志,ogg就有数据源来获取同步信息。而具体的工作是由Ogg抽取进程来完成的,抽取进程将需要同步表的日志文件抽取成trail文件。而trail文件就是Ogg专属的记录文件,它保存了表级的更新信息。trail是『痕迹』的意思,其实这个单词也很好诠释了这个文件所要维护的信息。

Ogg传输进程

抽取进程生成了trail文件,trail文件保留了表级的更新信息,我们可以利用这个trail文件来恢复目标表。一般而言,目标表所在的数据库并不是和源表在同一个物理机之上,因此,ogg提供了一个传输进程来将trail传输到目标机器上,同时,目标机器上也运行着Ogg服务,将trail中的信息转化成数据库动作,完成数据同步。在这里,我的目标其实ActiveMq队列,因此,只要将同步信息分发到队列中,那就完成了我们的工作。

Ogg分发进程

分发进程可以将trail文件以一定的格式(一般都是xml)分发给消息队列,它其实消费了trail文件。

管理进程

顾名思义,管理进程就是可以对其他所有的进程进行管理,任务调度。一个OGG服务中只有一个管理进程,但是可以拥有多个其他进程。

Ogg的实质是读取Oracle表在更新之时生成的 redo log。redo log是记录事务已经commit的动作,所以我们不需要考虑更新的事务性。我们可以将有同步需求的表开启logging。没有开启logging的表是无法被Ogg获取到同步信息的,注意Oracle数据库先要开启归档模式。

sql>alter table OGG_TEST1 logging;

利用以上的语句可以开启OGG_TEST1这个表的logging状态。

同时,需要将同步信息添加到OGG:

ggsci > add trandata OGG_TEST1

ggsci是ogg提供的交互终端,在ogg根目录输入https://blog.csdn.net/u011199646/article/details/ggsci就可以进入。也可以利用下面的语句查看是否成功添加成功:

ggsci>info trandata OGG_TEST1

进入交互终端

https://blog.csdn.net/u011199646/article/details/ggsci

1.生成必要文件夹

这一步,主要是生成一些OGG服务需要的文件夹,这些文件夹是OGG服务的默认路径,比如,文件夹保存这各种参数文件,ogg会默认从这个文件夹中读取运行参数。

ggsci > create subdirs

2.启动管理进程

启动管理进程是配置其他进程的第一步,不然没法启动其他进程。

配置管理进程参数

GGSCI > edit params mgr

port 7839

DYNAMICPORTLIST 7840-7850

AUTOSTART EXTRACT *

AUTORESTART EXTRACT *

PURGEOLDEXTRACTS https://blog.csdn.net/u011199646/article/details/dirdatoracle11.2上利用OGG…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值