BinLog2sql 數(shù)據(jù)庫閃回

使用背景

????????在進行項目研發(fā),系統(tǒng)維護陨闹、項目監(jiān)控等操作 時項目軟件楞捂、開發(fā)人員家制、DBA總會與數(shù)據(jù)庫進行打交道,但總會在不經(jīng)意的情況下對數(shù)據(jù)造成修改泡一、刪除等操作颤殴。等造成損失時,才發(fā)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)已經(jīng)不完整鼻忠。如果出現(xiàn)以上問題涵但,怎么辦,請看下文帖蔓!

BinLog2sql是什么

binlog2sql是大眾點評開源的一款用于解析binlog的工具

BinLog2sql的功能

從MySQL binlog解析出你要的SQL矮瘟。根據(jù)不同選項,你可以得到原始SQL塑娇、回滾SQL澈侠、去除主鍵的INSERT SQL等。

BinLog2sql使用前提

MySQL 是否開啟日志

show variables like '%log_bin%';

BinLog2sql的安裝(Linux)

項目地址:https://github.com/danfengcao/binlog2sql

1.安裝Git

yum -y install git

2.安裝Pip (如果無法安裝pip,自行百度安裝pip方法)

yum -y install epel-release

yum -y installgit? python-pip

3.安裝binlog2sql

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

pip install -r requirements.txt

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 只輸出目標db的sql意推。可選珊蟀。默認為空。

-t, --tables 只輸出目標tables的sql外驱∮模可選。默認為空昵宇。

BinLog2sql的使用

查看binlog信息

連接MySQL:mysql -u? -p

查看binlog信息:show master status;


查看binlog信息

查看sql執(zhí)行日志

python binlog2sql.py -h192.168.1.2?-utestusername?-ptestpsd -dtestdb -ttesttb --start-file='mysql-bin.000051' > delete_log.sql

語句解析:

連接192.168.1.2數(shù)據(jù)庫磅崭,

用戶名:testusername?

密碼:testpsd?

數(shù)據(jù)庫:testdb?

表:testtb? ?(可不使用)

當(dāng)前日志文件信息:mysql-bin.000051

輸出到:delete_log.sql


查看sql執(zhí)行日志
查看sql執(zhí)行日志

生成回滾Sql (添加-B命令)

python binlog2sql.py -h192.168.1.2?-utestusername?-ptestpsd -dtestdb -ttesttb?--start-file='mysql-bin.000051' -B > delete_log_rollback.sql?

解析:通過以上條件 執(zhí)行回滾命令,將操作過的sql 反向生成sql.輸出到delete_log_rollback.sql?


執(zhí)行回滾Sql

mysql -utestusername?-ptestpsd < delete_log_rollback.sql

注意事項

1. binlog2sql 可通過時間節(jié)點進行sql篩選

2.binlog2sql 可通過--start-position??--stop-position 來進行語句定位篩選

3. 可使用cat 瓦哎、vi砸喻、vim等工具查看提取出來的sql語句

個人經(jīng)驗

再使用反向生成sql時有時會無法成功,只能通過操作其他方式進行找回之前的數(shù)據(jù)蒋譬,

背景:每日凌晨都有進行自動備份割岛。最多丟失1天數(shù)據(jù)。

根據(jù)現(xiàn)實情況進行方案設(shè)計犯助,通過binlog2sql 獲取執(zhí)行的sql癣漆,獲取相關(guān)表的 insert 和 update 語句,通過自行編寫小程序進行字符整理剂买,得到可執(zhí)行的sql (insert or update) 后惠爽,通過新增和修改 重新生成數(shù)據(jù)

相關(guān)資源

1.flashback

2.MyFlash

3.mysqlbinlog

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末癌蓖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子婚肆,更是在濱河造成了極大的恐慌租副,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件较性,死亡現(xiàn)場離奇詭異附井,居然都是意外死亡,警方通過查閱死者的電腦和手機两残,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門永毅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人人弓,你說我怎么就攤上這事沼死。” “怎么了崔赌?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵意蛀,是天一觀的道長。 經(jīng)常有香客問我健芭,道長县钥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任慈迈,我火速辦了婚禮若贮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痒留。我一直安慰自己谴麦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布伸头。 她就那樣靜靜地躺著匾效,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恤磷。 梳的紋絲不亂的頭發(fā)上面哼,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音扫步,去河邊找鬼魔策。 笑死,一個胖子當(dāng)著我的面吹牛锌妻,可吹牛的內(nèi)容都是我干的代乃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搁吓!你這毒婦竟也來了原茅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤堕仔,失蹤者是張志新(化名)和其女友劉穎擂橘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摩骨,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡通贞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恼五。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昌罩。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灾馒,靈堂內(nèi)的尸體忽然破棺而出茎用,到底是詐尸還是另有隱情,我是刑警寧澤睬罗,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布轨功,位于F島的核電站,受9級特大地震影響容达,放射性物質(zhì)發(fā)生泄漏古涧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一花盐、第九天 我趴在偏房一處隱蔽的房頂上張望羡滑。 院中可真熱鬧,春花似錦卒暂、人聲如沸啄栓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至近速,卻和暖如春诈嘿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背削葱。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工奖亚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人析砸。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓昔字,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子作郭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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