暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sync-diff-inspector

原创 luckyone 2022-07-05
1099

sync-diff-inspector 是一个用于校验 MySQL/TiDB 中两份数据是否一致的工具。该工具提供了修复数据的功能(适用于修复少量不一致的数据)。

sync-diff-inspector 的使用限制

  • 对于 MySQL 和 TiDB 之间的数据同步不支持在线校验,需要保证上下游校验的表中没有数据写入,或者保证某个范围内的数据不再变更,通过配置 range 来校验这个范围内的数据。

  • 不支持 JSON、BIT、BINARY、BLOB 等类型的数据,在校验时需要设置 ignore-columns 忽略检查这些类型的数据。

  • FLOAT、DOUBLE 等浮点数类型在 TiDB 和 MySQL 中的实现方式不同,在计算 checksum 时会分别取 6 位和 15 位有效数字。如果不使用该特性,需要设置 ignore-columns 忽略这些列的检查。

  • 支持对不包含主键或者唯一索引的表进行校验,但是如果数据不一致,生成的用于修复的 SQL 可能无法正确修复数据。

sync-diff-inspector 所需的数据库权限

sync-diff-inspector 需要获取表结构信息、查询数据,需要的数据库权限如下:

  • 上游数据库

    • SELECT(查数据进行对比)

    • SHOW_DATABASES(查看库名)

    • RELOAD(查看表结构)

  • 下游数据库

    • SELECT(查数据进行对比)

    • SHOW_DATABASES(查看库名)

    • RELOAD(查看表结构)

配置文件说明

sync-diff-inspector 的配置总共分为五个部分:

  • Global config: 通用配置,包括校验的线程数量、是否输出修复 SQL 、是否比对数据等。
  • Datasource config: 配置上下游数据库实例。
  • Routes: 上游多表名通过正则匹配下游单表名的规则。(可选)
  • Task config: 配置校验哪些表,如果有的表在上下游有一定的映射关系或者有一些特殊要求,则需要对指定的表进行配置。
  • Table config: 对具体表的特殊配置,例如指定范围、忽略的列等等。(可选)

下面是一个完整配置文件的说明:

  • 提示:配置名后带 s 的配置项允许拥有多个配置值,因此需要使用方括号 [] 来包含配置值。

主要功能:

你可通过以下方式下载 sync-diff-inspector:

  • Binary 包。sync-diff-inspector 的安装包位于 TiDB 离线工具包中。下载方式,请参考 TiDB 工具下载

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论