1. 程式人生 > >mysql全備份與增量備份

mysql全備份與增量備份

                         MySQL增量備份

1.建立一個資料夾用於存放mysql備份檔案

  例如:mkdir  mysqldata

2.在建立指令碼檔案,用於備份資料庫

   例:sudo vi /usr/sbin/bakmysql

檔案內容為:

rq=`date "+%Y%m%d"`

mysqldump   -uroot -pepimap.123456 epimap --single-transaction --flush-logs --master-data=2> /mysqldata/epimap$rq.sql

備份檔案以epimap+當前日期命名

3.修改my.cnf

中開啟日誌檔案

 log_bin                 = mysql-bin

expire_logs_days        = 10(日誌保留十天)

binlog_do_db            = epimap(資料庫名)

4.增加定時備份

 Sudo vi  /etc/crontab

新增定時執行指令碼:

06 13   * * 6   root     /usr/sbin/bakmysql

每週六 13:06執行/usr/sbin/bakmysql檔案

5.備份執行完畢後,檢視備份檔案會有:

這兩個值時在恢復日誌檔案中會使用的

可以再/var/lib/mysql檢視日誌檔案

6.當資料一不小心清空時就可以按照完全備份檔案和日誌檔案進行恢復

 恢復完全備份檔案:

mysql -uroot -pepimap.123456 epimap </mysqldata/epimap20140626.sql

再恢復日誌檔案:

mysqlbinlog --no-defaults mysql-bin.000085  --start-position=107 --stop-datetime='2014-06-26 12:00:00' |mysql -uroot -pepimap.123456; (恢復到資料清空前時間)