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学习笔记之事务隔离级别详解
May 12 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
MySQL数据库索引的最左匹配原则
Nov 20 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 MySQL
MySQL 开窗函数
Feb 15 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
解析MySQL索引的作用
Mar 03 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
浅谈如何保证Mysql主从一致
Mar 13 MySQL
MySQL查询日期时间
May 15 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP 无限级分类
2017/05/04 PHP
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
Python 内置函数complex详解
2016/10/23 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
python实现银行账户系统
2021/02/22 Python
环境科学专业大学生自荐信格式
2013/09/21 职场文书
学生党支部先进事迹
2014/02/04 职场文书
个人安全生产责任书
2014/07/28 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
党员年终个人总结
2015/02/14 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android