3.执行这个 GTID 的事务
- SET SESSION GTID_NEXT='对应的 GTID 值';
- BEGIN; COMMIT;
- SET SESSION GTID_NEXT = AUTOMATIC;
4.继续同步
5 闪回
闪回操作就是反向操作,比如执行了 delete from a where id=1,闪回就会执行对应的插入操作 insert into a (id,...) values(1,...),用于误操作数据,只对 DML 语句有效,且要求 binlog 格式设为 ROW。本章介绍两个比较好用的开源工具
5.1 binlog2sql
binlog2sql 是大众点评开源的一款用于解析 binlog 的工具,可以用于生成闪回语句,项目地址 binlog2sql
5.1.1 安装
- wget https://github.com/danfengcao/binlog2sql/archive/master.zip -O binlog2sql.zip
- unzip binlog2sql.zip
- cd binlog2sql-master/
- # 安装依赖
- pip install -r requirements.txt
5.1.2 生成回滚SQL
- python binlog2sql/binlog2sql.py --flashback
- -h<host> -P<port> -u<user> -p'<password>' -d<dbname> -t<table_name>
- --start-file='<binlog_file>'
- --start-datetime='<start_time>'
- --stop-datetime='<stop_time>' > ./flashback.sql
- python binlog2sql/binlog2sql.py --flashback
- -h<host> -P<port> -u<user> -p'<password>' -d<dbname> -t<table_name>
- --start-file='<binlog_file>'
- --start-position=<start_pos>
- --stop-position=<stop_pos> > ./flashback.sql
5.2 MyFlash
MyFlash 是由美团点评公司技术工程部开发维护的一个回滚 DML 操作的工具,项目链接 MyFlash
限制:
- binlog格式必须为row,且 binlog_row_image=full
- 仅支持5.6与5.7
- 只能回滚DML(增、删、改)
5.2.1 安装
- # 依赖(centos)
- yum install gcc* pkg-config glib2 libgnomeui-devel -y
- # 下载文件
- wget https://github.com/Meituan-Dianping/MyFlash/archive/master.zip -O MyFlash.zip
- unzip MyFlash.zip
- cd MyFlash-master
- # 编译安装
- gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
- mv binary /usr/local/MyFlash
- ln -s /usr/local/MyFlash/flashback /usr/bin/flashback
5.2.2 使用
生成回滚语句
- flashback --databaseNames=<dbname> --binlogFileNames=<binlog_file> --start-position=<start_pos> --stop-position=<stop_pos>
执行后会生成 binlog_output_base.flashback 文件,需要用 mysqlbinlog 解析出来再使用
- mysqlbinlog -vv binlog_output_base.flashback | mysql -u<user> -p
【编辑推荐】
- 如何在Docker中部署MySQL数据库?
- 企业使用数据库的12种姿势
- 打破MySQL变慢瓶颈,是它们限制了MySQL性能
- 网络带宽如何影响 MySQL 性能
- MongoDB数据库误删后的恢复
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|