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

一、需求说明:数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具:xtrabackup


一、需求说明:

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

物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具: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)脚数据库技术:Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写件授权:

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自动备份内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多数据库技术:Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/807296.html

(0)
上一篇 2021年9月10日
下一篇 2021年9月10日

精彩推荐