數據庫的重要性不言而喻,那么數據庫的備份就顯得非常重要了,手動人工備份肯定工作量大,而且有可能還會出錯.
這里講講利用linux的crontab每天定時備份mysql數據庫
兩點要求
(1)每天定時備份,可在深夜進行,以免影響服務器;
(2)自動刪除上個月老的備份文件,但保留上月最后幾天的備份。
1、創建保存備份文件的路徑/mysqldata #mkdir /usr/local/mysqldata
2、創建/usr/sbin/bakmysql文件 #vi /usr/sbin/bakmysql
rq=` date +%Y%m%d ` tar zcvf /usr/local/mysqldata/mysql$rq.tar.gz /var/lib/mysql 或者寫成 rq=` date +%Y%m%d ` mysqldump ——all-databases -u root -p密碼 > /mysqldata/mysql$rq.sql /var/lib/mysql是你數據庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同 /mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。
3、修改文件屬性,使其可執行 # chmod +x /usr/sbin/bakmysql 4、修改/etc/crontab #vi /etc/crontab 在下面添加 01 3 * * * root /usr/sbin/bakmysql 表示每天3點鍾執行備份 5、重新啟動crond # /etc/rc.d/init.d/crond restart 完成。 這樣每天你在/mysqldata可以看到這樣的文件 mysql20040619.tar.gz
定時備份
使用系統的crontab
crontab -e
# m h dom mon dow command
0 3 * * * /var/backup/backup-mysql.sh
時間的格式是
分 時 日 月 周
上面的例子是指定每天3點備份一次數據庫
提高:
當然,還可以加上一些更好的功能,如
備份后的文件壓縮一下,這個很簡單
只保留最近xx天的備份文件,這個要稍微復雜一點點
使用mysql二進制增量備份……