ninedata&&数据库工具
前沿
项目微服务化后,势必出现一些基础数据的冗余,常见方法有字段冗余、整表冗余。为降低难度,我们优选了整表冗余。在通过同步工具进行表同步。
常见的表同步工具有:
- maxwell https://maxwells-daemon.io/
- canal https://github.com/alibaba/canal
这两个工具原来一样,把自己伪装成一个slave,订阅binlog日志,推送到消息队列,其中包括了数据如何变化,例如增删改,原始数据,修改后的数据。开发者开发数据订阅处理。需要多个组件、写大量代码实现。暂时不考虑
第二个工具是,otter,基于canal,直接表对表同步,即otter实现了修改订阅,直接进行库对库同步。简单易用,但是暂时不支持mysql 8,且更新至2019年即没有在更新了。不过对于mysql sql5.7的支持尚可,虽然有一些bug,基本能满足要求,一些常见问题也积累了相关经验
otter相关文档
github:https://github.com/alibaba/otter
常见问题:https://iovhm.com/book/books/42e7a/page/otter
ninedata
因为otter偶尔会抽风,导致数据没有同步,我们需要一个数据比对工具,来保证需要同步的表的数据是一只的,ninedata就基本能满足这个要求了.
官方网址:https://www.ninedata.cloud/
核心功能:
- 慢sql分析
- 数据复制(用于数据搬迁和数据归档)
- 数据库结构对比
- 数据对比
- 查询分析器
社区版安装方法
version: "3"
services:
ninedata:
image: harbor.iovhm.com/public/ninedata:20250618
container_name: ninedata
restart: always
privileged: true
ports:
- "9999:9999"
volumes:
- ./data://u01
典型应用截图
安装完成后使用admin / admin 默认密码登陆
- 配置数据源
- 慢sql分析,需要先在mysql开启慢sql功能
- 数据比对
- 数据比对明细
- 查看两者的差异
- 查看差异详情并生成SQL语句是差异一只(永远是以源为基准)