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事务的隔离级别与MVCC
Apr 22 MySQL
MySQL 如何分析查询性能
May 12 MySQL
详解MySQL连接挂死的原因
May 18 MySQL
MySQL 全文索引使用指南
May 25 MySQL
安装配置mysql及Navicat prenium的详细流程
Jun 10 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
mysql 排序失效
May 20 MySQL
数据设计之权限的实现
Aug 05 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编程注意事项的小结
2013/04/27 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
jquery each()源代码
2011/02/14 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
python实现彩色图转换成灰度图
2019/01/15 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
通信研究生自荐信
2014/02/01 职场文书
四风存在的原因分析
2014/02/11 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
2014年护士长工作总结
2014/11/11 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
学校运动会通讯稿
2015/07/18 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
使用Python解决图表与画布的间距问题
2022/04/11 Python