MySQL 定時備份的實現

實現方法:crontab + shell script + mysqldump (以下在CentOS 6.6下測試通過)


1. mysqldump 命令實現備份某一數據庫:

mysqldump -uusername -ppassword dbname | gzip > /var/lib/mysqlbackup/dbname-`date +%Y-%m-%d_%H%M%S`.sql.gz  //生成sql文件並壓縮成gz文件,數據庫數據量很大時,會有些慢

2.   將備份命令寫進腳本:

vi backup.sh

#/bin/sh

starttime=`date +%s`

mysqldump -uxxx -pxxx dbname1 | gzip > /var/lib/mysqlbackup/dbname1-`date +%Y-%m-%d_%H%M%S`.sql.gz

mysqldump -uxxx -pxxx dbname2 | gzip > /var/lib/mysqlbackup/dbname2-`date +%Y-%m-%d_%H%M%S`.sql.gz

endtime=`date +%s`

time=$(($endtime - $starttime)) //shell 腳本注意,這裏一定要兩層括號。

echo 'Done. Cost' $time seconds

cd /var/lib/mysqlbackup

rm -rf `find . -name '*.sql.gz' -mtime +1`  //保留1天的備份文件,即刪除一天前的備份文件,防止備份文件積累較多,佔用系統磁盤空間。+1表示一天前的,-1表示一天內的,1,表示一天的。詳見鳥哥Linux書中find命令的講解


3. 將腳本的執行加入crontab

10 0 * * * sh /var/lib/mysqlbackup/mysqlbackup.sh >> /var/lib/mysqlbackup/log.txt 2>&1

//每天的0點10分進行備份













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章