数据库自动备份脚本配置流程
Posted farmer的空间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库自动备份脚本配置流程相关的知识,希望对你有一定的参考价值。
说明
本配置流程仅适用于mysql直接安装在系统内
定时启动采用采用crontab进行定时运行
本配置流程基于centos7,mysql5.7
配置过程
新建脚本(1和2任选一即可)
在合适的位置
vim /root/mysql-backup.sh
并粘贴一下代码
#数据库名称
DB_NAME="name"
DAY=`date +%Y%m%d`
#备份目录
BAKDIR="/data/backup/database"
#日志文件
LOGFILE="/data/backup/database/data_backup.log"
[ ! -d $BAKDIR ] && mkdir -p $BAKDIR
[ ! -d $LOGFILE ] && touch $LOGFILE
echo -e "\n" >> $LOGFILE
echo "------------------------------------" >> $LOGFILE
echo "BACKUP DATE:$DATE">> $LOGFILE
echo "------------------------------------" >> $LOGFILE
#使用mysqldump进行全量备份
mysqldump –defaults-extra-file=/etc/my.cnf --default-character-set=utf8 $DB_NAME> $BAKDIR/$DAY.sql
#增加日志记录
if [[ $? == 0 ]]; then
echo "$DAY BACKUP SUCCESSFUL!" >> $LOGFILE
else
echo “$DAY Backup Fail!” >> $LOGFILE
fi
保存完成后请务必记住将脚本提权
chmod 777 /root/mysql-backup.sh
上传脚本
使用lszrz工具进行上传
安装lszrz
yum install -y lrzsz
输入rz后上传本地的mysql-backup.sh
上传成功后查看一下根目录是否上传成功
配置my.cnf
配置my.cnf的原因
从mysql5.7开始,为了确保数据库的安全性采用的保护机制,如果在命令行中写有密码则会报错
Warning: Using a password on the command line interface can be insecure.
配置my.cnf流程
vim /etc/my.cnf
找到[client](如无该字段可以在最后一行添加)增加以下内容
host=localhost
user=root #数据库用户名
password='password' #数据库密码
正确效果图
配置crontab进行定时运行
参考内容:https://blog.csdn.net/huoyuanshen/article/details/51488350
crontab文件的基本格式如下所示
* * * * * command
每个字段后面有一个空格
分 时 天 月 周 命令
每列表示意义
a. 第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。
b. 第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。
c. 第三个*表示的是天1~31,默认*表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。
d. 第四个*表示的是月1~12,默认*表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。
e. 第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。
crontab文件的一些例子
a. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天21:30重启apache
b. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart //表示每月1,10,22号4:45重启apache
c. 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天18 : 00至23 : 00之间每隔30分钟重启apache
d. * */1 * * * /usr/local/etc/rc.d/lighttpd restart //表示每一小时重启apache
e. */5 * * * * /usr/local/etc/rc.d/lighttpd restart //表示每5分钟重启apache
配置crontab
crontab -e
// 添加以下内容
0 3 */3 * * /root/mysql-backup.sh //每三天凌晨3点自动运行备份脚本
以上是关于数据库自动备份脚本配置流程的主要内容,如果未能解决你的问题,请参考以下文章