go-mysql-elasticsearch dump.go:164 skip dump, use last binlog replication pos

avatar 2019年02月02日23:46:19 6 2635 views
博主分享免费Java教学视频,B站账号:Java刘哥
刚才使用 go-mysql-elasticsearch 将 mysql 中的数据同步到 elasticsearch 中。 执行 ./bin/go-mysql-elasticsearch -config=./etc/river.toml 命令开始 dump 数据和同步 第一把是没问题的,但是我把索引删了,数据全部删了,准备重新同步。 第二把成功不了,看报错是 dump skip 了 日志信息如下
  1. [2019/02/02 22:32:45] [info] binlogsyncer.go:111 create BinlogSyncer with config {1 mysql 127.0.0.1 3306 root   utf8 false false <nil> false false 0 0s 0s 0}
  2. [2019/02/02 22:32:46] [info] status.go:53 run status http server 127.0.0.1:12800
  3. [2019/02/02 22:32:46] [info] dump.go:164 skip dump, use last binlog replication pos (mysql-bin.000002, 335) or GTID set %!s(<nil>)
  4. [2019/02/02 22:32:46] [info] binlogsyncer.go:323 begin to sync binlog from position (mysql-bin.000002, 335)
  5. [2019/02/02 22:32:46] [info] binlogsyncer.go:172 register slave for master server 127.0.0.1:3306
  6. [2019/02/02 22:32:46] [info] sync.go:31 start sync binlog at binlog file (mysql-bin.000002, 335)
  7. [2019/02/02 22:32:46] [info] binlogsyncer.go:692 rotate to (mysql-bin.000002, 335)
  8. [2019/02/02 22:32:46] [info] sync.go:73 rotate binlog to (mysql-bin.000002, 335)
  9. [2019/02/02 22:32:46] [info] master.go:54 save position (mysql-bin.000002, 335)
也没有报错,不往下执行了,数据也不同步了。   看到上面的 skip dump,大概猜出是这个搞的鬼 然后在 github 的 issue 里搜了一把,找到了解决方案 https://github.com/siddontang/go-mysql-elasticsearch/issues/115  

原因和解决方案

原因 master.info 文件记录上一次同步位置 该文件里内容如下 如果有这个文件,从该文件中的 bin_pos 开始同步   查看 binlog 数据 因为日志位置 335 之后没有更新,所以没有任何新的数据同步进来。     其实,这个时候,如果我们往数据库添加两条记录,会同步两条的。   我这里的解决方案就是删除掉 master.info  文件 完整位置 go-mysql-elasticsearch/var/master.info                    
  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0