设计场景
1)增量备份在周一到周六凌晨3点,复制mysql-bin.00000*到指定目录; 2)全量备份则使用mysqldump将整个数据库导出,每周日凌晨3点执行,并会删除上周留下的mysq-bin.00000*,然后对mysql的备份操作会保留在bak.log文件中。
Mysqldump、mysqlbinlog、crontab
主机:centos7;数据库:mysql5.7
开启binlog日志功能 (1)新建目录,执行:
#mkdir /home/mysql#cd /home/mysql#mkdir mysql-bin. #增量日志文件目录
(2)修改所属的用户/组:(不修改,mysql无法重启)
#chown -R mysql.mysql mysql-bin
(3)修改mysql配置文件,执行:
#vim /etc/my.cnf
其中,server-id表示单个结点的id,这里由于只有一个结点,所以可以把id随机指定为一个数,这里将id设置成1。若集群中有多个结点,则id不能相同(对于5.7以下版本不需要指定server-id); log_bin指定binlog日志文件的存储路径,日志文件以mysql-bin开头。
(4)重启mysql,执行:
#systemctl restart mysqld.service
(5)查看日志文件:
#cd /home/mysql/mysql-bin
(6)进入数据库,查看启动效果:
#show variables like '%log_bin%';
编写全量备份脚本(Mysql-FullyBak.sh)
进入/home/mysql目录 新建目录:mkdir backup 进入backup目录,新建daily目录:mkdir backup 切换到/home/mysql目录,执行:
#vim Mysql-FullyBak.sh
切换到/home/mysql目录,执行:
#vim Mysql-DailyBak.sh
(1)安装crontab(centos7默认已经安装):
#yum install crontabs
服务操作说明:
#/bin/systemctl start crond.service //启动服务#/bin/systemctl stop crond.service //关闭服务#/bin/systemctl restart crond.service //重启服务#/bin/systemctl reload crond.service //重新载入
配置:
#/bin/systemctl status crond.service //服务状态
加入开机自动启动:
#chkconfig –level 35 crond on
(2)在命令行输入:
#crontab -e
添加相应的任务,wq存盘退出
#每个星期日凌晨3:00执行完全备份脚本0 3 * * 0 /bin/bash -x /home/mysql/Mysql-FullyBak.sh >/dev/null 2>&1#周一到周六凌晨3:00做增量备份0 3 * * 1-6 /bin/bash -x /home/mysql/Mysql-DailyBak.sh >/dev/null 2>&1
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。