• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Centos7中MySQL数据库使用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自动备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)
    • MySQL数据迁移使用MySQLdump命令
    • mysql备份脚本 mysqldump使用方法详解
    • 详解 linux mysqldump 导出数据库、数据、表结构
    • 详谈mysqldump数据导出的问题
    • 浅谈mysqldump使用方法(MySQL数据库的备份与恢复)
    • 8种手动和自动备份MySQL数据库的方法
    • linux实现mysql数据库每天自动备份定时备份
    • 详解Mysql自动备份与恢复的几种方法(图文教程)
    • CentOS系统下如何设置mysql每天自动备份
    上一篇:MySQL8.0.26的安装与简化教程(全网最全)
    下一篇:MySQL里面的子查询的基本使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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