mariadb数据同步功能

2020-07-20 12:33:14 浏览数 (2)

mariadb支持多源同步,一对多,多对一,都是ok的,不不过还是会有或多或少的问题,无论是和业务相关,还是数据同步本身的一些限制,整理下平时遇到的一些问题,希望对小伙伴们有帮助。

1、搭建过程

控制台页面:https://console.cloud.tencent.com/tdsql/synctask

正则匹配:这里源库可以随便写,但是目标库只能是写 db.*

牢记下面几点:

至此数据同步任务就搭建成功了。

1.1、这里的同步主要分为以下几个阶段:

源实例导出冷备——》导入冷备到目标实例——》追增量

1.2、数据同步任务完全可以长期使用,任务稳定,非业务行为,一般问题不大

二、数据同步注意点

1、rename 操作和 truncate操作不同步

云mariadb要求建表就要指定主键

1.1 rename操作验证

源库修改完表名后,对t2表做数据更新操作,此时同步任务会报错,因为这个操作到目标库后会找不到t2表

处理方法:在目标库进行相关表的改名操作

任务恢复正常

注意:虽然rename 操作不同步,但是这里数据同步任务会去校验源库的新表,如果说发现了有新表,即t2,它是会再去同步t2的。

1.2 truncate操作验证

truncate操作不会导致任务报错,但是这里最好实在目标库也执行依次,否则会影响正常的数据一致性

1.3 正则匹配模式下的触发器/视图/存储过程是否同步

1.3.1 视图:

视图不同步,此时你在源库对视图做任何操作都是不影响任务,但是如果说其他数据修改依赖到这个视图,任务就会停止,需要我们手动在目标库创建视图

1.3.2 存储过程:

存储过程(Stored Procedure),是一组为了完成特定功能的SQL 语句,经过编译后存储在数据库中,用户通过指定存储过程的名字并给出参数来执行。

创建一个简单的存储过程来验证,可以看到不会同步

如果存储过程被执行了,这个数据更新操作是否会同步。

可以看到这个数据更新操作还是可以正常同步的

1.3.3 触发器也不同步,同样,触发器涉及到的数据更新操作也会同步

3、全量同步模式:

3.1 这里只有全量匹配支持视图/存储过程/触发器,其他两种匹配模式下这三个都不支持

3.2 验证rename操作,也是正常同步的

这里因为数据同步 并没有把相关报错打印在控制台侧,所以其实遇到如果收任务报错或者延迟大的情况下,可以根据自己的操作加上数据同步的限制来分析是哪里出现的问题,然后再去做相应的处理。

如果说不确定或者仍未解决,欢迎随时反馈给腾讯云侧

0 人点赞