MySQL新增库后,Maxwell异常的处理

MySQL新增了一个库,然后重启Maxwell失败了

库是使用阿里云的dts服务接进来的,下面是my.cnf的具体配置,红色是新增的库

#binlog每个日志文件大小
log-bin=/data/mysql/log/mysql-bin
#配置serverid
server-id=1
#binlog每个日志文件大小
max_binlog_size = 1024M
#设置日志三种格式:STATEMENT、ROW、MIXED 。
binlog-format = row
binlog-do-db=aaa
binlog-do-db=bbb
expire_logs_days=3
max_connections=2000
net_write_timeout=600
character_set_server=utf8

然后启动Maxwell失败,报错

MySQL新增库后,Maxwell异常的处理_第1张图片

上边的报错原因就是因为更新了my.cnf,重启MySQL出的问题

初步解决办法就是

> show binary logs;  //获取binlog文件列表,对应xxx.index;

> show master logs;  //查看主上的binlog;

> show master status;  //查看当前正在写入的binlog文件;

> flush logs;    //让二进制日志重新生成新文件,并自动清理过期日志,刷新xxx.index;

获取以上数据

更新my.cnf文件,并重启MySQL服务

根据获取的数据删除无用的binlog日志,每次重启mysql之后都会执行flush logs,生成新的二进制日志文件,切记不可使用reset master,主要是生产环境下成本过高

使用mysqlbinlog工具查看binlog文件中的数据,判断时间,获取偏移量

执行命令查看日志结构 >show binlog events in '正在写的日志文件名';

首先删除maxwell库下的表,启动Maxwell重新初始化maxwell库下的表,期间监控kafka主题是否有数据,当有数据是,结合上一步数据判断数据是否到了所需的地方

再次执行> show master status;

        +-------------------------+----------+-------------------+-----------------------+
        |            File              |Position|Binlog_Do_DB|Binlog_Ignore_DB|
        |mysql-binlog.xxxxxx|  xxxx   |                        |            |                |
        +-------------------------+----------+-------------------+-----------------------+

根据数据修改MySQL中Maxwell库的positions表的binlog_position与Position一致
重新启动Maxwell

未完待续。。。

你可能感兴趣的:(大数据)