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 06 MySQL
详解MySQL中的主键与事务
May 27 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
浅谈MySQL表空间回收的正确姿势
Oct 05 MySQL
MySQL基于索引的压力测试的实现
Nov 07 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
Feb 24 MySQL
MySQL数据库完全卸载的方法
Mar 03 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
Mar 17 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
MySQL Server 层四个日志
Mar 31 MySQL
详解Mysq MVCC多版本的并发控制
Apr 29 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
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
原生JavaScript实现进度条
2021/02/19 Javascript
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python单元测试实例详解
2018/05/25 Python
儿童python练习实例
2018/05/27 Python
numpy基础教程之np.linalg
2019/02/12 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
PyTorch中的C++扩展实现
2020/04/02 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
浅析Python requests 模块
2020/10/09 Python
让生命充满爱演讲稿
2014/05/10 职场文书
2015年体育部工作总结
2015/04/02 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
民事答辩状格式范文
2015/05/21 职场文书
海洋天堂观后感
2015/06/05 职场文书
新闻通讯稿模板
2015/07/22 职场文书