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新手入门的基本操作汇总
May 13 MySQL
详解MySQL连接挂死的原因
May 18 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
MySQL基于索引的压力测试的实现
Nov 07 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
delete in子查询不走索引问题分析
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程序中的常见漏洞进行攻击
2006/10/09 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
python检测IP地址变化并触发事件
2018/12/26 Python
Python 实现try重新执行
2019/12/21 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
最新的咖啡店创业计划书
2013/12/30 职场文书
党支部对照检查材料
2014/08/25 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫
以下牛机,你有几个
2022/04/05 无线电