Linux下mysql資料庫每天自動備份定時備份
阿新 • • 發佈:2019-02-09
1、檢視磁碟空間情況:
既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗,資料丟失的惡果!
儲存到當前磁碟這是最簡單,卻是最不推薦的;伺服器有多塊硬碟,最好是把備份存放到另一塊硬碟上;有條件就選擇更好更安全的儲存介質;
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% / tmpfs 1.9G 92K 1.9G 1% /dev/shm /dev/sda1 485M 39M 421M 9% /boot /dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home
2、建立備份目錄:
上面我們使用命令看出/home下空間比較充足,所以可以考慮在/home儲存備份檔案;
cd /home
mkdir mysql_backup
cd mysql_backup
3、建立備份Shell指令碼:
vim autoBackup.sh
輸入/貼上以下內容:
#!/bin/bash #backup mysql #備份存放路徑 BACKUP_DIR=/home/mysql_backup #獲取當前系統時間 DATE=`date +%Y%m%d` #資料庫賬號 DB_USER=backup #資料庫密碼 DB_PASSWD=aaa111 #備份保留天數 DAYS=15 #需要備份的資料庫,使用空格分隔 DATABASES="db1 db2" for i in $DATABASES; do #備份資料庫,並壓縮資料檔案 mysqldump -u$DB_USER -p$DB_PASSWD --set-gtid-purged=OFF ${i} | gzip > $BACKUP_DIR/${i}_$DATE.sql.gz; #保留DAYS天數的資料備份 find $BACKUP_DIR/ -mtime +$DAYS -delete; done exit
注意資料庫使用者名稱,密碼和資料庫名替換為實際資料庫;
如果資料庫開啟GTID模式,需要匯出時新增--set-gtid-purged=OFF;
4、新增可執行許可權:
chmod u+x autoBackup.sh
新增可執行許可權之後先執行一下,看看指令碼有沒有錯誤,能不能正常使用;
./autoBackup.sh
5、新增計劃任務
檢測或安裝 crontab
確認crontab是否安裝:
執行 crontab 命令如果報 command not found,就表明沒有安裝
# crontab
-bash: crontab: command not found
如時沒有安裝 crontab,需要先安裝它,具體步驟請參考:
新增計劃任務
執行命令:
crontab -e
這時就像使用vi編輯器一樣,可以對計劃任務進行編輯。 輸入以下內容並儲存:
00 03 * * * /home/mysql_backup/autoBackup.sh
具體是什麼意思呢? 意思是每天凌晨3點鐘執行一次shell指令碼“/home/mysql_backup/autoBackup.sh”。