1、首先安装git和pip

yum -y install git  python-pip

yum -y install git  python-pip

2、从Git上获取binlog2sql

git clone https://github/danfengcao/binlog2sql.git && cd binlog2sql
pip install -r requirements.txt

3、以上为直接从git获取并安装,如内网操作无法联通外网则自行上传依赖安装(私信获取安装包依赖)

# tar xvf binlog2sql.tar.gz

# cd binlog2sql/binlog2sql_dependencies/
# tar xvf setuptools-0.6c11.tar.gz

# cd setuptools-0.6c11

# python setup.py install
# cd ..

# tar xvf pip-9.0.1.tar.gz

# cd pip-9.0.1

# python setup.py install
# cd ..

# pip install *.whl mysql-replication-0.9.tar.gz

最终完成安装后

 

完成安装后登录数据库确认一以下参数

server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full

4、解析binlog日志

首先登录数据库服务器后,查看当前最新binlog

show master logs;

 

刷新日志,从当前时间点建立新日志,防止解析时日志文件时过大而导致耗时久。

flush  logs;

 

进入安装binlog2sql 目录下执行如下命令。命令中参数设置需注意用户权限。

python binlog2sql.py -h 数据库IP -P 端口 -u 用户名 -p 密码 -d schema  -t table --start-file binlog名称 > reback.sql

执行后生成操作时误操作SQL。一般限定到某某库某某数据表。生成后的文件保存在当前目录

通过解析找到如下误操作语句

反向生成修复SQL

python binlog2sql.py -h 数据库IP -P 端口 -u 用户名 -p 密码 -d schema  -t table --start-file binlog名称 > roll.sql   -B

 

拿出需恢复脚本进行操作

 

最后修复完成。

以上仅供测试环境恢复验证,binlog日志需在发现问题后第一时间打断点或定位保留。生产数据库须严格流程操作。

更多推荐

Mysql数据库简单回滚操作