mysql 閃回 Mysql資料閃回操作備忘

2021-10-25 14:33:06 字數 1568 閱讀 6532

準備工作

更新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點把資料...