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

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

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

2024-07-24 13:07:14
字體:
供稿:網(wǎng)友

這篇文章主要介紹了在MySQL中使用mysqlbinlog flashback的簡單教程,可以很方便地恢復(fù)數(shù)據(jù),作者還列出了使用時(shí)一些需要注意的地方,需要的朋友可以參考下

簡介:

mysqlbinlog flashback功能是淘寶彭立勛(http://www.penglixun.com/)的一個(gè)很強(qiáng)勁的作品.

主要功能: 對rows格式的binlog可以進(jìn)行逆向操作.delete反向生成insert, update生成反向的update,insert反向生成delete.讓dba同學(xué)們也有機(jī)會簡單的恢復(fù)數(shù)據(jù).可恢復(fù):insert, update,delete相關(guān)的操作.

演示一下使用過程:

生成帶有flashback mysqlbinlog 工具:

項(xiàng)止主頁:http://mysql.taobao.org/index.php/Patch_source_code#Add_flashback_feature_for_mysqlbinlog

準(zhǔn)備好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這個(gè)程序,所以編譯MySQL時(shí)沒加特別的參數(shù).該工具是否具備flashback功能可以確認(rèn)一下是否有 “-B” 這個(gè)參數(shù).

開始實(shí)驗(yàn):

 

 
  1. mysql test 
  2. mysql> select count(*) from pic_url; 
  3. +----------+ 
  4. count(*) | 
  5. +----------+ 
  6. | 786476 | 
  7. +----------+ 
  8. 1 row in set (0.11 sec) 
  9. mysql>delete from pic_url; 
  10. Query OK, 786476 rows affected (22.81 sec) 
  11. mysql>select count(*) from pic_url; 
  12. +----------+ 
  13. count(*) | 
  14. +----------+ 
  15. | 0 | 
  16. +----------+ 
  17. 1 row in set (0.03 sec) 

 

 
  1. mysql>show binary logs; 
  2. ... 
  3. | mysql-bin.000011 | 195001447 | 
  4. | mysql-bin.000012 | 106 | 
  5. +------------------+-----------+ 

Tips:

定位日值,一般看當(dāng)前的log如果當(dāng)前的log文件比較小,那么就是上一個(gè)文件至于為什么,這里就不講了.也可以用mysqlbinlog 去實(shí)際查看確認(rèn)一下.

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

 

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

然后對11.sql文件進(jìn)行搜索了表名,找到相應(yīng)的節(jié)點(diǎn).大表刪除通常最后的stop點(diǎn)都在文件最后.找到節(jié)點(diǎn)后就可以:

 

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

同樣對B11.sql這個(gè)文件驗(yàn)證一下.看看結(jié)尾是和預(yù)期一樣.驗(yàn)證OK后就可以:

 

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

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

 

 
  1. mysql>select count(*) from pic_url; 
  2. +----------+ 
  3. count(*) | 
  4. +----------+ 
  5. | 786476 | 
  6. +----------+ 
  7. 1 row in set (0.11 sec) 

數(shù)據(jù)又恢復(fù)了.

注意:

為防止恢復(fù)報(bào)錯(cuò)需要把:max_allowed_packet 改到最大值1G;

mysql>set global max_allowed_packet=1024*1024*1024;

#max_allow_packet大小不夠時(shí)報(bào)錯(cuò)如下:

ERROR 1153 (08S01) at line 403133: Got a packet bigger than ‘max_allowed_packet' bytes

恢復(fù)操作有風(fēng)險(xiǎn),請?jiān)趥鋷觳僮骰蚴窃诮?jīng)驗(yàn)豐富的同學(xué)指導(dǎo)下進(jìn)行.

二進(jìn)制文件上傳不到服務(wù)器上,傳到github上一個(gè)二進(jìn)制文件:https://github.com/wubx/mysql-binlog-statistic/tree/master/bin  在64的位的linux系統(tǒng)編譯的. 有需要的直接下載.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大姚县| 琼结县| 织金县| 逊克县| 武鸣县| 静海县| 邛崃市| 察哈| 江安县| 虎林市| 德昌县| 阿鲁科尔沁旗| 白河县| 阿拉善盟| 九江市| 开化县| 鄂托克旗| 长寿区| 南宁市| 鄂尔多斯市| 平果县| 扎鲁特旗| 石家庄市| 桦川县| 西充县| 通许县| 云林县| 台江县| 松溪县| 平南县| 勐海县| 重庆市| 分宜县| 绩溪县| 曲靖市| 汤阴县| 阿克陶县| 涞源县| 和政县| 水城县| 绥化市|