《MYSQL教程自動恢復mysql數據庫日志文件的方法》要點:
本文介紹了MYSQL教程自動恢復mysql數據庫日志文件的方法,希望對您有用。如果有疑問,可以聯系我們。
如果mysql服務器啟用了二進制日志,可以使用mysqlbinlog工具來恢復從指定的時間點開始 (例如,從最后一次備份)直到現在或另一個指定的時間點的數據.
“mysqlbinlog:用于處理二進制日志文件的實用工具”.MYSQL應用
要想從二進制日志恢復數據,需要知道當前二進制日志文件的路徑和文件名.
一般可以從選項文件(即my.cnf or my.ini,取決于你的系統)中找到路徑.
如果未包含在選項文件中,當服務器啟動時,可以在命令行中以選項的形式給出.MYSQL應用
啟用二進制日志的選項為-- log-bin.
要想確定當前的二進制日志文件的文件名,輸入以下mysql語句:
?MYSQL應用
還可以從命令行運行:
?MYSQL應用
將密碼my_pwd替換為服務器的root密碼.MYSQL應用
1,指定恢復時間
對于mysql 4.1.4,可以在mysqlbinlog語句中通過--start-date和--stop-date選項指定datetime格式的起止時間.舉例說明,假設在今天上午10:00(今天是2006年4月20日),執行sql語句來刪除一個大表.要想恢復表和數據,你可以恢復前晚上的備份,并輸入:
?MYSQL應用
該命令將恢復截止到在--stop-date選項中以datetime格式給出的日期和時間的所有數據.如果你沒有檢測到幾個小時后輸入的錯誤的sql語句,可能你想要恢復后面發生的活動.根據這些,你可以用起使日期和時間再次運行mysqlbinlog:
?MYSQL應用
在該行中,從上午10:01登錄的sql語句將運行.組合執行前夜的轉儲文件和mysqlbinlog的兩行可以將所有數據恢復到上午10:00前一秒鐘.你應檢查日志以確保時間確切.下一節介紹如何實現.MYSQL應用
2,指定恢復位置
也可以不指定日期和時間,而使用mysqlbinlog的選項--start-position和--stop-position來指定日志位置.
它們的作用與起止日選項相同,不同的是給出了從日志起的位置號.
使用日志位置是更準確的恢復方法,特別是當由于破壞性sql語句同時發生許多事務的時候.
要想確定位置號,可以運行mysqlbinlog尋找執行了不期望的事務的時間范圍,但應將結果重新指向文本文件以便進行檢查.MYSQL應用
操作方法:
?MYSQL應用
該命令將在/tmp目錄創建小的文本文件,將顯示執行了錯誤的sql語句時的sql語句.
可以用文本編輯器打開該文件,尋找你不要想重復的語句.如果二進制日志中的位置號用于停止和繼續恢復操作,應進行注釋.用log_pos加一個數字來標記位置.使用位置號恢復了以前的備份文件后,應從命令行輸入下面內容:
?MYSQL應用
上面的第1行將恢復到停止位置為止的所有事務.
下一行將恢復從給定的起始位置直到二進制日志結束的所有事務.
因為mysqlbinlog的輸出包括每個sql語句記錄之前的set timestamp語句,恢復的數據和相關mysql日志將反應事務執行的原時間MYSQL應用
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6189.html