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

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

图一

图二
具体实施方式
步骤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系列,全栈国产化,应用满足度高,目前广泛应用于政务、制造、金融、通信、能源、交通等多个重点行业,已成为国产企业级数据库的首选之一。





