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á)到全備+增備的效果。

網(wǎng)友評(píng)論