1. 程式人生 > >使用mysql的binlog功能恢復資料

使用mysql的binlog功能恢復資料

環境:linux(centos6.8),mysql(5.6)

1:開啟binlog功能

編輯 vim /etc/my.cnf,加上 log-bin =/app/mysql_binlog/mysql-bin,順便加上 expire_logs_days=7,後面的配置代表保留7天日誌,接著建立/app/mysql_binlog資料夾。最後重啟mysql,service mysqld restart



2:模擬被刪除的資料

開啟資料庫客戶端工具,建立表,新增資料,並刪除資料,這裡以t_ce_msg為例,首先建立兩條資料,1和2。


然後刪除1資料


3:檢視binlog日誌

接著檢視binlog日誌,在這裡我們直接使用客戶端的功能就可以,比較方便,命令為 show binlog events in 'mysql-bin.000003'; 




4:恢復資料

在日誌中我們可以清楚的看到,其實我不是新增1和2資料然後刪除1的,而是先新增1,刪除1,又新增2的,不過這不重要,接下來就要使用binlog來恢復已經被刪除的1資料了,注意看日誌,日誌裡記錄了我新增資料的sql和刪除資料的sql,現在我要恢復資料,並不需要執行日誌裡那條刪除1資料的sql,可以看到,新增1資料的開始(BEGIN)到提交(COMMIT),是從2051(Pos)到2399(End_log_pos)。執行恢復需要有用到mysqlbinlog命令,在這裡,我直接連線到了資料庫的伺服器,進入mysql的bin目錄進行操作的,命令 mysqlbinlog --start-position=2051 --stop-position=2399 /app/mysql_binlog/mysql-bin.000003 | mysql -uroot -p ,回車後輸入密碼。




5:可能出現的問題

執行恢復命令的時候,可能會出現ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:yes),這可能是一個bug,因為我之前剛裝上mysql的時候就已經自己改了密碼,長時間沒用命令連線,就又出現這個錯誤,具體解決方法參考https://blog.csdn.net/zzq900503/article/details/14163769,注意mysql5.6和mysql5.7修改命令是不一樣的。

記:由於是用於演示,所以是在新增資料之前就已經開啟了binlog,並且也不會超過7天,如果是在正式環境,很可能binlog的記錄並不是從頭到尾的所有sql,所以就需要和全量備份配合使用,資料恢復期間,最好停止外界對資料庫的訪問,避免資料錯誤的出現。

相關推薦

使用 MYSQLBINLOG恢復資料

BINLOG就是一個記錄SQL語句的過程,和普通的LOG一樣。不過只是她是二進位制儲存,普通的是十進位制儲存罷了。1、配置檔案裡要寫的東西:[mysqld]log-bin=mysql-bin(名字可以改成自己的,如果不改名字的話,預設是以主機名字命名)重新啟動MSYQL服務。

使用mysql的binlog功能恢復資料

環境:linux(centos6.8),mysql(5.6)1:開啟binlog功能編輯 vim /etc/my.cnf,加上 log-bin =/app/mysql_binlog/mysql-bin,順便加上 expire_logs_days=7,後面的配置代表保留7天日誌

利用閃回功能恢復刪除(drop,delete)的資料和表及資料,update之後資料恢復

一、drop表 從 flashback table 裡查詢被刪除的資料表 1、select * from recyclebin order by droptime desc 2、執行表的恢復flashback table '需要恢復的表名' to before drop

mysql利用mysqlbinlog命令恢復誤刪除資料

實驗環境: MYSQL 5.7.22  開啟二進志日誌 日誌格式MIXED 實驗過程: 1、執行:FLUSH LOGS; master-bin.000014 檔案就是新生成的檔案 重新整理日誌是為了實驗內容更直觀,更容易觀察到整個實驗過程的內容。 我看

oracle利用flashback 閃回功能恢復delete資料

select * from tablename  as of timestamp to_timestamp('2010-06-12 13:00:00','yyyy-mm-dd hh24:mi:ss'); flashba

mysqlbinlog恢復mysql數據庫數據【簡單體驗】

img -- 數據庫 ont 接下來 mysq png nlog size 前言 僅限於菜鳥的一次簡單體驗。 前提:mysql已經開啟了binlog日誌功能。可以自行百度,推薦地址--------->windows下如何開啟mysql日誌功能 體驗目標:在數據庫表裏面

移動硬盤磁盤未被格式化恢復資料的辦法

打不開 圖標 分享 ora aurora 導致 .com 文件 內部 H盤打不開磁盤未被格式化,是因為這個I盤的文件系統內部結構損壞導致的。要恢復裏面的數據就必須要註意,這個盤不能格式化,否則數據會進一步損壞。具體的恢復方法看正文 工具/軟件:AuroraDataReco

J盤提示文件系統沒有,要怎麽恢復資料

