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; (恢復到資料清空前時間)