程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql通過二進制日志文件恢復數據

MySql通過二進制日志文件恢復數據

編輯:MySQL綜合教程

MySql通過二進制日志文件恢復數據


在《百度、阿裡、騰訊如何承載PB級別大數據》的視頻中了解到,大型網站的數據庫每天都會定時的進行數據備份份。如果設置每天的0點進行數據備份,在兩個數據備份周期期間數據庫出現宕機情況,0點到宕機這個時間段的數據如何備份呢?在MySql中是通過數據庫的二進制日志文件進行數據恢復的。

MySql的二進制日志文件默認是關閉的,需要我們在MySql根目錄下的my.ini文件中設置為開啟狀態。設置方式為在[mysqld]節點下,添加log-bin= D:\mysql-5.6.24\data\mysql binlog-do-db=dbbin,mysql為生成的二進制日志文件名,dbbin為需要記錄日志的數據庫,配置完成後重啟MySql服務。下面我通過一個實例講解如何通過二進制日志文件恢復數據。

1.在mysql中創建一個數據表,操作如下:

\

此時在MySql安裝目錄的data文件夾下會生成mysql.000001文件。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgztLDx7/J0tTU2kRvc7Swv9rNqLn9TXlTcWy1xG15c3FsYmlubG9nw/zB7rLpv7TI1da+zsS8/qOsstnX98jnz8KjujwvcD4KPHA+ICAgPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150427/2015042709523861.png" alt="\">

如果提示mysqlbinlog命令無法識別,則需要把MySql的bin路徑(我的是:D:\mysql-5.6.24\bin)添加到path環境變量中。

2.向test數據表插入一條語句,操作如下:

\

此時在MySql安裝目錄的data文件夾下會生成新的日志文件。

我們可以在Dos窗口通過MySql的mysqlbinlog命令查看日志文件,操作如下:

\

3.刪除數據表test,操作如下:

\

此時在MySql安裝目錄的data文件夾下會生成新的日志文件。

4.用二進制文件恢復數據

通過show tables命令發現,test表已經不存在。

在dos窗口執行命令mysqlbinlog --no-defaults D:\mysql-5.6.24\data\mysql.000001 " mysql -uroot -proot恢復數據。

在mysql中再次執行show tables命令發現,test表恢復了。

通過實驗發現,在MySql中每次執行flush logs命令時,會在data目錄生成一個新的日志文件,但此次的操作記錄會記錄在上一個日志文件中,所以當我們想通過日志文件查看本次操作記錄時,應該查看上一個日志文件。

到此在MySql中通過二進制日志文件恢復數據的操作講解完成,希望能幫助大家進步。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved