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性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
Jun 26 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
SQL实现LeetCode(175.联合两表)
Aug 04 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
防止web项目中的SQL注入
Dec 06 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
MySQL 数据表操作
May 04 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把session写入数据库示例
2014/02/26 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php验证手机号码
2015/11/11 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
python中的装饰器详解
2015/04/13 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
Python解析json代码实例解析
2019/11/25 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
网络技术支持面试题
2013/04/22 面试题
医生自荐信
2013/10/11 职场文书
艺术应用与设计个人的自我评价
2013/11/23 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
伦敦奥运会口号
2014/06/13 职场文书
医院搬迁方案
2014/06/14 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
员工加薪申请报告
2015/05/15 职场文书
葬礼主持词
2015/07/02 职场文书
2015元旦感言
2015/12/09 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang