準備工作
更新mysql客戶端到5.7版本
shell> wget -i -c
shell> yum -y install mysql57-community-release-el7-11.noarch.rpm
shell> yum -y install mysql-community-server
# 檢查mysqlbinlog版本是否3.4
shell> mysqlbinlog --version
安裝myflash
shell> git clone
安裝shell> cd myflash
shell> gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogparseglib.c -o binary/flashback
# 如果報no package 'glib-2.0' found,先安裝glib依賴
shell> yum install libgnomeui-devel
安裝binlog2sql
shell> git clone
shell> cd binlog2sql
shell> pip install -r requirements.txt
閃回操作
shell> wget -c 'dowload url' -o mysql-bin.***x
# 生成回滾binlog
shell> binary/flashback --binlogfilenames=mysql-bin.***x --start-datetime="2020-01-01 12:00:00" --stop-datetime="2020-01-01 13:00:00" --databasenames=*** --tablenames=*** --sqltypes='update','delete' --outbinlogfilenamebase=***
# 檢視回滾sql
shell> mysqlbinlog --no-defaults --base64-output=decode-rows -vv ***.flashback
# 利用mysqlbinlog回滾
shell> mysqlbinlog --no-defaults ***.flashback |mysql -h*** -u*** -p
利用binlog2sql回滾最新binlog
# 找到最新binlog
mysql> show binary logs;
# 或者手動生成最新binlog
mysql> flush logs;
# 生成回滾sql -d 指定資料庫 -t 指定表 -b 生成回滾sql
shell> python binlog2sql/binlog2sql.py -h***x -p3306 -u*** -p -d*** -t*** --start-file='mysql-bin.***x' --start-datetime='2020-01-01 22:30:00' --stop-datetime='2020-01-01 22:50:00' -b > /tmp/raw.sql
# 人工篩選後執行sql完成回滾
mysql有閃回嗎 mysql 閃回測試
由於前面出現過幾個需求,或者誤操作,或者測試,需要我把某張表恢復到操作之前的乙個狀態,前面在生產中有過幾次經歷,實在太痛苦了,下面是一張表被誤刪除了,我的步驟是 1 用全備恢復整個庫 恢復到其他環境 2 找到全備結束時間點對應的binlog,然後根據時間找對應的pos點 3 接著2中的pos點把資料...
MySQL回閃查詢 閃回查詢(undo sql)
select versions xid,versions operation,versions starttime,versions endtime,versions startscn,versions endscn from site daily report versions between t...
mysql 閃回測試
由於前面出現過幾個需求,或者誤操作,或者測試,需要我把某張表恢復到操作之前的乙個狀態,前面在生產中有過幾次經歷,實在太痛苦了,下面是一張表被誤刪除了,我的步驟是 1 用全備恢復整個庫 恢復到其他環境 2 找到全備結束時間點對應的binlog,然後根據時間找對應的pos點 3 接著2中的pos點把資料...