国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

在MySQL中使用mysqlbinlog flashback的簡單教程

2024-07-24 12:46:06
字體:
來源:轉載
供稿:網友

簡介:
mysqlbinlog flashback功能是淘寶彭立勛(http://www.penglixun.com/)的一個很強勁的作品.
主要功能: 對rows格式的binlog可以進行逆向操作.delete反向生成insert, update生成反向的update,insert反向生成delete.讓dba同學們也有機會簡單的恢復數據.可恢復:insert, update,delete相關的操作.

演示一下使用過程:

生成帶有flashback mysqlbinlog 工具:

項止主頁:http://mysql.taobao.org/index.php/Patch_source_code#Add_flashback_feature_for_mysqlbinlog

準備好MySQL-5.5.18的源碼,這里用的Percona-MySQL-5.5.18源碼
cd mysql-5.5.18
wget http://mysql.taobao.org/images/0/0f/5.5.18_flashback.diff
patch -p0<5.5.18_flashback.diff

即可以看到了mysqlbinlog , 因這里只為要mysqlbinlog這個程序,所以編譯MySQL時沒加特別的參數.該工具是否具備flashback功能可以確認一下是否有 “-B” 這個參數.

開始實驗:

mysql testmysql> select count(*) from pic_url;+----------+| count(*) |+----------+| 786476 |+----------+1 row in set (0.11 sec)mysql>delete from pic_url;Query OK, 786476 rows affected (22.81 sec)mysql>select count(*) from pic_url;+----------+| count(*) |+----------+| 0 |+----------+1 row in set (0.03 sec)
mysql>show binary logs;...| mysql-bin.000011 | 195001447 || mysql-bin.000012 | 106 |+------------------+-----------+


Tips:
定位日值,一般看當前的log如果當前的log文件比較小,那么就是上一個文件至于為什么,這里就不講了.也可以用mysqlbinlog 去實際查看確認一下.

接下來就是要找到這個delete在log中position的變化區間了.這個沒什么技巧,通常使用:

./mysqlbinlog -v --base64-output=decode-rows  /u1/mysql/logs/mysql-bin.000011 >11.sql

然后對11.sql文件進行搜索了表名,找到相應的節點.大表刪除通常最后的stop點都在文件最后.找到節點后就可以:

./mysqlbinlog -v --base64-output=decode-rows -B --start-position=377 --stop-position=195001377 /u1/mysql/logs/mysql-bin.000011>B11.sql

同樣對B11.sql這個文件驗證一下.看看結尾是和預期一樣.驗證OK后就可以:

./mysqlbinlog -B --start-position=377 --stop-position=195001377 /u1/mysql/logs/mysql-bin.000011|mysql test

如果表比較大,則執行著比較慢.如不出錯請耐心等待.執行完畢后:

mysql>select count(*) from pic_url;+----------+| count(*) |+----------+| 786476 |+----------+1 row in set (0.11 sec)

數據又恢復了.

注意:
為防止恢復報錯需要把:max_allowed_packet 改到最大值1G;
mysql>set global max_allowed_packet=1024*1024*1024;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭市| 温州市| 平原县| 鱼台县| 阜阳市| 藁城市| 泸定县| 朔州市| 思茅市| 泾阳县| 延川县| 淅川县| 邵阳市| 伊宁县| 六枝特区| 和硕县| 武山县| 泸定县| 松溪县| 行唐县| 郧西县| 喀喇| 吉安县| 手游| 嘉善县| 东方市| 玛曲县| 中西区| 河西区| 斗六市| 津市市| 南丹县| 南川市| 綦江县| 高唐县| 新巴尔虎左旗| 白银市| 盐边县| 仁怀市| 丰宁| 滦平县|