Centos7中MySQL數(shù)據(jù)庫使用mysqldump進(jìn)行每日自動(dòng)備份的編寫
一、需求說明:
數(shù)據(jù)庫的備份,對(duì)于生產(chǎn)環(huán)境來說尤為重要,數(shù)據(jù)庫的備份分為物理備份和邏輯備份。
物理備份:使用相關(guān)的復(fù)制命令直接將數(shù)據(jù)庫的數(shù)據(jù)目錄中的數(shù)據(jù)復(fù)制一份貨多分副本,常使用工具:XtraBackup。
邏輯備份:使用mysql自帶的mysqldump命令把需要備份的數(shù)據(jù)以sql語句的形式存儲(chǔ)起來。
下邊我們將使用mysqldump命令進(jìn)行數(shù)據(jù)備份。使用自動(dòng)任務(wù)進(jìn)行每日備份。
二、執(zhí)行文件編寫:
1、創(chuàng)建文件夾,執(zhí)行的sh文件和數(shù)據(jù)庫的備份文件都存在這個(gè)文件夾下
mkdir /usr/local/mysqlDataBackup cd /usr/local/mysqlDataBackup
2、創(chuàng)建sh文件并編寫shell腳本:
backup.sh
單數(shù)據(jù)庫腳本:
#!/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=賬號(hào)
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天前的備份數(shù)據(jù),節(jié)省空間:
DATAdelete=‘date +%F -d "-7 day"‘ 當(dāng)前時(shí)間前7天的日期
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 刪除前7天的備份數(shù)據(jù),節(jié)省空間,只保留最新的7天數(shù)據(jù)
?。?)定義變量:
MYSQL_CMD=/usr/bin/mysqldump mysql自帶的mysqldump命令所在的位置
MYSQL_USER=賬號(hào) mysql連接的賬號(hào)
MYSQL_PWD=密碼 mysql連接的密碼
DATA=‘date +%F‘ 獲取當(dāng)前日期,%F 表示格式:%Y-%m-%d 例如:2021-07-28
DBname=test_db 需要備份的數(shù)據(jù)庫名,當(dāng)前的數(shù)據(jù)庫名為:test_db
?。?)執(zhí)行備份命令:
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
--compact 優(yōu)化輸出信息
-B 包含建庫的語句
gzip 壓縮備份,減少備份的文件大小
usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz 備份文件保存的路徑以及名字
多數(shù)據(jù)庫備份:
#!/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=賬號(hào)
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) 截取需要備份的數(shù)據(jù)庫
-e "show databases;" | sed '1,5d'‘ 顯示所有的數(shù)據(jù)庫,并截取mysql自帶的information_schema、mysql、performance_schema、sys意外的所有數(shù)據(jù)庫。
(2) 其他的和單庫備份相同
3、驗(yàn)證腳本是否編寫成功:
(1)腳本文件授權(quán):
cd /usr/local/mysqlDataBackupchmod +x backup.sh
(2) 執(zhí)行腳本:
sh backup.sh
/usr/local/mysqlDataBackup 下生成文件說明編寫成功。
4、編寫自動(dòng)任務(wù):
每天凌晨1點(diǎn)對(duì)數(shù)據(jù)庫進(jìn)行備份:
crontab -e
輸入i進(jìn)行編輯:
00 01 * * * /usr/local/mysqlDataBackup/backup.sh
使用esc退出文件編輯,輸入 :wq 保存并退出。
查詢?nèi)蝿?wù)是否設(shè)置成功:
crontab -l
重啟crontab服務(wù):
service crond restart
至此,mysql的自動(dòng)任務(wù)腳本備份數(shù)據(jù)庫到此完成。
到此這篇關(guān)于Centos7中MySQL數(shù)據(jù)庫使用mysqldump進(jìn)行每日自動(dòng)備份的文章就介紹到這了,更多相關(guān)MySQL使用mysqldump自動(dòng)備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用mysqldump對(duì)MySQL的數(shù)據(jù)進(jìn)行備份的操作教程
- MySQL數(shù)據(jù)備份之mysqldump的使用方法
- mysqldump備份數(shù)據(jù)庫時(shí)排除某些庫的實(shí)例
- 淺談mysqldump使用方法(MySQL數(shù)據(jù)庫的備份與恢復(fù))
- MySQL數(shù)據(jù)備份之mysqldump的使用詳解
- mysqldump加-w參數(shù)備份數(shù)據(jù)時(shí)需要注意的事項(xiàng)
- 使用mysqldump導(dǎo)入數(shù)據(jù)和mysqldump增量備份(mysqldump使用方法)
- mysqldump進(jìn)行數(shù)據(jù)備份詳解
相關(guān)文章
mysql 5.6.26 winx64安裝配置圖文教程(一)
這篇文章主要為大家詳細(xì)介紹了mysql 5.6.26 winx64安裝配置圖文教程,感興趣的小伙伴們可以參考一下2016-08-08
MySQL 中查詢 VARCHAR 類型 JSON 數(shù)據(jù)的問題記錄
在數(shù)據(jù)庫設(shè)計(jì)中,有時(shí)我們會(huì)將 JSON 數(shù)據(jù)存儲(chǔ)在 VARCHAR 或 TEXT 類型字段中,本文將詳細(xì)介紹如何在 MySQL 中有效查詢存儲(chǔ)為 VARCHAR 類型的 JSON 數(shù)據(jù),感興趣的朋友一起看看吧2025-04-04
MySql數(shù)據(jù)庫中Select用法小結(jié)
在程序開發(fā)中數(shù)據(jù)庫是必要知識(shí)點(diǎn),今天小編給大家介紹mysql數(shù)據(jù)庫中的select用法,包括條件篩選、指定篩選和分組顯示查詢語句的寫法,非常不錯(cuò),對(duì)mysql select用法相關(guān)知識(shí)感興趣的朋友一起看看吧2016-10-10
MySQL/MariaDB 如何實(shí)現(xiàn)數(shù)據(jù)透視表的示例代碼
這篇文章主要介紹了MySQL/MariaDB 如何實(shí)現(xiàn)數(shù)據(jù)透視表的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串
在許多數(shù)據(jù)庫中,你可以使用內(nèi)置的函數(shù)或操作符來進(jìn)行字符串和日期之間的相互轉(zhuǎn)換,這篇文章主要給大家介紹了關(guān)于MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串的相關(guān)資料,需要的朋友可以參考下2024-07-07
Mysql 取字段值逗號(hào)第一個(gè)數(shù)據(jù)的查詢語句
Mysql 取字段值逗號(hào)第一個(gè)數(shù)據(jù),在某些情況下還是比較實(shí)用的,主要使用到了left函數(shù)及其他等等,感興趣的朋友可以參考下2013-10-10

