Linux下如何實現(xiàn)MySQL數(shù)據(jù)庫每天定時自動備份
在云計算的浪潮下,企業(yè)多將業(yè)務部署在云上。對于數(shù)據(jù)庫中的數(shù)據(jù),直接使用云數(shù)據(jù)庫自帶的備份功能實現(xiàn)備份,操作簡單。但是云數(shù)據(jù)庫備份數(shù)據(jù)的存儲空間有限制,一旦超出存儲量便自動關閉備份功能,運維人員往往也會忽略這個問題,如果這時遭遇系統(tǒng)故障,面臨的就是數(shù)據(jù)丟失。
推薦一個運維工具——王教授,他可以幫助我們輕松解決這個“囧境”,不僅可以隨時了解云資產(chǎn)的使用情況,還可及時提醒我們發(fā)現(xiàn)的問題并給出建議(例如:出現(xiàn)云數(shù)據(jù)庫未開啟備份策略、云數(shù)據(jù)庫備份策略發(fā)生變化等),幫助我們及時發(fā)現(xiàn)云資源使用中潛在的風險。
那么,檢測到云數(shù)據(jù)庫未開啟備份后,我們怎么辦呢?
- 增加云數(shù)據(jù)庫的磁盤容量恢復云數(shù)據(jù)庫自帶的策略
- 使用MySQL自帶的備份工具+ crontab 的方式來實現(xiàn)備份
下面是小編總結(jié)在Linux系統(tǒng)下的MySQL數(shù)據(jù)庫每天定時自動備份的配置步驟,希望對大家有幫助~
1、查看磁盤掛載信息(選一個容量合適的)
- #df -h
2、創(chuàng)建備份目錄
為了方便,在/home保存?zhèn)浞菸募?/p>
- cd /home/game
- mkdir backup
- cd backup
3、創(chuàng)建備份Shell腳本
- vi bkDatabaseName.sh
PS:注意把以下命令中的DatabaseName換為實際的數(shù)據(jù)庫名稱;
輸入/粘貼以下內(nèi)容:
- #!/bin/bash
- mysqldump -uusername -ppassword DatabaseName > /home/dbback/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
對備份進行壓縮:
- #!/bin/bash
- mysqldump -uusername -ppassword DatabaseName | gzip > /home/dbback/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
注意:
- 把username 替換為實際的用戶名
- 把password 替換為實際的密碼
- 把DatabaseName 替換為實際的數(shù)據(jù)庫名
4、添加可執(zhí)行權(quán)限
- chmod u+x bkDatabaseName.sh
添加可執(zhí)行權(quán)限之后先執(zhí)行一下,看看腳本有沒有錯誤,能不能正常使用;
- ./bkDatabaseName.sh
5、添加計劃任務
1)檢測或安裝crontab
執(zhí)行以下命令看是否安裝有crontab
- crontab
如果錯“command not found”,則表明沒安裝;如果沒安裝,先安裝
CentOS下使用yum命令安裝計劃任務程序crontab
使用rpm命令從CentOS系統(tǒng)盤安裝計劃任務程序crontab
2)添加計劃任務
- crontab -e
輸入以下內(nèi)容并保存
- 1 0 * * * /home/backup/bkDatabaseName.sh
意思是每天凌晨執(zhí)行一次bkDatabaseName.sh 腳本
6、測試任務是否執(zhí)行
執(zhí)行幾次“ls”命令看下是否有文件創(chuàng)建就知道了。如果任務執(zhí)行失敗,看以下日志
- # tail -f /var/log/cron
輸出類似如下