前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mariadb数据同步功能

mariadb数据同步功能

原创
作者头像
云售后焦俊成
修改2020-07-20 12:33:14
1.3K0
修改2020-07-20 12:33:14
举报

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操作,也是正常同步的

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MariaDB
腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档