- 下载 vlog_health_checker
tar -xzf vlog_health_checker.tgz
保存 binlog 过程中,因为磁盘写满等意外导致出现不完整的写入,使 pump 在内存中维护的文件指针出现偏差,影响后续 binlog 位置的索引。 使用 vlog_health_checker 的第一步,就是先检查确定是否是上述场景。
pump 启动时指定的 -data-dir
下面会有两个子目录:
kv
: 索引 binlog 数据value
: 存放 binlog 数据,出现损坏的 vlog 文件在这个目录下
这个工具需要打开 pump 使用的 LevelDB,所以需要先停掉 pump
vlog_health_checker -kv_dir kv路径 疑似损坏的vlog路径
在输出中,察看是否存在 Corruption detected
后跟着 Pointer offset mismatch
的现象,如果有就可以确定是适用的场景。
vlog_health_checker -kv_dir kv路径 -repair 疑似损坏的vlog路径
修复就是在检查命令上面再加上 -repair
参数,它会扫描指定的 binlog vlog 文件,并将正确的位置写入指定 kv 目录中的索引。