暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

海量智库第14期|exBase实现国外主流商用数据库与Vastbase G100双向数据实时同步的方法

海量数据 2023-07-12
1318


背景技术


用户在使用Vastbase G100数据库替换国外主流商用数据库时,迁移数据后,应用也会在Vastbase G100数据库上运行;客户在验证新库是否完全符合应用要求前,备份应用还会继续在源数据库上运行。此时就需要方法确保源数据库与Vastbase G100上的应用数据能够相互同步。

这里介绍exBase基于MySQL binlog和PostgreSQL decoderbufs实现MySQL与Vastbase G100数据库之间的双向数据实时同步方案。


 

技术方案


MySQL端通过binlog采集到MySQL的变更,判断该事务中是否含有标记,含有标记的变更事务丢弃,不含有标记的事务发送给Vastbase G100应用端,拼接标记后写入到Vastbase G100中;


Vastbase G100端通过decoderbufs采集Vastbase G100的变更,判断该事务中是否含有标记,含有标记的变更事务丢弃,不含有标记的事务发送给MySQL应用端,拼接标记后写入到MySQL中。exBase可以通过该方法,实现MySQL与Vastbase G100数据库之间的数据增量同步,且能防止回环写入。



附图及附图的简单说明:

(1)图一为实施例一以MySQL出发实现同步流程;
(2)图二为实施例一以Vastbase G100出发实现同步流程。

图一


图二


具体实施方式


图一和图二两个流程合并起来之后才是一个完整的流程,现在分开分别说明,图一为MySQL端流程,图二为Vastbase G100端流程。

MySQL端:


步骤1:配置MySQL binlog服务:


①实现本技术方案需要MySQL 端配置binlog。开启binlog需要调整MySQL的数据库权限,详细如下:

授权语句如下

【说明】
授权语句中:<MySQL用户>指的是连接MySQL数据源时的用户名,根据实际情况进行修改。


②在MySQL的配置文件my.cnf中配置参数。

【说明】
·log-bin选项配置的是binlog日志目录,设置此目录则表示开启了 binlog日志。
·log-bin可以直接取值为mysql-bin,即默认表示其位置在/var/lib/mysql/目录下;也可以设置为绝对路径。


③完成后是service MySQL restart命令重启数据库


步骤2:连接到MySQL数据库,在需要同步的schema下创建mark_down表,执行以下命令创建mark_down表:


步骤3:exBase连接到binlog,获取MySQL数据库的变更事务sql;


步骤4:判断sql中是否包含:update mark_down set update_time...的标记操作,如果是,则丢弃该采集记录,如果否,把该记录发送给应用端;


步骤5:应该端接收到变更记录后,在每条记录前拼接一条标记sql:update mark_down set update_time =current_timpstamp;然后写入到openGauss库中。


Vastbase G100端:


步骤1:Vastbase G100配置decoderbufs

配置默认Vastbase G100是已经安装了decoderbufs,安装过程不在赘述。


④修改配置文件 postgresql.conf
wal_level 改为 logical
shared_preload_libraries 选项添加 decoderbufs 
根据需要调整 max_wal_senders 和 max_replication_slots 的数量,默认值是 10 ,表示最多只能建立10个复制槽。


⑤重启Vastbase G100数据库。


步骤2:连接到Vastbase G100数据库,在需要同步的schema下创建mark_down表,执行以下命令创建mark_down表:


步骤3:exBase连接到decoderbufs,获取Vastbase G100数据库的变更事务sql;


步骤4:判断sql中是否包含:update mark_down set update_time...的标记操作,如果是,则丢弃该采集记录,如果否,把该记录发送给应用端;


步骤5:应该端接收到变更记录后,在每条记录前拼接一条标记sql:update mark_down set update_time =current_timpstamp;然后写入到MySQL库中。


图文编辑|程筱淇

内容审核|市场营销部


于海量数据

北京海量数据技术股份有限公司(股票代码:603138.SH)成立于2007年,是国内首家以数据库为主营业务的主板上市企业。公司十余年来秉承“专注做好数据库”的初心,始终致力于数据库产品的研发、销售和服务。核心产品海量数据库Vastbase系列、数据库一体机Vastcube系列,全栈国产化,应用满足度高,目前广泛应用于政务、制造、金融、通信、能源、交通等多个重点行业,已成为国产企业级数据库的首选之一。


文章转载自海量数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论