日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql binlog2sql闪回数据

發布時間:2025/3/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql binlog2sql闪回数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用binlog2sql快速閃回誤刪除數據 - 別拿豆包不當干糧

轉原文地址: http://blog.51cto.com/sumongodb/2046073?cid=699139

各位兄弟們,好久不見了!最近一直忙于新書的創作,所以一直沒有時間更新博客。不知道這段時間大家學習得怎么樣,希望大家通過看我的文章給大家帶來幫助。
老張我也花費了大量時間錄制一些數據庫的視頻課程,大家要是感興趣,也可以去學習,不要錯過啊!

今兒抽出時間,給大家分享一篇利用binlog2sql閃回工具,來恢復誤刪除的數據。我們都知道binlog的作用是備份恢復和完成MySQL的主從復制功能。利用mysqlbinlog工具可以進行基于時間點或者位置偏移量的數據恢復工作,在生產環境中遇到誤刪除,改錯數據的情況,那是常有的事兒。我們都知道Oracle數據庫有閃回功能,而MySQL本身沒有自帶閃回,但我們可以使用binlog2sql來完成這項工作。

我們都知道binlog是以event作為單位,來記錄數據庫變更的數據信息,閃回就是可以幫助我們重現這些變化數據信息之前的操作。也就是說對于insert操作,會生成delete語句,反之delete操作,會生成insert語句。對于update操作,也會生成相反的update語句。這款工具只能使用在binlog格式為row模式下。

下面進行實戰演練:
binlog2sql工具的下載地址: https://github.com/danfengcao/binlog2sql
第一步:環境準備安裝各種依賴的工具包列表

python-pip , PyMySQL , python-mysql-replication, wheel argparse

第二步:解壓binlog2sql軟件,命令如下

unzip binlog2sql-master.zip cd binlog2sql-master pip install –r requirements.txt

第三步:通過python binlog2sql.py --help命令,來查看重要參數的使用;

-B, --flashback 生成回滾語句 --start-file 需要解析的binlog文件 --start-position 解析binlog的起始位置 --stop-position解析binlog的結束位置 --start-datetime 從哪個時間點的binlog開始解析,格式必須為datetime --stop-datetime 到哪個時間點的binlog停止解析,格式必須為datetime -d, --databases 只輸出目標db的sql -t, --tables 只輸出目標tables的sql

第四步:開始模擬數據刪除
首先刪除掉zs庫下,t表中的數據

root@db 14:26: [zs]> select * from t; +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | aaa | bj | | 2 | bbb | sh | | 3 | ccc | gz | | 4 | ddd | sy | | 5 | eee | fj | +----+------+---------+ 5 rows in set (0.00 sec) root@db 14:26: [zs]> delete from t; Query OK, 5 rows affected (0.04 sec) root@db 14:27: [zs]> select * from t; Empty set (0.00 sec)

第五步:需要創建一個閃回用戶

create user 'zs_test'@'%' identified by '123456'; grant select,replication slave,replication client on *.* to 'zs_test'@'%' ; flush privileges;

第六步:確定當前binlog文件和position位置

root@db 14:41: [zs]> show master status; +---------------------+----------+--------------+------------------+------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +---------------------+----------+--------------+------------------+------------------------------------------+ | mysql-binlog.000002 | 2091 | | | e10f0ead-d595-11e7-82cb-080027cd683a:1-8 | +---------------------+----------+--------------+------------------+------------------------------------------+

可以看到當前binlog是:mysql-binlog.000002
位置偏移量:2091

第七步:需要預估下時間,誤操作的時間范圍應該在下午2點20分到2點30分之間。命令如下:
python binlog2sql.py -h192.168.56.102 -P3306 -uzs_test -p123456 -dzs -tt --start-file='mysql-binlog.000002' --start-datetime='2017-11-30 14:20:00' --stop-datetime='2017-11-30 14:30:00'
輸出結果:
DELETE FROM zs.t WHERE address='bj' AND id=1 AND name='aaa' LIMIT 1; #start 1214 end 1427 time 2017-11-30 14:27:46
DELETE FROM zs.t WHERE address='sh' AND id=2 AND name='bbb' LIMIT 1; #start 1214 end 1427 time 2017-11-30 14:27:46
DELETE FROM zs.t WHERE address='gz' AND id=3 AND name='ccc' LIMIT 1; #start 1214 end 1427 time 2017-11-30 14:27:46
DELETE FROM zs.t WHERE address='sy' AND id=4 AND name='ddd' LIMIT 1; #start 1214 end 1427 time 2017-11-30 14:27:46
DELETE FROM zs.t WHERE address='fj' AND id=5 AND name='eee' LIMIT 1; #start 1214 end 1427 time 2017-11-30 14:27:46

