您好,登錄后才能下訂單哦!
這篇文章主要介紹“Centos7中MySQL數據庫怎么使用mysqldump進行每日自動備份的編寫”,在日常操作中,相信很多人在Centos7中MySQL數據庫怎么使用mysqldump進行每日自動備份的編寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Centos7中MySQL數據庫怎么使用mysqldump進行每日自動備份的編寫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
數據庫的備份,對于生產環境來說尤為重要,數據庫的備份分為物理備份和邏輯備份。
物理備份:使用相關的復制命令直接將數據庫的數據目錄中的數據復制一份貨多分副本,常使用工具:XtraBackup。
邏輯備份:使用mysql自帶的mysqldump命令把需要備份的數據以sql語句的形式存儲起來。
下邊我們將使用mysqldump命令進行數據備份。使用自動任務進行每日備份。
1、創建文件夾,執行的sh文件和數據庫的備份文件都存在這個文件夾下
mkdir /usr/local/mysqlDataBackup cd /usr/local/mysqlDataBackup
2、創建sh文件并編寫shell腳本:
backup.sh
單數據庫腳本:
#!/bin/bash #This scripts is for auto backup databases #create by weijb at 2021-07-28 #delete data from 7 day before DATAdelete=‘date +%F -d "-7 day"‘ rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz MYSQL_CMD=/usr/bin/mysqldump MYSQL_USER=賬號 MYSQL_PWD=密碼 DATA=‘date +%F‘ DBname=test_db ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
解析:
(1)刪除7天前的備份數據,節省空間:
DATAdelete=‘date +%F -d "-7 day"‘ 當前時間前7天的日期
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 刪除前7天的備份數據,節省空間,只保留最新的7天數據
(2)定義變量:
MYSQL_CMD=/usr/bin/mysqldump mysql自帶的mysqldump命令所在的位置
MYSQL_USER=賬號 mysql連接的賬號
MYSQL_PWD=密碼 mysql連接的密碼
DATA=‘date +%F‘ 獲取當前日期,%F 表示格式:%Y-%m-%d 例如:2021-07-28
DBname=test_db 需要備份的數據庫名,當前的數據庫名為:test_db
(3)執行備份命令:
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
--compact 優化輸出信息
-B 包含建庫的語句
gzip 壓縮備份,減少備份的文件大小
usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz 備份文件保存的路徑以及名字
多數據庫備份:
#!/bin/bash #This scripts is for auto backup databases #create by weijb at 2021-07-28 #delete data from 7 day before DATAdelete=‘date +%F -d "-7 day"‘ rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz MYSQL_CMD=/usr/bin/mysqldump MYSQL_USER=賬號 MYSQL_PWD=密碼 DATA=‘date +%F‘ DBname=‘ mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "show databases;" | sed '1,5d'‘ for DBname in ${DBname} do ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz done
解析:
(1) 截取需要備份的數據庫
-e "show databases;" | sed '1,5d'‘ 顯示所有的數據庫,并截取mysql自帶的information_schema、mysql、performance_schema、sys意外的所有數據庫。
(2) 其他的和單庫備份相同
3、驗證腳本是否編寫成功:
(1)腳本文件授權:
cd /usr/local/mysqlDataBackupchmod +x backup.sh
(2) 執行腳本:
sh backup.sh
/usr/local/mysqlDataBackup 下生成文件說明編寫成功。
4、編寫自動任務:
每天凌晨1點對數據庫進行備份:
crontab -e
輸入i進行編輯:
00 01 * * * /usr/local/mysqlDataBackup/backup.sh
使用esc退出文件編輯,輸入 :wq 保存并退出。
查詢任務是否設置成功:
crontab -l
重啟crontab服務:
service crond restart
至此,mysql的自動任務腳本備份數據庫到此完成。
到此,關于“Centos7中MySQL數據庫怎么使用mysqldump進行每日自動備份的編寫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。