著名运维专家,王老师说过:一般完全备份是一周一次,增量备份是一天一次!
我一直有一个不成熟的想法,在生产中、写一个脚本,让他定时的备份!当然,目前以及未来很长一段时间将处在菜鸟阶段的我来说,这个想法,还很漫长!
实验前准备:
准备:两台主机,我这用的都是centos8,一台IP: 10.0.0.8 另外一台ip:10.0.0.18
两台都需要安装xtrabackup 软件(安装方法,详阅我上篇文章: https://blog.csdn.net/Lcongming/article/details/117064804)
建立backup文件夹 mkdir /backup/
安装msyql : yum -y install mysql-server (注意:8主机上的mysql要启用,而18主机上的mysql要关闭,并且要确保18主机里的 /var/lib/mysql下没有数据, 最好是没有/backup/这个文件夹,当然生产中的话肯定是有,这里实验环境,为了方便理解,不建议添加)
最后需要准备一个数据;我这里是直接将数据hellodb 上传到系统,,各位如果有需要的,可以私聊我一下;
上传后 将这个数据 重定向到mysql里 执行 mysql < hellodb_innodb.sql
=================================================================================================
第一步: 执行完全备份:xtrabackup -uroot --backup --target-dir=/backup/base
看到最后结果如图所示才是操作完成:
第二步:第一次修改数据 进入mysql
需要说明的是,修改数据可以直接
执行mysql hellodb 进入修改
或者直接运行mysql 进入后 执行use hellodb
表格原来信息:
执行添加: (需要注意的是,添加的命令是insert 删除是drop 查询select)
insert teachers values(null,‘wangcai’,33,‘M’);
insert teachers values(null,‘xiaoqiang’,33,‘M’);
添加后数据如下:
第三步:第一次执行增量备份 添加了数据就要操作,还等什么,等不了啦。。
xtrabackup -uroot --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
(建议:命令都手动输入,为什么,因为复制黏贴容易出错,著名运维专家王老师如是说)
备份后查看ll /backup/ 已经有两个文件夹了
第一个base是完全备份,第二个inc1是增量备份;
第四步:第二次修改数据
insert teachers values(null,‘shan xiongxin’,22,‘M’);
insert teachers values(null,‘jiang xin’,33,‘F’);
(生产中,每一天数据的更改不止这么一点,这里是做实验,所以,大家不要产生误解)
第五步:第二次执行增量备份** 添加了数据就要操作,还等什么,等不了啦。。
xtrabackup -uroot --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1
在8的主机上完成操作,现在我们要在18的主机上操作咯;
要再次确保18主机上 没有backup的文件夹 并且确保ll /var/lib/mysql/是空的
第一步:在8主机上执行scp -r /backup/ 10.0.0.18:/ 将数据拷贝到18
在18主机上查看:在备份过程生成三个备份目录
第二步:在18的主机上 还原过程;
步骤如下:
1)预处理,此选项–apply-log-only 阻止回滚未完成的事务
xtrabackup --prepare --apply-log-only --target-dir=/backup/base
2)合并第1次增量备份到完全备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1
3)合并第2次增量备份到完全备份:最后一次还原不需要加选项–apply-log-only
xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2
4)复制到数据库目录,注意数据库目录必须为空,MySQL服务不能启动
xtrabackup --copy-back --target-dir=/backup/base
5)还原属性:
chown -R mysql:mysql /var/lib/mysql
查看
6)启动服务:
systemctl enable --now mysqld
执行mysql 后进入 查看
谢谢观赏