從解析結果中我們了解到,誤操作sql的位置是在1214~1427之間;這樣就可以進一步過濾,使用flashback模式生成回滾sql;
命令如下:
python binlog2sql.py -h192.168.56.102 -P3306 -uzs_test -p123456 -dzs -tt --start-file='mysql-binlog.000002' --start-position=1214 --stop-position=1427 -B >t_rollback.sql

查看閃回導出文件:

[root@node3 binlog2sql]# cat t_rollback.sql INSERT INTO `zs`.`t`(`address`, `id`, `name`) VALUES ('fj', 5, 'eee'); #start 1214 end 1427 time 2017-11-30 14:27:46 INSERT INTO `zs`.`t`(`address`, `id`, `name`) VALUES ('sy', 4, 'ddd'); #start 1214 end 1427 time 2017-11-30 14:27:46 INSERT INTO `zs`.`t`(`address`, `id`, `name`) VALUES ('gz', 3, 'ccc'); #start 1214 end 1427 time 2017-11-30 14:27:46 INSERT INTO `zs`.`t`(`address`, `id`, `name`) VALUES ('sh', 2, 'bbb'); #start 1214 end 1427 time 2017-11-30 14:27:46 INSERT INTO `zs`.`t`(`address`, `id`, `name`) VALUES ('bj', 1, 'aaa'); #start 1214 end 1427 time 2017-11-30 14:27:46

第八步:應用回滾文件,恢復數據。命令如下:
/usr/local/mysql/bin/mysql -uroot -proot123 zs < t_rollback.sql

第九步:檢驗恢復數據是否成功

root@db 15:09: [zs]> select * from t; +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | aaa | bj | | 2 | bbb | sh | | 3 | ccc | gz | | 4 | ddd | sy | | 5 | eee | fj | +----+------+---------+ 5 rows in set (0.00 sec)

驗證恢復數據成功!

轉載于:https://www.cnblogs.com/l-h-h/p/10387051.html

總結

以上是生活随笔為你收集整理的mysql binlog2sql闪回数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩免费在线视频观看 | 亚洲网站色 | 色综合久久久久无码专区 | 成人看片 | 免费av在线播放 | 日韩一区二区三区在线视频 | 麻豆av电影在线观看 | 成人18在线 | 一区二区日本 | 日韩激情视频在线观看 | 国产一级久久 | 亚洲欧美日韩国产成人精品影院 | 老师张开让我了一夜av | 久久久久成人网站 | 色一情一区二 | aaaa毛片 | 伊人久久大香线蕉综合网站 | 夜夜骚av一区二区三区 | 雷电将军和丘丘人繁衍后代视频 | 黄色网址国产 | 精品一区二区三区国产 | 成人黄色视屏 | 亚洲大尺度视频 | 午夜视频在线 | 污视频导航 | 五月天婷婷丁香 | 懂色av,蜜臀av粉嫩av | 欧美黑人精品一区二区 | 亚洲精品专区 | 亚洲男人精品 | 播播成人网 | 亚洲区偷拍 | 精品一区二区三区成人免费视频 | 五月婷婷六月色 | 国产一级免费视频 | 欧美一区二区三区小说 | 性生活视频播放 | 影音先锋日韩资源 | 人人射人人插 | 欧美xxxx×黑人性爽 | free性满足hd国产精品久 | 神马午夜在线观看 | 综合成人 | 成av人片一区二区三区久久 | 日韩不卡av在线 | av日韩在线播放 | 国产人妻人伦精品1国产丝袜 | 亚洲爽爽网 | 视频成人免费 | 欧美一区二区三区免费在线观看 | 日本a级大片 | 在线观看的免费 | 国产精品有码 | 国产精品男女视频 | 精品亚洲国产成av人片传媒 | 中文字幕高清在线播放 | 一边摸一边抽搐一进一出视频 | 久久久久一 | 亚洲一区二区天堂 | 欧美日韩日本国产 | 成人h在线 | 久久国产一区二区 | 亚洲欧洲一区二区在线观看 | 欧美噜噜噜 | 精品一区二区三区毛片 | 久久九九久久九九 | av网站久久 | 欧美大色网 | 亚洲精选一区二区 | 成人免费毛片果冻 | 男人晚上看的视频 | 天堂在线免费观看视频 | 欧美激情在线观看 | 国产剧情久久 | 97精品国产 | 午夜欧美精品 | 日韩aⅴ片 | 成人免费大片黄在线播放 | 国产午夜无码视频在线观看 | 亚洲免费av电影 | 成人欧美在线 | 国产成人精品无码免费看81 | 超碰香蕉 | 亚洲一区成人在线 | 香蕉视频链接 | 欧美一区二区三区久久精品 | 日本黄网站 | 91在线网址| 美女性生活视频 | 少妇荡乳情欲办公室456视频 | 一区二区视频观看 | 秋霞电影一区二区 | 亚洲AV无码成人精品一区 | 国内自拍在线 | 久久久.www| 色播在线播放 | 亚洲AV无码精品一区二区三区 | 五月丁香综合激情六月久久 | 国产精品日韩专区 |