標籤:http ar 檔案 art sp log on c html
目標:每7天做一個完整備份,每天做一份binlog日誌,第二周將之前的備份刪除併產生新的完整備份和binlog日誌,備份要求每天2:00自動完成
mysql 版本:mysql5.5
1.開啟binlog
vim /etc/my.cnf
[mysqld]
log-bin=binlog 2.重啟mysqld服務
/etc/init.d/mysqld restart 驗證binlog開啟成功
/usr/local/mysql/var/下會出現binlog.0000001,binlog.index檔案 3.重新整理日誌產生新的binlog
mysql -u root -p flush-logs 4.刪除前一時期的日誌除了最後一個
rm -f `sed -n ‘$!p‘ binlog.index` 5.產生新的完整備份
mysqldum --all-databases -u root -p 6.刪除最後一個日誌
rm -f `sed -n ‘$p‘ binlog.index` 7.產生新的增量備份
mysqladmin -u root -p flush-logs 8.刪除最後一份日誌
rm -f `sed -n ‘$!p‘ binlog.index` 9.將新的日誌資訊重新寫入binlog.index
sed -n ‘$p‘ binlog.index >tmp
cat tmp >binlog.index
操作步驟: 一.每天淩晨零點一分產生一份binlog,用crontab實現
crontab -e
01 00 * * * mysqladmin -u root -pdbpass flush-logs 二.用指令碼實現每周產生一個新的完整備份,並將原來的增量備份全刪除
1.vim mysql_bak.sh #!/bin/bash
#This script will backup mysql database MYSQL_DIR=/usr/local/mysql #delete old binlogs except the last one
rm -f `sed -n ‘$!p‘ $MYSQL_DIR/data/binlog.index` #backup db
mysqldump -u root -pdbpass dbname >/var/backup/dbname_`date +"%Y%m%d"`.sql #delete the last binlog
rm -f `sed -n ‘$p‘ $MYSQL_DIR/data/binlog.index` #create new binlog by flush-logs
mysqladmin -u root -pdbpass flush-logs #write new binlog into binlog.index
sed -n ‘$p‘ $MYSQL_DIR/data/binlog.index >/tmp/tmp.index
cat /tmp/tmp.index >$MYSQL_DIR/data/binlog.index2.mv mysql_bak.sh /usr/local/mysql/bin/3.crontab實現每周日備份
crontab -e
00 02 * * 7 /usr/local/mysql/bin/mysql_bak.sh
本文來自: 華盟駭客(中國最大駭客培訓中心網站) 詳細出處參考:http://www.hmhack.com/article/html/493.html
mysql自動備份策略