【SQL】MySQL之使用mysqlbinlog進行增量備份及恢複詳解

來源:互聯網
上載者:User
文章目錄
  • 增量備份過程
  • 總結
【目標】使用mysqldump做全備,結合mysql內建的binlog功能實現增量備份

為了操作方便,建議開啟兩個Terminal,一個進行Mysql的相關操作,一個進行linux語句操作。

全備份的過程參考博文:http://blog.csdn.net/jueblog/article/details/9878191

增量備份過程(1)配置My.cnf檔案

(Windows系統下配置my.ini檔案),啟用二進位備份:

log-bin=D:/Program Files (x86)/MySQL/mylog/juelog

在這裡指定把備份檔案放到哪個檔案下。

(2)重啟MySQL服務。

重啟後,在所配置的檔案目錄下,將出現兩個二進位的設定檔。

其中,juelog.index為備份檔案的索引,指明有哪些備份檔案;juelog.000001即為備份檔案,存放使用者對資料庫的所有操作。

索引檔案juelog.index中的內容如下:

(3)備份日誌的自動更新

當對資料庫進行相應的操作時,備份日誌會發生相應的更新。這點可以從備份檔案的時間上觀察得到。

經檢測,備份檔案中會記錄建立表的語句、刪除表的語句、insert語句、delect語句、update語句等,而不會記錄select語句。

(4)查看備份日誌中內容

可以使用MySQL內建的mysqlbinlog程式,來查看備份檔案中的內容。

進入cmd控制台,以:

mysqlbinlog 備份檔案的路徑

的方式來查看備份檔案中的內容。

通過可以看到,MySQL會把每一個操作的時間記錄下來,同時分配一個位置position。

由此,我們可以根據時間或者位置來恢複資料庫檔案。

(5)按時間匯出恢複日誌。

mysqlbinlog --start-datetime="2013-08-11 23:00:00" --stop-datetime="2013-08-11 23:20:59" juelog.000001 -r Test2.sql

以上操作即是把從2013-08-11 23:00:00到2013-08-11 23:20:59的所有操作都匯入進Test2.sql中。

執行成功該語句後,在備份目錄下即會產生Test2.sql檔案。

其中,--start-datetime和--stop-datetime是可選的。

按位置匯出日誌與此同理。

(6)按位置進行恢複:

為了檢驗復原,我們可以先將該表清空。

D:\Program Files (x86)\MySQL\mylog>mysqlbinlog --stop-position="102" juelog.000001 | mysql -uroot -pEnter password: ***

即可恢複表中內容。

按時間進行恢複與此同理。

(7)自動刪除備份日誌。

由於備份日誌會佔用大量的硬碟空間,所有我們需要定時的刪除備份日誌。

可以在my.cnf檔案(Windows系統下配置my.ini檔案)中設定EXPIRE_LOGS_DAYS參數。

例如:

EXPIRE_LOGS_DAYS=7

則超過7天的備份日誌會自動刪除。

(8)開啟binlog日誌

 mysql -hlocalhost -uroot -pjue -e "set global sql_log_bin=1"; mysql -hlocalhost -uroot -pjue -e "show global variables like 'sql_log_bin'\G";

執行結果:

*************************** 1. row ***************************Variable_name: sql_log_bin        Value: ON
(9)禁止binlog日誌

mysql -hlocalhost -uroot -pjue -e "set global sql_log_bin=0";mysql -hlocalhost -uroot -pjue -e "show global variables like 'sql_log_bin'\G";

執行結果:

*************************** 1. row ***************************Variable_name: sql_log_bin        Value: OFF

總結

Mysql資料庫會以二進位形式,自動把使用者對mysql資料庫的操作,記錄到備份檔案中。

當使用者希望恢複的時候,可以使用備份檔案,來進行相應的恢複。

備份檔案中會記錄建立表的語句、刪除表的語句、insert語句、delect語句、update語句等,而不會記錄select語句。

增量備份記錄的內容包括:

(1)動作陳述式本身。

(2)操作的時間。

(3)操作的位置。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.