电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL通過binlog恢復數據

瀏覽:210日期:2023-10-02 13:43:38
目錄mysql 日志文件binlog日志binlog日志開啟日志開啟方式:binlog 日志格式binlog日志查看工具:mysqlbinlog使用binlog恢復數據線下實操小結mysql 日志文件

任何成熟軟件都會有一套成熟的日志系統,當軟件出現問題時,這些日志就是查詢問題來源的寶庫。同樣,mysql也不例外,也會有一系列日志記錄mysql的運行狀態。

mysql主要有以下幾種日志:

錯誤日志:記錄mysql運行過程中的錯誤信息 一般查詢日志:記錄mysql正在運行的語句,包括查詢、修改、更新等的每條sql 慢查詢日志:記錄查詢比較耗時的SQL語句 binlog日志:記錄數據修改記錄,包括創建表、數據更新等

這些日志均需要在my.cnf文件進行配置,如果不知道mysql的配置文件路徑,可以使用mysql命令進行查找,

mysql --verbose --help|grep -A 1 ’Default options’ #該命令會羅列出my.cnf順序查找的路徑。binlog日志

binlog就是binary log,二進制日志文件,記錄所有數據庫更新語句,包括表更新和記錄更新,即數據操縱語言(DML),binlog主要用于數據恢復和配置主從復制等;

數據恢復:當數據庫誤刪或者發生不可描述的事情時,可以通過binlog恢復到某個時間點的數據。主從復制:當有數據庫更新之后,主庫通過binlog記錄并通知從庫進行更新,從而保證主從數據庫數據一致;

mysql按照功能分為服務層模塊和存儲引擎層模塊,服務層負責客戶端連接、SQL語句處理優化等操作,存儲引擎層負責數據的存儲和查詢;binlog屬于服務層模塊的日志,即引擎無關性,所有數據引擎的數據更改都會記錄binlog日志。當數據庫發生崩潰時,如果使用InnoDB引擎,binlog日志還可以檢驗InnoDB的redo日志的commit情況。

binlog日志開啟日志開啟方式:

1、添加配置

log_bin=ONlog_bin_basename=/path/bin-loglog_bin_index=/path/bin-log.index

2、僅僅設置log-bin參數

log-bin=/path/bin-log

當開啟binlog日志之后,mysql會創建一個 log_bin_index指定的 .index 文件和多個二進制日志文件,index中按順序記錄了mysql使用的所有binlog文件。binlog日志則會以指定的名稱(或默認值) 加自增的數字作為后綴,ex:bin-log.000001,當發生下述三種情況時,binlog日志便會進行重建:

文件大小達到max_binlog_size參數的值 執行 flush logs命令 重啟mysql服務

binlog 日志格式

通過參數binlog_format參數的值,可以設置binlog的格式,可選值有 statement、row、mixed * statement格式:記錄數據庫執行的原始SQL語句 * row格式:記錄具體的行的修改,這個為目前默認值 * mixed格式:因為上邊兩種格式各有優缺點,所以就出現了mixed格式

binlog日志查看工具:mysqlbinlog

因為binlog是二進制文件,不能像其他文件一樣,直接打開查看。但mysql提供了binlog查看工具mysqlbinlog,可以解析二進制文件。當然不同格式的日志解析結果是不一樣的; 1. statement格式日志,執行mysqlbinlog /path/bin-log.000001,可以直接看到原始執行的SQL語句 2. row格式日志,則可讀性沒有那么好,但仍可通過參數使文檔更加可讀 mysqlbinlog -v /path/bin-log.000001

mysqlbinlog兩對非常重要的參數 1. --start-datetime --stop-datetime 解析某一個時間段內的binlog; 2. --start-position --stop-position 解析在兩個position之間的binlog;

使用binlog恢復數據

使用binlog恢復數據,本質上就是通過binlog找到所有DML操作,去掉錯誤的SQL語句,然后重走一遍長征路,就可以將數據恢復;

線下實操

1.創建數據表并插入初始值

CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(8) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; INSERT INTO `users` (`id`, `name`, `age`)VALUES (null, ’姓名一’, 5);

2.找到上一次全量備份的數據庫和binlog的position(ps:當然也可以通過時間進行恢復)。此處以目前狀態作為備份的初始值,

mysqldump -uroot -p T > /path/xxx.sql; # 備份數據庫 show master status; # 查看當前的position位置,此時值為154

3.插入多條記錄

INSERT INTO `users` (`id`, `name`, `age`) VALUES (null, ’姓名二’, 13), (null, ’姓名三’, 14), (null, ’姓名四’, 15), (null, ’姓名五’, 16), (null, ’姓名六’, 17);

4.進行誤操作,并且在誤操作之后又插入幾條數據

update users set age = 5; INSERT INTO `users` (`id`, `name`, `age`) VALUES (null, ’姓名七’, 16), (null, ’姓名八’, 18);

5.發現誤操作之后,進行數據恢復,首先停止mysql對外的服務,利用備份數據恢復到上次數據;

6.通過mysqlbinlog命令對二進制文件進行分析,分析發現

誤操作發生在position為706位置,且上次正常操作的結束位置在513 在1152到結尾位置有正常執行的SQL執行

7.通過mysqlbinlog命令從binlog日志中導出可執行的SQL文件,并將數據導入到mysql

mysqlbinlog --start-position=154 --stop-position=513 bin-log.000001 > /path/bak.sql; mysql -uroot -p < /path/bak.sql;

8.跳過錯誤的更新語句,再通過步驟7的邏輯把后續正常語句重新跑一遍,完成數據恢復工作

小結

無論什么時間,數據庫發生崩潰都會令人愁眉緊鎖,心煩意亂。binlog可以說是在各種情況下,數據庫崩潰、數據丟失之后的一粒后悔藥,本文通過線下環境,簡單的對數據庫進行了一次數據恢復實驗,如有不對,還請指教

以上就是MySQL通過 binlog 恢復數據的詳細內容,更多關于MySQL binlog 恢復數據的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 四川实木门_成都实木门 - 蓬溪聚成门业有限公司 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 工业CT-无锡璟能智能仪器有限公司| 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 花纹铝板,合金铝卷板,阴极铝板-济南恒诚铝业有限公司 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 周口风机|周风风机|河南省周口通用风机厂 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 |