生產(chǎn)環(huán)境中對數(shù)據(jù)庫進行定期備份是必須要做的事情,不做數(shù)據(jù)庫備份的前提下,一旦數(shù)據(jù)庫本身發(fā)生不可恢復(fù)性的故障,后果不敢想象。本文講解在Linux服務(wù)器上,使用shell+crontab的方式對mysql數(shù)據(jù)庫進行定期備份(oracle數(shù)據(jù)庫同樣可以使用該方法),原理上就是將對應(yīng)數(shù)據(jù)庫的導(dǎo)出命令寫進shell中,再將shell腳本添加到crontab定期執(zhí)行。
腳本內(nèi)容
#!/bin/bash
#定義為一個字符串,以字符串內(nèi)容為date的年+月+日+時+分+秒的形式
d1=`date +%Y-%m-%d_%H:%M:%S`
#導(dǎo)出數(shù)據(jù)庫命令,并給導(dǎo)出的數(shù)據(jù)文件名加上時間
/usr/bin/mysqldump -uroot -pXXXXXX --single-transaction --flush-logs --set-gtid-purged=OFF wbdb > /home/mysql_data/wbdb_bak$d1.sql
#刪除一周前備份的數(shù)據(jù)文件
find /home/mysql_data/ -mtime +5 -name "wbdb_bak*" | xargs rm -rf
crontab配置
實現(xiàn)每天凌晨1點和下午4點執(zhí)行腳本

01.gif
備份效果

02.png