mysql二進制日記文件恢單數據庫。本站提示廣大學習愛好者:(mysql二進制日記文件恢單數據庫)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql二進制日記文件恢單數據庫正文
二進制日記的文件的感化
mysql二進制日記文件用來記載一切用戶對數據庫操作,即記載用戶對數據庫操作的sql語句。假如有此文件,當數據庫產生不測時,可以經由過程此文件檢查到用戶在此文件記載的時光段內用戶所做的操作,再和數據庫備份合營應用,便可再現用戶操作,使數據庫恢復。
二進制日記文件的弊病
二進制日記文件開啟後,一切對數據庫操作的記載均會被記載到此文件,
所以,當長時光開啟以後,日記文件會變得很年夜,占用磁盤空間。
應用二進制日記文件恢單數據庫
開啟日記文件
mysql默許是不開啟日記文件的功效的,須要我們手動開啟。操作以下:
1、 翻開mysql裝置目次\my.ini(windows體系是my.ini文件,linux是my.cnf文件)。
2、 找到[mysqld]這個標簽,在此標簽上面一行,添加語句:log-bin=binary-log。下面語句中,log-bin解釋要開啟二進制日記文件,binary-log是二進制日記文件的名字。
(測試的時刻我設置的:log-bin=d:/mysql_log/logbin_ouyang.log)
3、 重啟mysql辦事。可以在mysql裝置目次\data 文件夾下看到“binary-log.數字編號”文件,
如binary-log.000001。今後每重啟一次mysql辦事,都邑從新生成二進制日記文件,
文件名中的數字編號順次遞增。
(你的上一步給出的文件名,加了個序號 還有一個總的文件 index文件 如圖1:)
恢單數據庫
應用日記文件恢單數據庫必需要有一個數據庫備份(只需是在二進制日記文件功效開啟以後備份的就行)。恢單數據庫時,可以經由過程時光恢復,也能夠經由過程操作點恢復。
1、經由過程時光恢復辦法以下:
假如我在2011-04-02 00:00:00時辰開啟了二進制日記文件功效,並備份了數據庫文件。且在2011-04-02 12:00:00數據庫產生異常,須要恢復到2011-04-02 10:00:00。則操作以下:
l 用備份將數據庫答復到2011-04-02 00:00:00時刻的狀況。
l 在敕令行輸出以下敕令:
mysqlbinlog --stop-date="你想要恢復的時光" 日記文件的目次\binary-log.000001 | mysql -u root –p (D:\mysql_log>mysqlbinlog logbin_ouyang.000007 --stop-date="2011-10-23 15:05:00"|mysql -uroot -proot)
如許,體系會主動履行從二進制日記有記載開端截止到2011-04-02 10:00:00,用戶所做過的一切操作。與stop-date對應的,還有start-date屬性,可以設定履行記載的開端時光。也能夠兩個屬性都設置。
2、經由過程操作點恢復辦法以下:
在敕令行中輸出mysqlbinlog D:\binary-log.000003 > D:\log.txt,履行後翻開log.txt,
檢查外面語句,可以發明:在每一個操作之前,都邑有一個奇特的編號,以下紅字顯示:
/*!*/; # at 450 /*編號450*/ #110402 15:31:50 server id 1 end_log_pos 529 Query thread_id=2 exec_time=0 error_code=0 SET TIMESTAMP=1301729510/*!*/; DROP TABLE `jwc`
此編號跟著操作數增多而變年夜。和時光一樣是一個標志,經由過程操作點恢復的語句以下:
mysqlbinlog --stop-position="450" mysql裝置目次\data\binary-log.000001 | mysql -u root –p
如許,體系會主動履行二進制日記中編號最低的語句到編號450語句。
與stop-position對應的,還有start-position屬性,可以設定履行記載的開端編號。
附:(你應當看看)
1.0 mysqlbinlog 是mysql自帶的一個日記操作對象!
2.0 假如直接翻開log文件 能夠會是亂碼,所以我們普通會:
D:\mysql_log>mysqlbinlog logbin_ouyang.000003 >log_3.txt 復制下 然後用記事本翻開!
便可以清晰的看到 操作的編號了 或許說(行號)
3.0 假如產生了毛病的操作!假如可以的話!你應當立馬停滯數據庫!然後恢單數據!
4.0 假如只是去失落某一個語句,你可以選擇恢復兩次 ,如圖:
D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --stop-position=10625|mysql -uroot -proot D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --start-position=10843|mysql -uroo t –proot
5.0 假如產生 Could not read entry at offset 1478: Error in log format or read error. 相似的毛病!
請檢討你的編號能否准確!留意這個編號 不是一些編纂器顯示的誰人行號哦,# at 450 /
常常delete 、update錯了!一切給本身個文檔!固然我也願望你永久的用不上這個文檔 ! 周末高興! (排版有的亂哈!多多原諒!)