Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写


Posted in MySQL onAugust 02, 2021

一、需求说明:

数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。

物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具:XtraBackup。

逻辑备份:使用mysql自带的mysqldump命令把需要备份的数据以sql语句的形式存储起来。

下边我们将使用mysqldump命令进行数据备份。使用自动任务进行每日备份。

二、执行文件编写:

1、创建文件夹,执行的sh文件和数据库的备份文件都存在这个文件夹下

mkdir /usr/local/mysqlDataBackup
cd /usr/local/mysqlDataBackup

2、创建sh文件并编写shell脚本:

backup.sh

单数据库脚本:

#!/bin/bash
#This scripts is for auto backup databases
#create by weijb at 2021-07-28
#delete data from 7 day before

DATAdelete=‘date +%F -d "-7 day"
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=账号
MYSQL_PWD=密码
DATA=‘date +%F‘
DBname=test_db

${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz

解析:

 (1)删除7天前的备份数据,节省空间:
    DATAdelete=‘date +%F -d "-7 day"‘    当前时间前7天的日期

              rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 删除前7天的备份数据,节省空间,只保留最新的7天数据

  (2)定义变量:  
    MYSQL_CMD=/usr/bin/mysqldump    mysql自带的mysqldump命令所在的位置
    MYSQL_USER=账号                  mysql连接的账号
    MYSQL_PWD=密码            mysql连接的密码
    DATA=‘date +%F‘                  获取当前日期,%F 表示格式:%Y-%m-%d 例如:2021-07-28
    DBname=test_db                   需要备份的数据库名,当前的数据库名为:test_db
  (3)执行备份命令: 
    ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
    --compact 优化输出信息
    -B        包含建库的语句
    gzip      压缩备份,减少备份的文件大小
    usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz   备份文件保存的路径以及名字

多数据库备份:

#!/bin/bash
#This scripts is for auto backup databases
#create by weijb at 2021-07-28
#delete data from 7 day before
DATAdelete=‘date +%F -d "-7 day"‘
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=账号
MYSQL_PWD=密码
DATA=‘date +%F‘
DBname=‘ mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "show databases;" | sed '1,5d'‘

for DBname in ${DBname}
do 
  ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
done

解析:

  (1) 截取需要备份的数据库

 -e "show databases;" | sed '1,5d'‘ 显示所有的数据库,并截取mysql自带的information_schema、mysql、performance_schema、sys意外的所有数据库。

(2) 其他的和单库备份相同

3、验证脚本是否编写成功:

(1)脚本文件授权:

cd /usr/local/mysqlDataBackupchmod +x backup.sh

(2) 执行脚本:

sh backup.sh

/usr/local/mysqlDataBackup 下生成文件说明编写成功。

4、编写自动任务:

每天凌晨1点对数据库进行备份:

crontab -e

输入i进行编辑:

00 01 * * * /usr/local/mysqlDataBackup/backup.sh

使用esc退出文件编辑,输入 :wq 保存并退出。

查询任务是否设置成功:

crontab -l

重启crontab服务:

service crond restart

至此,mysql的自动任务脚本备份数据库到此完成。

到此这篇关于Centos7中MySQL数据库使用mysqldump进行每日自动备份的文章就介绍到这了,更多相关MySQL使用mysqldump自动备份内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
MySQL中utf8mb4排序规则示例
Aug 02 MySQL
MYSQL 表的全面总结
Nov 11 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
MySQL 语句执行顺序举例解析
Jun 05 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
一文解答什么是MySQL的回表
Aug 05 MySQL
为什么MySQL选择Repeatable Read作为默认隔离级别
使用ORM新增数据在Mysql中的操作步骤
Jul 26 #MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
You might like
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
js倒计时抢购实例
2015/12/20 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
js实现缓动动画
2020/11/25 Javascript
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
python2.7安装图文教程
2018/03/13 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
python中pyqtgraph知识点总结
2021/01/26 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
工作求职自荐信
2014/06/13 职场文书
民主生活会意见
2015/06/05 职场文书
教师读书活动心得体会
2016/01/14 职场文书
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
德生2P3收音机开箱评测
2022/04/30 无线电
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL