mysql自动备份多个数据库的实现
1.编写mysql自动备份shell脚本,比如在/opt/data/backup/sh路径下创建文件 mysql_backup.sh
#!/bin/bash #备份目录 BACKUP=/opt/data/backup/mysql DATETIME=$(date +%Y-%m-%d_%H-%M-%S) echo $DATETIME #数据库的地址 HOST=127.0.0.1 #数据库用户名 DB_USER=root #数据库密码 DB_PW=root #备份的数据库名 DATABASE1=db-test DATABASE2=test2 DATABASE3=test3 #创建备份目录 if [ ! -d "${BACKUP}/${DATETIME}" ] then mkdir -p "${BACKUP}/${DATETIME}" fi cd ${BACKUP}/${DATETIME} mkdir ${DATABASE} mkdir test2 mkdir test3 #备份数据库 /usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE1} > ${BACKUP}/${DATETIME}/${DATABASE1}/$DATETIME.sql /usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE2} > ${BACKUP}/${DATETIME}/${DATABASE2} /$DATETIME.sql /usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE3} > ${BACKUP}/${DATETIME}/${DATABASE3} /$DATETIME.sql #将文件压缩成 tar.gz cd ${BACKUP} tar -zcvf $DATETIME.tar.gz ${DATETIME} #删除7天前的的备份文件 find ${BACKUP} -atime +7 -name "*.tar.gz" -exec rm -rf {} \; echo "备份数据库db-test成功" echo "备份数据库test2 成功" echo "备份数据库test3 成功"
2.为文件添加执行权限:
chmod 775 /opt/data/backup/sh/mysql_backup.sh
3.检查shell脚本编写是否有误
这里可分成2步,第1步,执行mysql备份命令:
/usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE1} > ${BACKUP}/${DATETIME}/${DATABASE1}/$DATETIME.sql
注意将上面的变量替换为真实值,存放目录需真实存在。如果能备份成功,且将数据输出到备份的SQL文件,进入第2步验证,直接执行shell脚本
/opt/data/backup/sh/mysql_backup.sh
如果正常执行,且输出的SQL脚本真实有数据,则证明shell备份脚本通过,否则根据提示的错误信息进行修正。
4.添加到linux定时任务中,输入下面的命令添加一个定时任务:
crontab -e
输入:
50 23 * * 0 /opt/data/backup/sh/mysql_backup.sh
上面的命令表示,每周天晚上23点50分执行上面的mysql备份脚本,更多时间表述请自行查询,需注意的是定时任务如果用root账号添加的,普通账号将无法查看。
到此这篇关于mysql自动备份多个数据库的实现的文章就介绍到这了,更多相关mysql自动备份数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)
本文介绍MySQL数据库使用SQL语句来在现有的表中,添加一个新的字段,包括设置字段的是否为空、默认值等2016-04-04MySQL 搭建双主复制服务并通过 HAProxy 负载均衡的过程详解
在数据库管理中,数据的备份和同步是至关重要的环节,而双主复制(Dual Master Replication)作为一种高可用性和数据同步的解决方案,本文将介绍MySQL双主复制的配置过程并通过 HAProxy 负载均衡,感兴趣的朋友一起看看吧2024-03-03
最新评论