问题描述:
升级配置文件配置错误,kafka地址指向的是测试环境,同步脚本拉取测试环境数据把线上环境的topic和flume相关信息删除。系统没有全备份但是二进制日志是全的;
问题定位:
1、mysql没有general log
2、查看前一个binlog文件,有删除语句
3、 查看是否为程序删除,找到对应语句,通过日志关键字在程序中查找
grep /runtime/log/201812/10.log "DELETE FROM `rtime_flume_info`"
分析代码和日志url地址,确定为同步时接口地址配置出错,查看当前配置文件,果然配置出错,修改为正确的配置。
解决步骤:
1、全量备份当前数据库状态,用于修改出错恢复到当前状态。
mysqldump -uroot -p dbname > dbname_20181211.sql
2、查看binlog文件是否完整
mysqlbinlog --no-defaults mysql-bin.000001 > 01.sql
可以找到create db 语句
mysqlbinlog --no-defaults mysql-bin.000010 > 10.sql
mysql-bin.000010 为最后的一个binlog文件,找到删除操作对应的pos位置为 51313959,所以通过执行一遍binlog文件可以恢复到删除操作之前的数据库状态
3、在测试环境起一个mysql服务