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