欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql?binlog?回滾示例解析

 更新時間:2023年08月22日 15:28:07   作者:dai1396734  
嚴格來說mysqlbinlog 不能算回滾,他只是將過去的數(shù)據(jù)修改記錄 重新執(zhí)行一遍,但是從結(jié)果上來看,他也算把數(shù)據(jù)恢復(fù)到任意時間點了,這篇文章主要介紹了mysql?binlog回滾示例解析,需要的朋友可以參考下

mysqlbinlog

嚴格來說mysqlbinlog 不能算回滾,他只是將過去的數(shù)據(jù)修改記錄 重新執(zhí)行一遍,但是從結(jié)果上來看,他也算把數(shù)據(jù)恢復(fù)到任意時間點了,舉例來說在昨天的某一刻誤刪除了一條數(shù)據(jù),導(dǎo)致其他數(shù)據(jù)存儲都是異常,今天才發(fā)現(xiàn),現(xiàn)在我希望回滾到那一刻,那么我只要在binlog中找到昨天刪除時的那條語句,然后重新執(zhí)行之前的所有binlog文件,當(dāng)然假設(shè)你有備份,那么也可以使用備份文件+備份后binlog文件進行恢復(fù)。現(xiàn)在我來模擬這個例子,我將執(zhí)行以下步驟。

步驟1:清空除了系統(tǒng)自帶的表之外的其他表 后備份數(shù)據(jù)(模擬數(shù)據(jù)庫處于初始狀態(tài))
步驟2:創(chuàng)建數(shù)據(jù)庫rollbackDatabase,創(chuàng)建表rollbackTable,簡單起見就定義個字段name,插入5條數(shù)據(jù)(test1,test2,test3,test4,test5)
步驟3:刷新binlog(模擬機器重啟)
步驟4:修改其中的3條數(shù)據(jù)(test1,test2,test3)->(test1_update,test2_update,test3_update),刪除test2_update,test3_update(昨天誤刪除了test3_update)
步驟5: 增加10條數(shù)據(jù)(test6-test10)(今天發(fā)現(xiàn)問題)
步驟6:刷新binlog(這里只是避免執(zhí)行恢復(fù)時,讓修改記錄寫到另外的binlog中,避免日志太多看不清)

經(jīng)過以上6個步驟,數(shù)據(jù)庫內(nèi)容以及日志文件已經(jīng)生成好,其中back_20220806_192900.sql 是備份好的文件,binlog.000011備份后的binlog,binlog.000012是步驟3生成的binlog,binlog,binlog.000013是步驟6生成的。

恢復(fù)

現(xiàn)在我們開始找回昨天誤刪除“test3_update”之前的數(shù)據(jù),很明顯“誤刪除”操作應(yīng)該是被記錄在binlog.000012中,(如果不是模擬,我們應(yīng)該查看binlog文件的創(chuàng)建時間,結(jié)合誤刪除的時間,就能知道是在哪個binlog記錄了誤操作)知道的誤刪除的binlog,我們就可以去定位“誤刪除”的事務(wù)所在位置。

mysqlbinlog --verbose binlog.000012 | grep -C 15 "DELETE"

查看指定時間范圍的事件

mysqlbinlog --start-datetime="2020-03-11 20:05:00" --stop-datetime="2020-03-11 20:08:00" --verbose binlog.0000010

要恢復(fù)只需要執(zhí)行binlog.000011全部記錄與binlog.000012中部分記錄就可以了,在執(zhí)行恢復(fù)操作(在這之前需要刪除創(chuàng)建的數(shù)據(jù)庫)

mysqlbinlog binlog.000011 |mysql -uroot -p
mysqlbinlog --stop-position=1578 binlog.000012 |mysql -uroot -p

發(fā)現(xiàn)結(jié)果與預(yù)想的一樣

查看指定時間范圍的事件

mysqlbinlog --start-datetime="2020-03-11 20:05:00" --stop-datetime="2020-03-11 20:08:00" --verbose binlog.0000010

工具binlog2sql

官網(wǎng)鏈接

到此這篇關(guān)于mysql binlog 回滾的文章就介紹到這了,更多相關(guān)mysql binlog 回滾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql查詢時offset過大影響性能的原因和優(yōu)化詳解

    mysql查詢時offset過大影響性能的原因和優(yōu)化詳解

    這篇文章主要給大家介紹了關(guān)于mysql查詢時offset過大影響性能的原因和優(yōu)化的相關(guān)資料,并在文末跟大家分享了MYSQL中l(wèi)imit,offset的區(qū)別,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • 淺談MySQL的B樹索引與索引優(yōu)化小結(jié)

    淺談MySQL的B樹索引與索引優(yōu)化小結(jié)

    這篇文章主要介紹了淺談MySQL的B樹索引與索引優(yōu)化小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • MySQL中ONLY_FULL_GROUP_BY的使用小結(jié)

    MySQL中ONLY_FULL_GROUP_BY的使用小結(jié)

    ONLY_FULL_GROUP_BY是MySQL中的一個重要SQL模式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • MySQL之select in 子查詢優(yōu)化的實現(xiàn)

    MySQL之select in 子查詢優(yōu)化的實現(xiàn)

    這篇文章主要介紹了MySQL之select in 子查詢優(yōu)化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • MySQL中datetime時間字段的四舍五入操作

    MySQL中datetime時間字段的四舍五入操作

    這是由一則生產(chǎn)環(huán)境問題引出的MySQL對于datetime時間類型字段中毫秒的處理的深究,這篇文章主要給大家介紹了關(guān)于MySQL中datetime時間字段的四舍五入操作的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • mysql在update,非主鍵索引更新引起死鎖問題

    mysql在update,非主鍵索引更新引起死鎖問題

    這篇文章主要介紹了mysql在update,非主鍵索引更新引起死鎖問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 在MySQL中增添新用戶權(quán)限的方法

    在MySQL中增添新用戶權(quán)限的方法

    在MySQL中增添新用戶權(quán)限的方法...
    2007-03-03
  • dos或wamp下修改mysql密碼的具體方法

    dos或wamp下修改mysql密碼的具體方法

    這篇文章主要介紹了dos或wamp下修改mysql密碼的具體方法,有需要的朋友可以參考一下
    2013-12-12
  • mysql如何處理varchar與nvarchar類型中的特殊字符

    mysql如何處理varchar與nvarchar類型中的特殊字符

    這篇文章主要介紹了mysql如何處理varchar與nvarchar類型中的特殊字符,需要的朋友可以參考下
    2014-12-12
  • MySQL5.7中的JSON基本操作指南

    MySQL5.7中的JSON基本操作指南

    這篇文章主要給大家介紹了關(guān)于MySQL5.7中JSON的基本操作,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論