IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MySQL-Could not find first log file name in binary log index file

    vgbhfive发表于 2023-04-02 12:41:26
    love 0

    复现

    在之前的博客中说明过,我负责的业务有数据同步的需求,是从 MySQL 实时同步数据到 ClickHouse,为此我们使用了一个工具 clickhouse-mysql-data-reader,该工具的底层是通过监听 MySQL 的 bin log 来实现实时同步数据。

    就在今早,数据同步不知为何停止了,当发现问题重新拉起同步任务时,就发现同步脚本出现了异常:

    1
    Could not find first log file name in binary log index file

    思考问题

    在看过异常报错信息之后,其大致是因为同步脚本停止了同步任务,之后就没有更新本地的 bin log 索引,此时等待我再拉起同步任务时,同步脚本使用本地未修改的 bin log 索引去 MySQL 拉取数据时,MySQL 的 bin log 索引经过业务数据的写入已经覆盖了之前的索引,同步脚本没有找到对应的索引就抛出异常。


    解决方案

    那么就下来的问题就是如何查找正确的 bin log 索引,然后修改同步脚本的 bin log 索引即可恢复同步数据。

    1
    show binary logs;

    上述命令可以帮助你查看到 MySQL 最新的 bin log 索引,之后同步修改脚本的 bin log 索引即可。

    那么关于两次索引之间的数据如何同步呢?可以通过添加 where case 采用 select 的形式同步数据,更多的操作可以参考同步工具的使用文档。


    引用


    个人备注

    此博客内容均为作者学习所做笔记,侵删!
    若转作其他用途,请注明来源!



沪ICP备19023445号-2号
友情链接