Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写

 更新时间:2021年07月28日 17:07:24   作者:yanlaile  
数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。我们将使用mysqldump命令进行数据备份。使用自动任务进行每日备份,下边我们将使用mysqldump命令进行数据备份,感兴趣的朋友一起看看吧

一、需求说明:

数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。

物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具: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索引命中与失效代码实现

    这篇文章主要介绍了MySQL索引命中与失效代码实现,文章内容详细,简单易懂,需要的朋友可以参考下
    2023-01-01
  • MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

    MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

    这篇文章主要介绍了MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 批量替换 MySQL 指定字段中的字符串

    批量替换 MySQL 指定字段中的字符串

    批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多;想了解具体方法,继续阅读本文吧 :)
    2009-09-09
  • MySQL MGR 有哪些优点

    MySQL MGR 有哪些优点

    这篇文章主要介绍了MySQL MGR 有哪些优点,文中讲解非常细致,帮助大家更好的理解和学习MySQL mgr,感兴趣的朋友可以了解下
    2020-08-08
  • mysql主从库不同步问题解决方法

    mysql主从库不同步问题解决方法

    本来配置可以使用的mysql主从库同步的数据库,突然出现无法同步的情况。那么大家可以参考下面的方法解决下。
    2011-08-08
  • SQL常用的四个排序函数梳理

    SQL常用的四个排序函数梳理

    这篇文章主要介绍了SQL常用的四个排序函数梳理,四个排序函数分别是SQL Server排序中经常用到的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE()、下文简单分享,需要的小伙伴可以参考一下
    2022-07-07
  • Mysql关于进程中的死锁和解除锁问题

    Mysql关于进程中的死锁和解除锁问题

    Mysql 经常会遇到语句或者存储过程长时间没有反应,大概率就是挂掉了,或者死锁了,这篇文章主要介绍了Mysql关于进程中的死锁和解除锁问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • mysql中left join设置条件在on与where时的用法区别分析

    mysql中left join设置条件在on与where时的用法区别分析

    这篇文章主要介绍了mysql中left join设置条件在on与where时的用法区别,结合实例形式分析了mysql中left join设置条件在on与where时的相关用法区别与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Mysql大型SQL文件快速恢复方案分享

    Mysql大型SQL文件快速恢复方案分享

    这篇文章主要给大家介绍了关于Mysql大型SQL文件快速恢复方案的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • VMware中Linux共享mysql数据库的方法

    VMware中Linux共享mysql数据库的方法

    VMware中Linux共享mysql数据库的方法,需要的朋友可以参考下。
    2010-11-11

最新评论