簡介-邱月濤
公司新項目上線,今天建立全網(wǎng)備份,現(xiàn)在這記錄的是mysql部分
備份方式:全備+binlog
備份地點:本地+異地
備份時間:每日0點,切割binlog日志
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ù)庫密碼"
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ù)庫備份完整性MD5初始值 |mail -s 備份校驗 -a "$CKLOG" qiuyt@*****.com ##自己的郵箱
4,添加執(zhí)行權(quán)限
[root@jm1j-node1 scripts]# chmod +x mysqlbackup.sh `
5,在命令行手動測試
查看備份結(jié)果,
#如果沒有發(fā)送郵件,請檢查服務(wù)是否安裝,啟動,25端口是否啟用等等,然后手動發(fā)送郵件測試
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,定時備份 (正常可以加入crontab定時任務(wù),每天0點執(zhí)行)
上面沒有找到,下面命令安裝
yum install -y vixie-cron
添加定時任務(wù)
crontab -e
#mysqlbackup by qyt at 2017-12-13
00 00 * * * /bin/sh /server/scripts/mysqlbackup.sh >/dev/null 2>&1
##異地備份,有多重方式,為了減少服務(wù)器壓力,我使用rsync 客戶端拉取方式
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。