binlog2sql實現(xiàn)mysql的閃回

binlog2sql是大眾點評開源的一款用于解析binlog的工具凛辣,在測試環(huán)境試用了下薄扁,還不錯率寡。

?DBA或開發(fā)人員迫卢,有時會誤刪或者誤更新數(shù)據(jù),如果是線上環(huán)境并且影響較大冶共,就需要能快速回滾乾蛤。傳統(tǒng)恢復(fù)方法是利用備份重搭實例,再應(yīng)用去除錯誤sql后的binlog來恢復(fù)數(shù)據(jù)捅僵。此法費時費力家卖,甚至需要停機維護,并不適合快速回滾命咐。也有團隊利用LVM快照來縮短恢復(fù)時間,但快照的缺點是會影響mysql的性能⌒乘辏現(xiàn)在有不少好用而且效率又高的開源閃回工具如binlog2sql醋奠、mysqlbinlog_flashback,這些工具在工作中給DBA減輕了不少痛苦伊佃,以下針對binlog2sql的使用進行實踐演練窜司。

1.安裝binlog2sql前先安裝git和pip

yum -y install epel-release

yum -y install git python-pip

2.安裝binlog2sql:

git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql

pip install -r requirements.txt

3.mysql配置文件my.cnf中進行如下配置,并在/var/log/下創(chuàng)建mysql文件夾

[mysqld]

server_id = 1

log_bin = /var/log/mysql/mysql-bin.log

max_binlog_size = 1G

binlog_format = row

binlog_row_image = full

(但你會發(fā)現(xiàn)重啟Mysqld服務(wù)時會報錯航揉,于是想到給mysql文件夾一個權(quán)限)

chown -R mysql:mysql ?/var/log/mysql

4.給予用戶授權(quán)(此處一定要注意授權(quán)的方式)

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'localhost' identified by 'MeiMeng@123.com';

權(quán)限說明:

select:需要讀取server端information_schema.COLUMNS表塞祈,獲取表結(jié)構(gòu)的元信息,拼接成可視化的sql語句

super/replication client:兩個權(quán)限都可以帅涂,需要執(zhí)行'SHOW MASTER STATUS', 獲取server端的binlog列表

replication slave:通過BINLOG_DUMP協(xié)議獲取binlog內(nèi)容的權(quán)限

5.內(nèi)網(wǎng)環(huán)境如何使用該工具呢议薪?

該工具的使用依賴以下三個包:

PyMySQL==0.7.8

wheel==0.24.0

mysql-replication==0.9

其中,每個包又會依賴其它包媳友,所以安裝這些包是一個比較麻煩的事情斯议。

如果是在外網(wǎng)的環(huán)境下,可直接通過pip install安裝醇锚,它會自動下載并安裝依賴包的哼御。


在內(nèi)網(wǎng)環(huán)境下坯临,可手動安裝這些包,目前恋昼,這些包已下載打包看靠,并上傳到百度云盤中,大家可自行下載液肌。

http://pan.baidu.com/s/1qYQ2PPy

6.安裝教程:

# tar xvf binlog2sql.tar.gz

# cd binlog2sql/binlog2sql_dependencies/

# tar xvf setuptools-0.6c11.tar.gz

# cd setuptools-0.6c11

# python setup.py install

# cd ..

# tar xvf pip-9.0.1.tar.gz

# cd pip-9.0.1

# python setup.py install

# cd ..

# pip install *.whl mysql-replication-0.9.tar.gz

7.至此挟炬,所有依賴包安裝完畢。

binlog2sql的使用參數(shù)說明:

mysql連接配置

-h host; -P port; -u user; -p password

解析模式

--stop-never 持續(xù)同步binlog矩屁”僮冢可選。不加則同步至執(zhí)行命令時最新的binlog位置吝秕。

-K, --no-primary-key 對INSERT語句去除主鍵泊脐。可選烁峭。

-B, --flashback 生成回滾語句容客,可解析大文件,不受內(nèi)存限制约郁,每打印一千行加一句SLEEP SELECT(1)缩挑。可選鬓梅。與stop-never或no-primary-key不能同時添加供置。

解析范圍控制

--start-file 起始解析文件。必須绽快。

--start-position/--start-pos start-file的起始解析位置芥丧。可選坊罢。默認為start-file的起始位置续担。

--stop-file/--end-file 末尾解析文件』詈ⅲ可選物遇。默認為start-file同一個文件。若解析模式為stop-never憾儒,此選項失效询兴。

--stop-position/--end-pos stop-file的末尾解析位置∑鹬海可選蕉朵。默認為stop-file的最末位置;若解析模式為stop-never阳掐,此選項失效始衅。

--start-datetime 從哪個時間點的binlog開始解析冷蚂,格式必須為datetime,如'2016-11-11 11:11:11'汛闸◎瑁可選。默認不過濾诸老。

--stop-datetime 到哪個時間點的binlog停止解析隆夯,格式必須為datetime,如'2016-11-11 11:11:11'别伏√阒裕可選。默認不過濾厘肮。

對象過濾

-d, --databases 只輸出目標(biāo)db的sql愧口。可選类茂。默認為空耍属。

-t, --tables 只輸出目標(biāo)tables的sql」欤可選厚骗。默認為空。


1

# 刪除表里的數(shù)據(jù)


2

# 查看binlog位置


3


4

cat 4.sql

5
6


7

(截取了部分)

8

可以看到生成了跟上面標(biāo)準(zhǔn)SQL相反的SQL了兢哭,通過這些反向SQL可以進行誤操的數(shù)據(jù)恢復(fù)领舰。

比如我們想恢復(fù)delete命令之前的數(shù)據(jù)。


9

最后一定不要忘記了這一步迟螺,很關(guān)鍵冲秽,不然數(shù)據(jù)無法導(dǎo)入
mysql -uroot -p'MeiMeng@123.com' <roll_5.sql

完成查詢下結(jié)果,發(fā)現(xiàn)數(shù)據(jù)已恢復(fù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煮仇,一起剝皮案震驚了整個濱河市劳跃,隨后出現(xiàn)的幾起案子谎仲,更是在濱河造成了極大的恐慌浙垫,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郑诺,死亡現(xiàn)場離奇詭異夹姥,居然都是意外死亡,警方通過查閱死者的電腦和手機辙诞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門辙售,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人飞涂,你說我怎么就攤上這事旦部∑硭眩” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵士八,是天一觀的道長容燕。 經(jīng)常有香客問我,道長婚度,這世上最難降的妖魔是什么蘸秘? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蝗茁,結(jié)果婚禮上醋虏,老公的妹妹穿的比我還像新娘。我一直安慰自己哮翘,他們只是感情好颈嚼,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忍坷,像睡著了一般粘舟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上佩研,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天柑肴,我揣著相機與錄音,去河邊找鬼旬薯。 笑死晰骑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绊序。 我是一名探鬼主播硕舆,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骤公!你這毒婦竟也來了抚官?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤阶捆,失蹤者是張志新(化名)和其女友劉穎凌节,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洒试,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡倍奢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了垒棋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卒煞。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叼架,靈堂內(nèi)的尸體忽然破棺而出畔裕,到底是詐尸還是另有隱情衣撬,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布扮饶,位于F島的核電站淮韭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贴届。R本人自食惡果不足惜靠粪,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毫蚓。 院中可真熱鬧占键,春花似錦、人聲如沸元潘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翩概。三九已至牲距,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钥庇,已是汗流浹背牍鞠。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留评姨,地道東北人难述。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像吐句,于是被迫代替她去往敵國和親胁后。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容