最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略,通过调试运行一周后,目前已经处于平稳运行状态。现在将思路分享出来,同时感谢gredn大佬。
设计场景
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