mysql數(shù)據(jù)庫(kù)定時(shí)分庫(kù)備份(本地+異地)

簡(jiǎn)介-邱月濤
公司新項(xiàng)目上線,今天建立全網(wǎng)備份,現(xiàn)在這記錄的是MySQL部分
備份方式:全備+binlog
備份地點(diǎn):本地+異地
備份時(shí)間:每日0點(diǎn),切割binlog日志

創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、寶應(yīng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為寶應(yīng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

1,環(huán)境介紹:

[root@jm1j-node1 scripts]# cat /etc/redhat-release 
CentOS release 6.8 (Final)
[root@jm1j-node1 scripts]# mysql -V
mysql  Ver 14.14 Distrib 5.6.35, for linux-glibc2.5 (x86_64) using  EditLine wrapper

2,規(guī)范腳本存放目錄

 mkdir -p /server/scripts

3,編寫腳本內(nèi)容如下

#!/bin/bash
#---------------------------------------------------------
# $Name:         mysqlbackup.sh
# $Version:      v1.0
# $Author:       qiuyuetao
# $organization: https://blog.51cto.com/qiuyt
# $Create Date:  2017-12-13
# $Description:  Mysql backup script
#---------------------------------------------------------

#source /etc/init.d/functions
DAY=`date +%Y-%m-%d\-%H-%M`
BACK_DIR="/data/backup/mysql/dump"
DBUSER="root"   #數(shù)據(jù)用戶
DBPASSWD="***數(shù)據(jù)庫(kù)密碼"  
BIN_PATH="/application/mysql/bin" #全局變量,可以使用which獲取
LOG="/var/log/mysqlback.log" #備份日志
CKLOG="/var/log/bkmd5-"$DAY".log" #md5加密日志,后期發(fā)送郵件

## Close all tables and refresh log ####
"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush logs"

#"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush tables with read lock"

echo "mysqldump start `date +%F\ %H\:%M\:%S`" >> "$LOG"

## Each backup database to the target location ####
for i in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema|performance_schema"`
  do
        if [ ! -d "$BACK_DIR"/"$i" ]; then
                mkdir -p  "$BACK_DIR"/"$i"
           fi
"$BIN_PATH"/mysqldump -u "$DBUSER" -p"$DBPASSWD" --default-character-set=utf8  --events --master-data=2 --lock-all-tables -f --log-error="$LOG" -B "$i"|gzip > "$BACK_DIR"/"$i"/"$DAY".sql.gz
md5sum "$BACK_DIR"/"$i"/"$(date +%F --date='0 days ago')"-*.sql.gz  >>$CKLOG
   done

echo "mysqldump stop `date +%F\ %H\:%M\:%S`" >> "$LOG"
echo "" >>"$LOG"

## Delete old 10day backup files 保留最近10天的數(shù)據(jù)####
for RM in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema|performance_schema"`
   do

rm -rf "$BACK_DIR"/"$RM"/$(date +%F --date='10 days ago')*.sql.gz
    done

echo 生產(chǎn)數(shù)據(jù)庫(kù)備份完整性MD5初始值 |mail -s 備份校驗(yàn) -a  "$CKLOG"  qiuyt@*****.com  ##自己的郵箱

4,添加執(zhí)行權(quán)限

[root@jm1j-node1 scripts]# chmod +x mysqlbackup.sh `

5,在命令行手動(dòng)測(cè)試

查看備份結(jié)果,
mysql數(shù)據(jù)庫(kù)定時(shí)分庫(kù)備份(本地+異地)

#如果沒(méi)有發(fā)送郵件,請(qǐng)檢查服務(wù)是否安裝,啟動(dòng),25端口是否啟用等等,然后手動(dòng)發(fā)送郵件測(cè)試
6,配置郵箱
1)查看是否安裝mailx

[root@jm1j-node1 scripts]# rpm -qa|grep mailx
mailx-12.4-8.el6_6.x86_64

2)修改mail配置

[root@yilonghc-m01 ~]# tail /etc/mail.rc   ##t添加如下內(nèi)容
set bsdcompat
set from=outlokk@163.com
set smtp=smtp.163.com
set smtp-auth-user=*****@163.com  #自己的郵箱
set smtp-auth-password=***** ##授權(quán)碼
set smtp-auth=login

6,定時(shí)備份(正常可以加入crontab定時(shí)任務(wù),每天0點(diǎn)執(zhí)行)

mysql數(shù)據(jù)庫(kù)定時(shí)分庫(kù)備份(本地+異地)
上面沒(méi)有找到,下面命令安裝

yum install -y vixie-cron

添加定時(shí)任務(wù)

crontab -e
#mysqlbackup by qyt at 2017-12-13
00 00 * * * /bin/sh  /server/scripts/mysqlbackup.sh >/dev/null 2>&1

##異地備份,有多重方式,為了減少服務(wù)器壓力,我使用rsync 客戶端拉取方式

標(biāo)題名稱:mysql數(shù)據(jù)庫(kù)定時(shí)分庫(kù)備份(本地+異地)
文章出自:http://muchs.cn/article24/jcjoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站收錄動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)服務(wù)器托管、軟件開(kāi)發(fā)

廣告

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

營(yíng)銷型網(wǎng)站建設(shè)