■■使用mysqldump自动定时备份MySQL数据库
■安装MySQL客户端
如果已经安装高版本的MySQL客户端,在mysqldump导出数据时可能存在版本兼容性问题。
因此建议卸载高版本客户端,安装低版本、常用的5.7版,以下yum方式安装步骤。
1、直接从MySQL官网安装MySQL社区版仓库
yum install https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
2、关闭MySQL80版本仓库,打开MySQL57版本仓库
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
3、安装
yum install mysql-community-client -y
■部署备份脚本mysqldump.sh
vim /data/mysqldump.sh
chmod +x /data/mysqldump.sh
■编写配置文件
配置文件命名格式:mysqldump.hostname
vim /data/mysqldump.172.19.104.35
■配置定时任务
在主机oabak【172.19.104.13】,自动备份172.19.104.35
05 22 * * * /data/mysqldump.sh /data/mysqldump.172.19.104.35 >/dev/null 2>&1 &
05 02 * * * /data/mysqldump.sh /data/mysqldump.172.19.104.35.display >/dev/null 2>&1 &
在主机internetbak【172.20.177.10】,自动备份172.20.177.16【jeecmsv93,21分钟】
05 22 * * * /data/mysqldump.sh /data/mysqldump.172.20.177.16 >/dev/null 2>&1 &
05 02 * * * /data/mysqldump.sh /data/mysqldump.172.20.177.16.jeecmsv93 >/dev/null 2>&1 &
■备份数据及日志位置
ls -l /data/bak/172.19.104.35
-rw-r--r-- 1 root root 104 Feb 17 22:20 mysqldump.172.19.104.35.yunoa.201902172220.log
-rw-r--r-- 1 root root 16405328 Feb 17 22:20 mysqldump.172.19.104.35.yunoa.201902172220.sql
其中,sql文件文件为数据文件,log文件为日志文件。
■■备份脚本 vim /data/mysqldump.sh #!/bin/sh ## Usage: mysqldump.sh conf_file ## crontab example: ## 5 0 * * * /data/mysqldump.sh /data/mysqldump.172.19.104.35 >/dev/null 2>&1 & #read configure file [mysqldump.hostname] HOME_DIR=`grep "HOME_DIR" $1|awk -F= '{print $2}'` BAK_DIR=`grep "BAK_DIR" $1|awk -F= '{print $2}'` HOST=`grep "HOST" $1|awk -F= '{print $2}'` PORT=`grep "PORT" $1|awk -F= '{print $2}'` USERNAME=`grep "USERNAME" $1|awk -F= '{print $2}'` PASSWORD=`grep "PASSWORD" $1|awk -F= '{print $2}'` DBNAMES=`grep "DBNAMES" $1|awk -F= '{print $2}'` #configure data & log path BAK_DIR=$BAK_DIR/$HOST if test ! -d $BAK_DIR ;then mkdir -p $BAK_DIR fi for DBNAME in $DBNAMES; do TIMESTAMP=`date +"%Y%m%d%H%M"` FILE_PREFIX=mysqldump.${HOST}.${DBNAME}.${TIMESTAMP} BAK_FILE=${BAK_DIR}/${FILE_PREFIX}.sql LOG_FILE=${BAK_DIR}/${FILE_PREFIX}.log echo `date "+%Y-%m-%d %H:%M:%S"`" Backup start ..." >>$LOG_FILE 2>&1 mysqldump -h${HOST} -P${PORT} -u${USERNAME} -p${PASSWORD} --default-character-set=utf8 ${DBNAME} > ${BAK_FILE} 2>&1 RC=$? if [ $RC -ne "0" ]; then echo "Error found during backup." >>$LOG_FILE 2>&1 else echo "No Error found during backup." >>$LOG_FILE 2>&1 fi echo `date "+%Y-%m-%d %H:%M:%S"`" Backup complete." >>$LOG_FILE 2>&1 find ${BAK_DIR} -name mysqldump*.sql -mtime +5 -exec rm {} \; >>$LOG_FILE 2>&1 done ■■配置文件 filename: mysqldump.hostname vim /data/mysqldump.172.19.104.35 #备份脚本所在路径 HOME_DIR=/data #备份文件存放位置 BAK_DIR=/data/bak #数据库连接信息 HOST=172.19.104.35 PORT=3307 USERNAME=test PASSWORD=passwdwdwd #备份的数据库名字,多个库以空格分隔 DBNAMES=yunoa fileservice
文章评论