在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、需求说明:数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。 物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具:XtraBackup。 逻辑备份:使用mysql自带的mysqldump命令把需要备份的数据以sql语句的形式存储起来。 下边我们将使用mysqldump命令进行数据备份。使用自动任务进行每日备份。 二、执行文件编写:1、创建文件夹,执行的sh文件和数据库的备份文件都存在这个文件夹下 mkdir /usr/local/mysqlDataBackup cd /usr/local/mysqlDataBackup 2、创建sh文件并编写shell脚本:
单数据库脚本: #!/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天前的备份数据,节省空间: rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 删除前7天的备份数据,节省空间,只保留最新的7天数据 (2)定义变量: 多数据库备份: #!/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) 截取需要备份的数据库
(2) 其他的和单库备份相同 3、验证脚本是否编写成功: (1)脚本文件授权:
(2) 执行脚本:
/usr/local/mysqlDataBackup 下生成文件说明编写成功。 4、编写自动任务: 每天凌晨1点对数据库进行备份:
输入i进行编辑:
使用esc退出文件编辑,输入 :wq 保存并退出。 查询任务是否设置成功:
重启crontab服务:
至此,mysql的自动任务脚本备份数据库到此完成。 到此这篇关于Centos7中MySQL数据库使用mysqldump进行每日自动备份的文章就介绍到这了,更多相关MySQL使用mysqldump自动备份内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论