愿你出走半生,归来仍是少年

Kratos
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. MySQL
  3. 正文

使用mysqldump自动定时备份MySQL数据库

2019年2月17日 3025点热度 0人点赞 0条评论

■■使用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
标签: mysqldump
最后更新:2019年2月17日

liking

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 4 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 7 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 3 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2015 年 10 月
  • 2014 年 10 月
  • 2014 年 8 月
  • 2014 年 3 月
  • 2013 年 12 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 4 月
  • 2012 年 11 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 2 月
  • 2011 年 10 月
  • 2011 年 8 月
  • 2011 年 3 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 8 月
  • 2010 年 7 月
  • 2010 年 5 月
  • 2010 年 4 月
  • 2010 年 1 月
  • 2009 年 11 月
  • 2009 年 8 月
  • 2009 年 5 月
  • 2009 年 3 月
  • 2009 年 2 月
  • 2008 年 11 月
  • 2008 年 10 月
  • 2008 年 8 月
  • 2008 年 4 月
  • 2007 年 4 月

分类

  • BigData
  • kubernetes
  • linux
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • 备份恢复
  • 安装配置
  • 性能优化
  • 技术杂谈
  • 未分类
  • 梦回红楼
  • 测试
  • 生活点滴
  • 网站建设
  • 自制工具
  • 轻松一刻
  • 运维知识
  • 问题处理

COPYRIGHT © 2026 愿你出走半生,归来仍是少年. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang