TiDB数据迁移工具Syncer的使用

在将数据迁移到 TiDB 过程中,通过使用 mydumper 和 loader 可以实现存量数据的整体迁移,之后的增量数据可以借助官方提供工具 syncer。其基本原理就是将 syncer 作为待同步数据的 MySQL 服务器的一个 slave,通过读取 binlog 实现和 master 的同步。

因为我们迁移的情况和官方文档示例的情况不太相同,因此也遇到一些坑,在此总结一下。

指定待同步的binlog

syncer 同步时需要一个用于指定 binlog pos 的 meta 文件,binlog 相关的信息可以从 loader 导出的文件 metadata 中看到

binlog-name = "mysql-bin.000700"
binlog-pos = 281874470
binlog-gtid = ""

metadata 文件内容一般是如下形式

Started dump at: 2018-12-24 17:26:37
SHOW MASTER STATUS:
        Log: mysql-bin.000700
        Pos: 281874470
        GTID:

SHOW SLAVE STATUS:
        Host: 10.x.1x.2xx
        Log: mysql-bin.007363
        Pos: 971282247
        GTID:

Finished dump at: 2018-12-24 18:49:05

我们在同步过程中是将 syncer 连接了从库 db05 上,使用的是 master 的 binlog mysql-bin.000700,使用 slave 的 binlog 将无法正常同步。

数据库重命名

另外由于我们要同步的数据库发生了重命名,比如源数据库是 online_1,现在在 TiDB 上重命名为 online_2,这种情况在官方文档没有配置说明,正确的配置应该是下面这样,才能将 online_1 上的表同步到 ask_1。注意 replicate-do-table 配置下面需要制定的是目的方数据库,配置为源数据库不能同步数据。另外路由表本是由于合并分库分表数据,这里用来迁移不同数据库甚至不同表名的数据。

[[replicate-do-table]]
db-name ="online_2"
tbl-name = "ask_1"

[[route-rules]]
pattern-schema = "online_1"
pattern-table = "ask_1"
target-schema = "online_2"
target-table = "ask_1"

同步完成之后就可以在monitor查看同步情况了


sync监控
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘要: 本文为今年年初 PingCAP 商业产品团队负责人刘寅在 TiDB DevCon2018 上分享的 《 T...
    nightwish夜愿阅读 6,809评论 0 11
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,039评论 2 89
  • 婆,身形削瘦,背微弯,脸上全是皱纹,小小的眼睛,无牙,真的是一颗牙都没有,头发总是盘成一个发髻。 婆总是穿着一件边...
    国宴阅读 284评论 11 8
  • 2016年我体会到7年之痒,我感觉到患得患失,预想到将来有一天没有了感情剩下的牵挂只是没有为我伤害买单,很久以前就...
    cc6a664686e8阅读 217评论 0 0
  • 灵魂的味道 这些天的天气都特别的热,空气质量也并没有得到多少改善,天热中、空气下人们的心态就会产生一定的变化,这也...
    林子2016阅读 278评论 0 3