Mysql資料庫日誌,備份及復原操作

來源:互聯網
上載者:User

一、開啟二進位日誌配置 :

在Windows系統下,對mysql的my.ini的log-bin等進行配置目錄位置時,假設要將log-bin的日誌配置到D盤的mysqllog的檔案為binlog。則可以如下配置 :

[mysqld]

log-bin="D:\mysqllog/binlog"  注意:在這裡的最後一個路徑採用的是"/"而不是Windows檔案系統的“\"


二、二進位Tlog:

1、查看

採用Mysqlbinlog.exe。可以在安裝目錄的Server裡的Bin目錄下找到。

查看: cmd> mysqlbinlog.exe filename (添加 --database [databasename] 可以查看某個特定的資料庫的sql日誌)

2、暫停日誌記錄

mysql> SET SQL_LOG_BIN=0/1  設定為0:表示暫停記錄;否則為1;

3、刪除二進位日誌

mysql> RESETMASTER;  (注意,將刪除全部,要小心!!!!)

mysql> PURGE MASTER LOGS TO filename.number: 刪除編號小於number的日誌;

mysql> PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh:MM:ss' : 刪除日誌前的日誌;

4、重新整理日誌,使得當前的日誌編號增加一

採用MysqlAdmin.exe. 可以在安裝目錄的Server裡的Bin目錄下找到。

如當前的伺服器的記錄檔為: binlog.000002

則執行: cmd> mysqladmin -u root -p flush-logs    :輸入密碼

執行之後,在二進位日誌目錄下會增加一個新的記錄檔: binlog.000003。此後,伺服器的新日誌將會寫到binlog.000003。

此做法很適合於增量備份時使用。


三、Database Backup與還原

採用mysqldump.exe. 可以在安裝目錄的Server裡的Bin目錄下找到。

1、完全備份:

cmd> mysqldump -u root -p test > test.sql   :輸入密碼  將會備份資料庫名為test的資料庫到mysqldump.exe所在的目錄的test.sql檔案。

2、完全備份整個伺服器的資料庫,並重新整理記錄檔:

重新整理記錄檔的目的:告訴伺服器將日誌寫到新的記錄檔,為此,將來進行的備份就不用再進行完全備份了,只需要備份新的記錄檔。實現”增量備份“

cmd> mysqldump -u root -p --flush-logs   執行之後將會產生更多的新的記錄檔。如備份3個資料庫時,會再產生3個記錄檔。因為3個資料庫的備份是被看成3個不同的事務執行的。因此,加上:--single-transaction 標記之後,將作為一個事務。因此,只會增加一個記錄檔。

3、還原作業:

注意:由於一般情況下,系統的二進位日誌是開啟的,因此,執行還原時,會將還原的sql代碼同樣寫入到日誌。當顯然,這些代碼並不一定是需要存在的。因此,可以用暫停二進位日誌的方式進行避免,但是,我在測試時,發現採用:SET SQL_LOG_BIN=0並不能做到。因此,可以採用以下的做法:

    1)、重新整理一個記錄檔: cmd> mysqladmin -u root -p flush-logs. (這個檔案用於存放還原時產生的日誌,而不會影響原來的日誌)

    2)、執行還原一個資料庫:test:cmd> mysql  -u -root -p < test.sql; 

    3)、再將”增量“的日誌執行到資料庫test(要小心,不要執行其他資料庫的二進位日誌):

        cmd>  mysqlbinlog log.number | mysql -u root -p test 。

        可以加入--database [name]的參數,指定只選擇增量還原某個資料庫的sql。如針對 test資料庫: 

        cmd> mysqlbinlog log.number --database test | mysql -u root -p test

    4)、在此過程產生的記錄檔可以考慮刪除。因為是原來的資料。


相關文章

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.