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