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 相关文章推荐
MySQL锁机制
Apr 05 MySQL
MySQL COUNT函数的使用与优化
May 10 MySQL
MySQL 亿级数据导入导出及迁移笔记
Jun 18 MySQL
MySQL query_cache_type 参数与使用详解
Jul 01 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
MySQL定时备份数据库(全库备份)的实现
Sep 25 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
MySQL中一条SQL查询语句是如何执行的
Apr 08 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
详解anaconda安装步骤
2020/11/23 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
环保专项行动方案
2014/05/12 职场文书
承诺书样本
2014/08/30 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python