利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志

下面一起來了解下利用腳本應(yīng)該如何備份MySQL數(shù)據(jù)庫和binlog日志,相信大家看完肯定會受益匪淺,文字在精不在多,希望利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志這篇短內(nèi)容是你想要的。

創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)依托強(qiáng)大的技術(shù)實力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!

閑話少說,直接上腳本

首先是為mysql做指定庫文件的全庫備份

vim mysqlbak.sh

#!/bin/bash

#定義數(shù)據(jù)庫目錄,要能找到mysqldump

mysqlDir=/usr

#定義用于備份數(shù)據(jù)庫的用戶名和密碼

user=root

userpwd=123456

dbname=db1

#定義備份目錄

databackupdir=/mysqlbak

#定義郵件正文文件

emailfile=$databackupdir/email.txt

#定義郵件地址

email=www@163.com

#定義備份日志文件

logfile=$databackupdir/mysqlbackup.log

#DATE=`date +%Y%m%d`

DATE=`date -I`

echo "" > $emailfile

echo $( date +"%Y-%m-%d %H:%M:%S" ) >> $emailfile

cd $databackupdir

#定義備份文件名

dumpfile=mysql_$DATE.sql

gzdumpfile=mysql_$DATE.sql.tar.gz

#使用mysqldump備份數(shù)據(jù)庫,--flush-logs 產(chǎn)生一個新日志

$mysqlDir/bin/mysqldump -u$user -p$userpwd --flush-logs -x $dbname > $dumpfile

#壓縮備份文件

if [ "$?" == 0 ];then

    #把備份出來的文件進(jìn)行壓縮,壓縮的結(jié)果保存在郵件內(nèi)容中

   tar zcvf $gzdumpfile $dumpfile >> $emailfile 2>&1

   echo "BackupFileName: $gzdumpfile" >> $emailfile

   echo "DataBase Backup Success!" >> $emailfile

    #刪除壓縮前的sql文件

   rm -rf $dumpfile

else

   echo "Database Backup Fail!" >> $emailfile

fi

#寫日志文件

echo "-------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

#發(fā)送郵件通知

cat $emailfile| mail -s "Mysql Backup" $email

以上腳本執(zhí)行后會在備份目錄中產(chǎn)生一個tar.gz的文件,此文件為全庫備份文件,備份成功后給指定的郵箱地址發(fā)送郵件,收件內(nèi)容為截圖內(nèi)容為備份成功!

利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志

接下來是binlog日志的備份腳本

vim binlogbak.sh

#!/bin/bash

#定義數(shù)據(jù)庫目錄和數(shù)據(jù)目錄

mysqldir=/usr/local/mysql

datadir=$mysqldir/binlog

#定義用于備份數(shù)據(jù)庫的用戶名和密碼

user=root

userpwd=123456

#定義備份目錄

databackupdir=/mysqlbak

logbackupdir=$databackupdir/logs

#定義郵件正文文件

emailfile=$databackupdir/email.txt

#定義郵件地址

email=www@163.com

#定義備份日志文件

logfile=$databackupdir/mysqlbackup.log

#DATE=`date +%Y%m%d`

echo "" > $emailfile 

echo $( date +"%Y-%m-%d %H:%M:%S" ) >> $emailfile

#刷新日志,使數(shù)據(jù)庫使用新的二進(jìn)制日志文件

/usr/bin/mysqladmin -u$user -p$userpwd flush-logs

cd $datadir

#得到二進(jìn)制日志列表

filelist=`cat mysql_binlog.index`

icounter=0

for file in $filelist

do

    #需要注意的是符號和兩個操作項之間的空格畢不可少,下面也是一樣

  icounter=`expr $icounter + 1`

done

nextnum=0

ifile=0

for file in $filelist

do

binlogname=$file

nextnum=`expr $nextnum + 1`

#跳過最后一個二進(jìn)制日志 (數(shù)據(jù)庫當(dāng)前使用的二進(jìn)制日志文件)

if [ $nextnum -eq $icounter ];then

   echo "Skip lastest!" > /dev/null

else

   dest=$logbackupdir/$binlogname

#跳過已經(jīng)備份的二進(jìn)制日志文件

if [ -e $dest ];then

   echo "Skip exist $binlogname!" > /dev/null

else

#備份日志文件到備份目錄

cp $binlogname $logbackupdir

if [ "$?" == 0 ];then

ifile=`expr $ifile + 1`

echo "$binlogname Backup Success!" >> $emailfile

    fi

     fi

fi

done

if [ $ifile -eq 0 ];then

   echo "No Binlog Backup!" >> $emailfile

else 

   echo "Backup $ifile File(s)." >> $emailfile

   echo "Backup MySQL Binlog OK!" >> $emailfile

fi

#寫日志文件

echo "-------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

#發(fā)送郵件通知

cat $emailfile| mail -s "Mysql Backup" $email

以上腳本執(zhí)行后會在備份目錄中產(chǎn)生多個沒備份過的binlog日志,文件每日是前一天的增量備份文件,備份成功后給指定的郵箱地址發(fā)送郵件,收件內(nèi)容為截圖內(nèi)容為備份成功!

利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志

編寫計劃任務(wù)自動執(zhí)行,每周1,3,24點全庫備份,每天夜里1點日志備份

crontab -e

0 00 * * 1,3 /mysqlbak.sh

0 1 * * * /binlogbak.sh

看完利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。

當(dāng)前名稱:利用腳本應(yīng)該如何備份Mysql數(shù)據(jù)庫和binlog日志
URL鏈接:http://bm7419.com/article40/iihdho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、移動網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計、外貿(mào)建站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司