佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Centos7中MySQL數據庫使用mysqldump進行每日自動備份的編寫

Centos7中MySQL數據庫使用mysqldump進行每日自動備份的編寫

熱門標簽:服務外包 Linux服務器 鐵路電話系統(tǒng) 百度競價排名 呼叫中心市場需求 AI電銷 地方門戶網站 網站排名優(yōu)化

一、需求說明:

數據庫的備份,對于生產環(huán)境來說尤為重要,數據庫的備份分為物理備份和邏輯備份。

物理備份:使用相關的復制命令直接將數據庫的數據目錄中的數據復制一份貨多分副本,常使用工具:XtraBackup。

邏輯備份:使用mysql自帶的mysqldump命令把需要備份的數據以sql語句的形式存儲起來。

下邊我們將使用mysqldump命令進行數據備份。使用自動任務進行每日備份。

二、執(zhí)行文件編寫:

1、創(chuàng)建文件夾,執(zhí)行的sh文件和數據庫的備份文件都存在這個文件夾下

mkdir /usr/local/mysqlDataBackup
cd /usr/local/mysqlDataBackup

2、創(chuàng)建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

解析:

?。?)刪除7天前的備份數據,節(jié)省空間:
    DATAdelete=‘date +%F -d "-7 day"‘    當前時間前7天的日期

              rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 刪除前7天的備份數據,節(jié)省空間,只保留最新的7天數據

 ?。?)定義變量:  
    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
 ?。?)執(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   備份文件保存的路徑以及名字

多數據庫備份:

#!/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) 執(zhí)行腳本:

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進行每日自動備份的文章就介紹到這了,更多相關MySQL使用mysqldump自動備份內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Windows下實現MySQL自動備份的批處理(復制目錄或mysqldump備份)
  • MySQL數據遷移使用MySQLdump命令
  • mysql備份腳本 mysqldump使用方法詳解
  • 詳解 linux mysqldump 導出數據庫、數據、表結構
  • 詳談mysqldump數據導出的問題
  • 淺談mysqldump使用方法(MySQL數據庫的備份與恢復)
  • 8種手動和自動備份MySQL數據庫的方法
  • linux實現mysql數據庫每天自動備份定時備份
  • 詳解Mysql自動備份與恢復的幾種方法(圖文教程)
  • CentOS系統(tǒng)下如何設置mysql每天自動備份

標簽:湖南 崇左 湘潭 蘭州 衡水 銅川 仙桃 黃山

巨人網絡通訊聲明:本文標題《Centos7中MySQL數據庫使用mysqldump進行每日自動備份的編寫》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    澜沧| 和平县| 贡嘎县| 红原县| 安岳县| 连平县| 蕉岭县| 伊金霍洛旗| 七台河市| 鹤岗市| 察雅县| 虹口区| 麻栗坡县| 上杭县| 宝兴县| 海兴县| 长葛市| 永济市| 神农架林区| 静海县| 内江市| 哈巴河县| 西丰县| 鹰潭市| 万州区| 册亨县| 和政县| 喀喇| 昭通市| 剑阁县| 滨海县| 上虞市| 博乐市| 新蔡县| 邯郸市| 余干县| 故城县| 合肥市| 西昌市| 易门县| 永靖县|