programming/mysql
MyFlashmodified | Saturday 28 June 2025 |
---|
MyFlash 安装
简介
MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。 该工具已经在美团点评内部使用。
安装
环境要求
binlog格式必须为row,且binlog_row_image=full
仅支持5.6与5.7版本
只能回滚DML(增、删、改)
MyFlash安装
安装依赖
yum install gcc* pkg-config glib2 libgnomeui-devel -y
克隆源代码
git clone https://github.com/Meituan-Dia…
开始安装
cd MyFlash
gcc -w pkg-config --cflags --libs glib-2.0
source/binlogParseGlib.c -o binary/flashback
配置环境变量
vim /etc/profile
alias flashback=/home/MyFlash/binary/flashback
source /etc/profile
5. 检查安装成功
cd /home/MyFlash/binary
./flashback –help
4. MySQL配置
– 查看MySQL版本
select version();
– 查看是否开启biglog
show variables like ’log_bin';
mkdir logs
chmod -R 777 /home/logs/
chown mysql:mysql /home/logs/
2. 开启biglog
vim /etc/my.cnf
[mysqld]
log-bin = /home/logs/mysql-bin.log
expire-logs-days = 5
max-binlog-size = 500M
server-id = 1
binlog_format=ROW
3. 重启MySQL
service mysqld restart
service mysqld start
service mysqld stop
5. 闪回操作
mysqlbinlog /home/logs/mysql-bin.000001 –base64-output=decode-rows -v
cd /home/MyFlash/binary
./flashback –binlogFileNames=/home/logs/mysql-bin.000001 –sqlTypes=‘INSERT’ –databaseNames=test_db –tableNames=app_user –start-datetime=‘ 28 April 2020 16:00:00’
命令行选项
命令 描述
binlogFileNames binlog 文件所在目录位置;
databaseNames 指定需要回滚的数据库名;
tableNames 指定需要回滚的表名;
start-datetime 指定回滚的开始时间,不指定则不限定时间,%Y-%m-%d %H:%M:%S;
stop-datetime 指定回滚的结束时间,不指定则不限定时间,%Y-%m-%d %H:%M:%S;
start-position 指定回滚开始的位置
stop-position 指定回滚结束的位置
sqlTypes 指定需要回滚的sql类型;
目前支持的过滤类型是INSERT, UPDATE ,DELETE;多个类型可以用“,”隔开;
mysqlbinlog binlog_output_base.flashback | mysql -h 127.0.0.1 -uroot -p
mysqlbinlog binlog_output_base.flashback | mysql -uroot -p