通过Mysql-bin日志恢复还原数据
提取出来后,里面就是所有对terminfo的sql语句了,把这些数据导入到测试库terminfo0730表中
事情是这样的:由于个人粗心,在7月30号那天协助其它部门批量更新一些数据,谁知道全局更新了,而这个问题竟然在9月26号才发现告知我。他们要求把更新有误的数据恢复到7月30号之前状态,并且7月30号到9月26号这段时间所做的增删改的操作也要更新进去。由于之前没啥经验,心里也没底,但是没办法,自己做错事自己承担。
做法思路:把备份的数据导到测试库里面去,然后把7月30号到9月26号之间的binlog日志提取出对这个表进行操作的sql语句,然后再导进去。
苦逼的还原过程开始了.........
1.幸好本人养成了个好习惯,无论改动的大小我都会先备份一份数据
-rw-r--r-- 1 root root 2473664 07-30 09:38 terminfo-bak0730.sql
找到了,果然是7月30号早上09点38分左右备份的,幸好有备份啊,要不然就悲催了.......先把备份的导到测试数据库上,表名改为terminfo0730,然后再把当前生产的数据导到,表名改为terminfo0926,这样的做法是在还原数据后匹配一下数据有没有对得上。
+----------------+
2.最重要的一步来了,,就是提取binlog日志。因为7月30号备份的,所以要找7月30号之后到9月26号的binlog。
利用mysqlbinlog命令先进行第一轮的sql语句提取
#mysqlbinlog --no-defaults --database=ecard --start-datetime='2012-07-30 09:38:00' mysql-bin.000086 > log86.txt # 这里要设置起始时间
#mysqlbinlog --no-defaults --database=ecard mysql-bin.000087 > log87.txt
#mysqlbinlog --no-defaults --database=ecard mysql-bin.000088 > log88.txt
#mysqlbinlog --no-defaults --database=ecard mysql-bin.000089 > log89.txt
#mysqlbinlog --no-defaults --database=ecard mysql-bin.000090 > log90.txt
#ls -l
提取出来后是全部的sql语句,而我需要的是只对terminfo操作的sql语句,所以要进行第二轮提取
#grep terminfo log86.txt > log86-terminfo.txt #依次grep出来
提取出来后,里面就是所有对terminfo的sql语句了,把这些数据导入到测试库terminfo0730表中
mysql > source log86-terminfo.txt; #依次source进去,务必要注意顺序问题!!!
导进去之后再比较一下terminfo0730和terminfo0926表的数据数量有没有一样,然后再叫部门同事验证一下数据正确性。
到此,数据成功恢复还原。一次难忘的经历啊,也同时告诫自己,细心细心再细心!!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

1.binlogbinlog用於記錄資料庫執行的寫入性操作(不包括查詢)信息,以二進制的形式保存在磁碟中。 binlog是mysql的邏輯日誌,並且由Server層進行記錄,使用任何儲存引擎的mysql資料庫都會記錄binlog日誌。邏輯日誌:可以簡單得理解為sql語句;物理日誌:MySQL中資料都是保存在資料頁中的,實體日誌記錄的是資料頁上的變更;在這裡插入程式碼片binlog是透過追加的方式進行寫入的,可以透過max_binlog_size參數設定每個binlog檔案的大小,當檔案大小達到給定值

前言MySQL中有六種日誌文件,分別是:重做日誌(redolog)、回滾日誌(undolog)、二進位日誌(binlog)、錯誤日誌(errorlog)、慢查詢日誌(slowquerylog)、一般查詢日誌(generallog ),中繼日誌(relaylog)。 1.什麼是redolog? redolog又稱重做日誌文件,用於記錄事務操作的變化,記錄的是資料修改之後的值,不管交易是否提交都會記錄下來。當實例和媒體失敗(mediafailure)時,redolog檔案就能派上用場,如資料庫掉電,Inn

1.Binlog日誌的介紹Binlog是Binarylog的縮寫,即二進位日誌。 Binlog主要有三個作用:持久化時將隨機IO轉換為順序IO,主從複製以及資料恢復。本文重點在於主從複製相關的問題。 Binlog日誌由一個索引檔案與許多日誌檔案組成,每個日誌檔案由魔數以及事件組成,每個日誌檔案都會以一個Rotate類型的事件結束。對於每個事件,都可以分為事件頭與事件體兩部分:事件頭的結構如下所示:事件體的結構包括固定大小與可變大小兩部分。對於Binlog日誌的格式,做簡單的了解即可,有興趣的同學可以深入

一、問題來源在分析效能問題的時候慢查詢和binlog慢事務是常用的手段。最近在分析一個慢查詢的,發現其中包含了大量的commit語句慢,但是在分析binlog慢事務的時候不能完成配對。例如這段時間commit的語句可能有1000個,但是慢事務可能只有100個,這個差得也太多了,那為什麼會出現這種現象呢?二、各自的判定方式慢事務對於一個顯示提交的(insert)事務通常如下:GTID_LOG_EVENT和XID_EVENT是命令‘COMMIT’發起的時間。

關於MySQL的二進位日誌(binlog),我們都知道二進位日誌(binlog)非常重要,尤其當你需要pointtopoint災難復原的時侯,所以我們要對其進行備份。關於二進位日誌(binlog)的備份,可以基於flushlogs方式先切換binlog,然後拷貝&壓縮到到遠端伺服器或本地伺服器的其他儲存體上,例如掛載的NAS存儲,也可以使用mysqlbinlog實現binlog的備份,可以實作MySQL二進位日誌(binlog)的本機備份或遠端備份。最後將MySQL二進位日誌(binlog

1.kingbus簡介 1.1kingbus是什麼? kingbus是一個基於raft強一致協定實現的分散式MySQLbinlog儲存系統。它能夠充當一個MySQLSlave從真正的Master上同步binlog,並儲存在分散式叢集中。同時又充當一個MySQLMaster將叢集中的binlog同步給其他Slave。 kingbus具有以下特性: 相容MySQL複製協議,透過Gtid方式同步Master上的binlog,同時支援slave透過Gtid方式從kingbus拉取binlog。

MySQLbinlog/redolog/undolog的差別?想跟大家聊聊InnoDB中的鎖機制,那麼不可避免的要涉及到MySQL的日誌系統,binlog、redolog、undolog等,看到有小伙伴總結的這三個日誌還不錯,趕緊拿來和各位小夥伴分享。日誌是mysql資料庫的重要組成部分,記錄著資料庫運行期間各種狀態資訊。 mysql日誌主要包括錯誤日誌、查詢日誌、慢查詢日誌、交易日誌、二進位日誌幾大類。作為開發,我們重點需要關注的是二進位日誌(binlog)和事務日誌(包括redolog和und

前言在開發中,需要透過監聽mysql的binlog日誌檔做到對資料表的監控,由於mysql是部署在docker容器中,還需要解決資料卷的問題1、透過資料卷的方式開啟一個mysql鏡像dockerrun- p3307:3306--namemyMysql-v/usr/docker/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.7.25備註:需事先在宿主機目錄下建立一個檔案用來保存mysql的資料集,我這裡建立的目錄是/u
