跳转到主要内容

ninedata&&数据库工具

前沿

项目微服务化后,势必出现一些基础数据的冗余,常见方法有字段冗余、整表冗余。为降低难度,我们优选了整表冗余。在通过同步工具进行表同步。

常见的表同步工具有:

这两个工具原来一样,把自己伪装成一个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语句是差异一只(永远是以源为基准)