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 sql_mode的使用详解
May 08 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
MySQL 开窗函数
Feb 15 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
Mysql 一主多从的部署
May 20 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用正则表达式匹配URL的简单方法
2013/11/12 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
python爬虫添加请求头代码实例
2019/12/28 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
用python对excel查重
2020/12/07 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
办加油卡单位介绍信
2014/01/09 职场文书
水果超市创业计划书
2014/01/27 职场文书
运动会通讯稿500字
2014/02/20 职场文书
老公爱的承诺书
2014/03/31 职场文书
美术指导助理求职信
2014/04/20 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
天那边观后感
2015/06/09 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
手残删除python之后的补救方法
2021/06/26 Python