由於前面出現過幾個需求,或者誤操作,或者測試,需要我把某張表恢復到操作之前的乙個狀態,前面在生產中有過幾次經歷,實在太痛苦了,下面是一張表被誤刪除了,我的步驟是:
1 用全備恢復整個庫(恢復到其他環境)
2 找到全備結束時間點對應的binlog,然後根據時間找對應的pos點
3 接著2中的pos點把資料往後刷,直到刷到誤操作之前的時間點。
3 在這套全新庫中將表匯出,然後在現有生產庫匯入
上面的動作存在乙個問題,前提是我在誤操作到發現的這個時間段,這個表沒有資料寫入,不然肯定會有資料不一致或者丟失。
下面我介紹另乙個方法,閃回 flash back
mysql> use leochentest;
database changed
mysql> create table leochen(id int,name varchar(10));
query ok, 0 rows affected (0.05 sec)
mysql> insert into leochen values (1,'leochen'),(2,'chenleo');
query ok, 2 rows affected (0.02 sec)
records: 2 duplicates: 0 warnings: 0
mysql> select * from leochen;
+------+------------+
| id | name |
+------+------------+
| 1 | leochen |
| 2 | chenleo |
+------+------------+
mysql> update leochen set name = 'leochenlia' where id = 2;
query ok, 1 row affected, 1 warning (0.01 sec)
rows matched: 1 changed: 1 warnings: 1
在做閃回之前
mysql> select * from leochen;
+------+------------+
| id | name |
+------+------------+
| 1 | leochen |
| 2 | leochenlia |
+------+------------+
下面開始操作
mysqlbinlog -vv dbnoe05-bin.000004 |egrep -i -c 20 'update|leochen'
mysqlbinlog -b -vv --start-position=648 --stop-position=948 dbnoexx-bin.000004 | mysql -uroot -p***
biu biu biu~~~
mysql> select * from leochen;
+------+---------+
| id | name |
+------+---------+
| 1 | leochen |
| 2 | chenleo |
+------+---------+
2 rows in set (0.00 sec)
mysql有閃回嗎 mysql 閃回測試
由於前面出現過幾個需求,或者誤操作,或者測試,需要我把某張表恢復到操作之前的乙個狀態,前面在生產中有過幾次經歷,實在太痛苦了,下面是一張表被誤刪除了,我的步驟是 1 用全備恢復整個庫 恢復到其他環境 2 找到全備結束時間點對應的binlog,然後根據時間找對應的pos點 3 接著2中的pos點把資料...
mysql 閃回 Mysql資料閃回操作備忘
準備工作 更新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 檢查mysq...
MySQL回閃查詢 閃回查詢(undo sql)
select versions xid,versions operation,versions starttime,versions endtime,versions startscn,versions endscn from site daily report versions between t...