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 相关文章推荐
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL 覆盖索引的优点
May 19 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
Mysql案例刨析事务隔离级别
Sep 25 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
MySQL表字段数量限制及行大小限制详情
Jul 23 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
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php cli配置文件问题分析
2015/10/15 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
js控制框架刷新
2008/08/01 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
React Native 截屏组件的示例代码
2017/12/06 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
Python中__init__.py文件的作用详解
2016/09/18 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
宿舍标语大全
2014/06/19 职场文书
责任书范本
2014/08/25 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
2014年质量工作总结
2014/11/22 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
护理自荐信
2019/05/14 职场文书