1. 簡(jiǎn)介

mysqlbinlog flashback(閃回)用于快速恢復(fù)由于誤操作丟失的數(shù)據(jù)。在DBA誤操作時(shí),可以把數(shù)據(jù)庫(kù)恢復(fù)到以前某個(gè)時(shí)間點(diǎn)(或者說(shuō)某個(gè)binlog的某個(gè)pos)。比如忘了帶where條件的update、delete操作,傳統(tǒng)的恢復(fù)方式是利用全備+二進(jìn)制日志前滾進(jìn)行恢復(fù),相比于傳統(tǒng)的全備+增備,flashback顯然更為快速、簡(jiǎn)單。

目前MySQL的flashback功能是利用binlog完成的,第一個(gè)實(shí)現(xiàn)該功能的是阿里云的彭立勛, 他在MySQL 5.5版本上就已實(shí)現(xiàn),并將其提交給MariaDB。

 

回到頂部

2. 閃回原理

原理:flashback工具(-B 參數(shù))可對(duì)rows格式的binlog可以進(jìn)行逆向操作,delete反向生成insert、update生成反向的update、insert反向生成delete。

MySQL的binlog以event的形式,記錄了MySQL中所有的變更情況,利用binlog我們就能夠重現(xiàn)所記錄的所有操作。

MySQL引入binlog主要有兩個(gè)用途/目的:一是為了主從復(fù)制;二是用于備份恢復(fù)后需要重新應(yīng)用部分binlog,從而達(dá)到全備+增備的效果。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式