背景技术
MySQL端通过binlog采集到MySQL的变更,判断该事务中是否含有标记,含有标记的变更事务丢弃,不含有标记的事务发送给Vastbase G100应用端,拼接标记后写入到Vastbase G100中;
Vastbase G100端通过decoderbufs采集Vastbase G100的变更,判断该事务中是否含有标记,含有标记的变更事务丢弃,不含有标记的事务发送给MySQL应用端,拼接标记后写入到MySQL中。exBase可以通过该方法,实现MySQL与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库中。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!