Linux :mysql数据库自动备份
- 前言
- 使用shell脚本进行数据库的定时备份
- 确定备份数据库
- 备份shell脚本
- 定时shell脚本
前言
当项目发布到服务器上后,接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃,而导致的数据丢失问题。
但身为一个专业开发人士,对运维这一块也只是简单的了解,会一些常规的操作,比如Liunx上的安装、修改端口,项目部署等等操作。很多东西都需要现学现卖,一点一点的去学习,去搞。所以接下来的会把mysql数据库如何做好自动备份的步骤,详细的介绍给大家,让大家少走弯路。
使用shell脚本进行数据库的定时备份
确定备份数据库
首先,我们要确定好备份的数据库
进入数据库 输入指令
mysql -uroot -p
查看数据库有哪些数据库:
输入指令:
show databases;
这里,我们选择 vrserver 数据库进行备份。
查看数据库中的数据
首先使用数据库 :
use vrserver;
然后查询这个数据库下的所有表:
show tables;
备份shell脚本
#!/bin/bash
# 1.备份目录
BACKUP=/data/backup/db
# 当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo $DATETIME
# 数据库的地址
HOST=localhost
# 数据库的用户名
DB_USER=root
#数据库的密码
DB_PW=root
#备份的数据库名
DATABASE=dysmysql#创建备份目录 如果不存在就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"# 备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz# 将文件处理成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
# 删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}# 删除十天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE} 成功"
执行该脚本 :
sh mysql_db_backup.sh
定时shell脚本
输入指令:
输入cron 脚本:
每天凌晨执行一次:
0 0 0 * * ? /root/mysql_backup/mysql_db_backup.sh
大家可以先用这个测试,每分钟跑1次:
*/1 * * * * /root/mysql_backup/mysql_db_backup.sh
当定时器执行时,它会给你发个邮件:
根据它的提示进入进入到该文件内,即可看到定时器执行情况:
至此大功告成!!!