mysql MyFlash使用
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,一.安装MyFlash1.安装条件binlog_format=ROWbinlog_row_image=FULL仅支持5.6与5.7,并且只能回滚DML2.安装unzip MyFlash.zipyum
千家信息网最后更新 2025年01月25日mysql MyFlash使用一.安装MyFlash
1.安装条件
binlog_format=ROW
binlog_row_image=FULL
仅支持5.6与5.7,并且只能回滚DML
2.安装
unzip MyFlash.zip
yum -y install glib2*
cd /data/MyFlash/MyFlash-master
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
*没有报错,证明安装成功
二.恢复场景
1.回滚整个文件
./flashback --binlogFileNames=haha.000041
mysqlbinlog binlog_output_base.flashback | mysql -h -u -p
2.回滚某个表的DML语句
-删除数据
mysql> show tables;
+---------------+
| Tables_in_wwj |
+---------------+
| t1 |
+---------------+
1 row in set (0.00 sec)
mysql> select * from t1;
+----+------+
| id | name |
+----+------+
| 5 | haha |
| 6 | mxt3 |
| 7 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
mysql> delete from t1;
Query OK, 3 rows affected (0.02 sec)
mysql> select * from t1;
Empty set (0.00 sec)
-生成恢复文件(回滚t1表的delete操作)
cd /data/MyFlash/MyFlash-master/binary
# ./flashback --databaseNames='wwj' --tableNames='t1' --sqlTypes='DELETE' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
-查看文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
-恢复
# /usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
恢复完成
mysql> select * from t1;
+----+------+
| id | name |
+----+------+
| 5 | haha |
| 6 | mxt3 |
| 7 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
3.恢复一段时间的binlog
-生成数据
[root@mysql5 mysql3307]# date
Thu Mar 29 05:41:00 CST 2018
insert into wwj.t3 values(4,'mxt2');
insert into wwj.t3 values(5,'mxt3');
insert into wwj.t3 values(6,'mxt4');
[root@mysql5 mysql3307]# date
Thu Mar 29 05:41:37 CST 2018
delete from wwj.t3;
[root@mysql5 mysql3307]# date
Thu Mar 29 05:42:57 CST 2018
- 回滚2018-03-29 05:41:37~2018-03-29 05:42:57 之间的操作
- 查看binlog
# /usr/local/mysql/bin/mysqlbinlog --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' mysql-bin.000001 --base64-output=decode-rows -v
- 生成恢复文件
./flashback --databaseNames='wwj' --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
- 查看回滚文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
- 执行回滚
/usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
- 查看恢复结果
mysql> select * from wwj.t3;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3.恢复一段position的binlog文件
- 生成数据
insert into wwj.t3 values(4,'mxt2');
insert into wwj.t3 values(5,'mxt3');
insert into wwj.t3 values(6,'mxt4');
insert into wwj.t2 values(4,'mxt2');
insert into wwj.t2 values(5,'mxt3');
insert into wwj.t2 values(6,'mxt4');
insert into wwj.t1 values(4,'mxt2');
insert into wwj.t1 values(5,'mxt3');
insert into wwj.t1 values(6,'mxt4');
mysql> delete from wwj.t3;
Query OK, 3 rows affected (0.01 sec)
mysql> delete from wwj.t2;
Query OK, 3 rows affected (0.01 sec)
mysql> delete from wwj.t1;
Query OK, 3 rows affected (0.00 sec)
-查看binlog
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 --base64-output=decode-rows -v
-确认恢复 mysql-bin.000001 position 1823~2487,生成恢复文件
# ./flashback --databaseNames='wwj' --start-position=1823 --stop-position=2487 --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
- 查看回滚文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
- 执行回滚
/usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
-查看数据
mysql> select * from wwj.t1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 17
Current database: *** NONE ***
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 7 | mxt2 |
| 5 | mxt3 |
| 8 | mxt3 |
| 6 | mxt4 |
| 9 | mxt4 |
+----+------+
6 rows in set (0.00 sec)
mysql> select * from wwj.t2;
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
mysql> select * from wwj.t3;
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
三.相关参数
1.安装条件
binlog_format=ROW
binlog_row_image=FULL
仅支持5.6与5.7,并且只能回滚DML
2.安装
unzip MyFlash.zip
yum -y install glib2*
cd /data/MyFlash/MyFlash-master
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
*没有报错,证明安装成功
二.恢复场景
1.回滚整个文件
./flashback --binlogFileNames=haha.000041
mysqlbinlog binlog_output_base.flashback | mysql -h -u -p
2.回滚某个表的DML语句
-删除数据
mysql> show tables;
+---------------+
| Tables_in_wwj |
+---------------+
| t1 |
+---------------+
1 row in set (0.00 sec)
mysql> select * from t1;
+----+------+
| id | name |
+----+------+
| 5 | haha |
| 6 | mxt3 |
| 7 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
mysql> delete from t1;
Query OK, 3 rows affected (0.02 sec)
mysql> select * from t1;
Empty set (0.00 sec)
-生成恢复文件(回滚t1表的delete操作)
cd /data/MyFlash/MyFlash-master/binary
# ./flashback --databaseNames='wwj' --tableNames='t1' --sqlTypes='DELETE' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
-查看文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
-恢复
# /usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
恢复完成
mysql> select * from t1;
+----+------+
| id | name |
+----+------+
| 5 | haha |
| 6 | mxt3 |
| 7 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
3.恢复一段时间的binlog
-生成数据
[root@mysql5 mysql3307]# date
Thu Mar 29 05:41:00 CST 2018
insert into wwj.t3 values(4,'mxt2');
insert into wwj.t3 values(5,'mxt3');
insert into wwj.t3 values(6,'mxt4');
[root@mysql5 mysql3307]# date
Thu Mar 29 05:41:37 CST 2018
delete from wwj.t3;
[root@mysql5 mysql3307]# date
Thu Mar 29 05:42:57 CST 2018
- 回滚2018-03-29 05:41:37~2018-03-29 05:42:57 之间的操作
- 查看binlog
# /usr/local/mysql/bin/mysqlbinlog --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' mysql-bin.000001 --base64-output=decode-rows -v
- 生成恢复文件
./flashback --databaseNames='wwj' --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
- 查看回滚文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
- 执行回滚
/usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
- 查看恢复结果
mysql> select * from wwj.t3;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3.恢复一段position的binlog文件
- 生成数据
insert into wwj.t3 values(4,'mxt2');
insert into wwj.t3 values(5,'mxt3');
insert into wwj.t3 values(6,'mxt4');
insert into wwj.t2 values(4,'mxt2');
insert into wwj.t2 values(5,'mxt3');
insert into wwj.t2 values(6,'mxt4');
insert into wwj.t1 values(4,'mxt2');
insert into wwj.t1 values(5,'mxt3');
insert into wwj.t1 values(6,'mxt4');
mysql> delete from wwj.t3;
Query OK, 3 rows affected (0.01 sec)
mysql> delete from wwj.t2;
Query OK, 3 rows affected (0.01 sec)
mysql> delete from wwj.t1;
Query OK, 3 rows affected (0.00 sec)
-查看binlog
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 --base64-output=decode-rows -v
-确认恢复 mysql-bin.000001 position 1823~2487,生成恢复文件
# ./flashback --databaseNames='wwj' --start-position=1823 --stop-position=2487 --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
- 查看回滚文件
# /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
- 执行回滚
/usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
-查看数据
mysql> select * from wwj.t1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 17
Current database: *** NONE ***
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 7 | mxt2 |
| 5 | mxt3 |
| 8 | mxt3 |
| 6 | mxt4 |
| 9 | mxt4 |
+----+------+
6 rows in set (0.00 sec)
mysql> select * from wwj.t2;
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
mysql> select * from wwj.t3;
+----+------+
| id | name |
+----+------+
| 4 | mxt2 |
| 5 | mxt3 |
| 6 | mxt4 |
+----+------+
3 rows in set (0.00 sec)
三.相关参数
点击(此处)折叠或打开
- Application Options:
- --databaseNames databaseName to apply. if multiple, seperate by comma(,)
- --tableNames tableName to apply. if multiple, seperate by comma(,)
- --start-position start position
- --stop-position stop position
- --start-datetime start time (format %Y-%m-%d %H:%M:%S)
- --stop-datetime stop time (format %Y-%m-%d %H:%M:%S)
- --sqlTypes sql type to filter . support INSERT, UPDATE ,DELETE. if multiple, seperate by comma(,)
- --maxSplitSize max file size after split, the uint is M
- --binlogFileNames binlog files to process. if multiple, seperate by comma(,)
- --outBinlogFileNameBase output binlog file name base
- --logLevel log level, available option is debug,warning,error
- --include-gtids gtids to process
- --exclude-gtids gtids to skip
文件
生成
数据
成功
之间
参数
场景
时间
条件
结果
语句
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
万润科技移动互联网
寅子铁甲雄兵在哪个服务器
数据库select 什么意思
徐州暑假网络安全课堂下载
供电局网络安全责任制
绍兴网络安全应急演练
网络安全技术和管理
音乐网站数据库源码
软件开发项 生命周期管理
运城网络技术操作
软件开发启发式策略
湛江通信软件开发零售价
flask 服务器
计算机与网络技术应用课件
安徽软件开发网站推荐
access数据库清空表
海南应用软件开发公司
无法与服务器建立安全的连接
数据库报表函数
网络安全员证书怎么考
烟台五八网络技术
吉林省小豆网络技术有限公司
泉州林海滨网络技术有限公司
江阴dell服务器维修地点
广东软件开发者价钱
软件开发维护服务
音乐界面软件开发
软件开发类属于固定资产吗
双n网络技术
网络技术知识英文