暫時 損壞 選擇 image .com TE 結構 拷貝 工具 J盤打不開文件系統沒有,是因為這個I盤的文件系統內部結構損壞導致的。要恢復裏面的數據就必須要註意,這個盤不能格式化,否則數據會進一步損壞。具體的恢復方法看正文 工具/軟件:星空數據恢復軟件 步驟1:先百度搜索並

Redis利用appendonly.aof恢復資料

Redis利用appendonly.aof恢復資料 1、修改配置檔案,開啟appendonly [[email protected] ~]# cd /var/lib/redis/6379/ [[email protected] 6379]# ls dump.r

MySQL 資料庫增量備份與恢復資料命令實戰

1. 備份單個數據庫練習 mysqldump 命令多種引數的使用 1.1 調整 MySQL 客戶端及服務端字符集為建庫建表時預設的 latin1,避免備份時的亂碼問題 [[email protected] ~]# vi /etc/my.cnf [[email protected] ~

伺服器重灌系統分割槽丟失怎麼恢復資料原來這麼簡單?

一、伺服器資料恢復故障情況簡介 北京某公司的一臺伺服器由於重灌作業系統時操作失誤導致分割槽狀態改變,原存有重要資料的一個分割槽丟失無法訪問,伺服器資料恢復的具體情況為:伺服器採用raid5磁碟陣列的儲存方式,MD1200磁碟櫃加raid卡的組合方式;伺服器的磁碟陣列中共有15塊普通磁碟;原伺服器

MySQL免安裝版中 Data資料恢復資料的方法

1、WIN鍵+R鍵開啟執行,然後輸入cmd,回車進入命令提示符 2、停止 MySQL 服務 命令:net stop mysql 3、然後把以前的資料庫檔案(自己需要恢復的資料庫 , 在Data資料夾下的 , 資料庫名即資料夾名)複製到,新的資料庫Data資料夾下(

在Linux 中如何從程序相關的檔案描述中恢復資料

在Linux中誤刪除了某個檔案,但是 ps-ef|grep 檔名 發現某個程序還在使用該檔案,那麼可以通 過以下方式恢復檔案。 例如:建立一個簡單檔案/tmp/test.txt, 隨便向裡面寫點內容 兩個client模擬,client1 負責開啟檔案less /tmp/test.txt(模擬佔用執行緒

.bgtx字尾勒索病毒刪除+恢復資料(Dharma家族)

Dharma勒索病毒已經證明了一個新的危險變體已經鬆動了。新的Dharma現在附加了.bgtx副檔名,它將其新增到加密檔案中並保留擴充套件格式,就像舊的.combo變體一樣 - Filename.id{ID-here}.[[email protected]] .bgtx。Dh

.boost勒索病毒(Dharma家族)- 刪除和恢復資料

刪除.boost檔案病毒的最佳方法 .boost勒索病毒是Dharma勒索病毒的一種變種,它已造成大量破壞,並且過程仍在繼續。它是由一群網路***以其邪惡的動機和錯誤的意圖建立的。一旦設法啟用,它會加密您儲存的所有檔案和資料夾,並使其無法訪問。每當您嘗試開啟任何資料時,它會在計算機螢幕上顯示贖金訊息,並

pickle模組以特殊的二進位制格式儲存和恢復資料物件

先用pickle模組進行資料物件的儲存 1 import pickle 2 3 data1 = {'a': [1, 2, 3, 9], 4 'b': ('string', 'Unicode string'), 5 'c': ('True',

Update誤操作後如何恢復資料

問題 今天在公司操作使用者表,要求更新某個使用者的密碼欄位,結果在寫更新語句的時候忘記加條件了,導致所有使用者資料都被更新了,瞬間慌神了,表中可有幾十條資料,而且密碼都是MD5加密的,於是趕緊查資料,使用了資料恢復方法,目前資料已成功恢復,所以在這裡總結一下,希望以後在遇到同樣問題的時候能夠快速的解

mongodb檔案損壞的恢復--無可恢復資料

1.mongodb 啟動異常error code 100,檢查日子檔案損壞 2 檢查collection-15-6548623434943640018.wt 可恢復資料,為空,不存在恢復的資料 3.使用wt刪除該檔案,會將collection和table同步刪除,不可手動刪除 4.重啟mon

oracle備份之rman_恢復資料檔案

測試環境:redhat 5.5 oracle 11g 測試步驟: 1.備庫 2.插資料 3.刪dbf 4.關閉並啟動到mount 5.restore 6.recover 7.開啟 RMAN> backup database; Starting back

MongoDB資料庫檔案損壞恢復資料全過程

一.故障描述 客戶裝置環境為一臺作業系統為Windows Server 2008的伺服器,部署MongoDB資料庫。由於業務需要,客戶在未關閉MongoDB資料庫服務的情況下,對資料庫檔案進行了拷貝。將資料庫檔案拷貝到其他分割槽後,客戶對原資料庫分割槽進行了格式化操作,後將資料庫檔案拷回原分割槽,重新啟動M