美文网首页
TiDB数据迁移工具Syncer的使用

TiDB数据迁移工具Syncer的使用

作者: luckriver | 来源:发表于2018-12-29 13:49 被阅读0次

在将数据迁移到 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监控

相关文章

网友评论

      本文标题:TiDB数据迁移工具Syncer的使用

      本文链接:https://www.haomeiwen.com/subject/oqwulqtx.html