mysql备份工具xtrabackup的使用
适用范围
操作系统:CentOS 7.6
数据库:Mysql 8.0.30
问题概述
mysql的第三方备份工具xtrabackup的使用,可实现mysql数据库基于物理文件的全量及增量备份
1、简介
xtrabackup 是一个对mysql做数据备份的工具,支持在线热备份(备份时不影响数据读写)
实质是基于数据文件拷贝方式备份
特点:
1)备份过程快速,可靠
2)备份过程不会打断正在执行的事务
3)能够基于压缩等功能节约磁盘空间和流量
4)自动实现备份校验
5)还原速度快
2、下载安装
https://repo.percona.com/yum/release/7/RPMS/x86_64/percona-xtrabackup-80-8.0.30-23.1.el7.x86_64.rpm
使用yum进行安装
yum -y install percona-xtrabackup-80-8.0.30-23.1.el7.x86_64.rpm
如提示需要:libev.so.4()(64bit),还需安装libev工具
ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6.x86_64.rpm
rpm -ivh libev-4.04-2.el6.x86_64.rpm
3、全量备份及恢复
1)赋权
grant BACKUP_ADMIN on *.* to 'root'@'%';
flush privileges;
2)进行备份
mkdir -p /back/sql
chown mysql:mysql /back/sql
xtrabackup --backup --target-dir=/back/sql -uroot -pRoot#123 -P3306 -H127.0.0.1
3)模拟数据库损坏
mv /mysql/data /mysql/data-bak
mkdir /mysql/data
chown mysql:mysql /mysql/data
4)进行恢复
恢复过程首先要执行prepare,将所有的数据文件都准备到同一个时间点
因为再备份过程中所有的数据文件都是在不同的时间点
直接启动可能会导致冲突
xtrabackup --prepare --target-dir=/back/sql
这里源端为备份路径,目标端为数据目录
xtrabackup --copy-back --target-dir=/back/sql --datadir=/mysql/data
5)重启数据库
chown -R mysql:mysql /mysql/data
service mysql.service restart
4、增量备份及恢复
1)全量备份
进行增量备份前提需要有全量备份
rm -rf /back/sql/*
xtrabackup --backup --target-dir=/back/sql -uroot -pRoot#123 -P3306 -H127.0.0.1
2)插入增量数据
insert into t.test values(2);
insert into t.test values(3);
flush logs;
3)进行增量备份
注:这里的basedir对应上一次全量备份路径
mkdir /back/inc1
chown mysql:mysql /back/inc1
xtrabackup --backup --target-dir=/back/inc1 --incremental-basedir=/back/sql -uroot -pRoot#123 -P3306 -H127.0.0.1
du -sh 会发现增量备份文件远小于全量备份文件
4)再次插入增量数据
insert into t.test values(4);
insert into t.test values(5);
flush logs;
5)再次进行增量备份
此时basedir对应上一次增量备份路径
mkdir /back/inc2
chown mysql:mysql /back/inc2
xtrabackup --backup --target-dir=/back/inc2 --incremental-basedir=/back/inc1 -uroot -pRoot#123 -P3306 -H127.0.0.1
6)模拟数据丢失
rm -rf /mysql/data
7)数据恢复前准备
xtrabackup --prepare --apply-log-only --target-dir=/back/sql --datadir=/mysql/data
xtrabackup --prepare --apply-log-only --target-dir=/back/sql --incremental-dir=/back/inc1 --datadir=/mysql/data
xtrabackup --prepare --target-dir=/back/sql --incremental-dir=/back/inc2 --datadir=/mysql/data
8)数据恢复
xtrabackup --copy-back --target-dir=/back/sql --datadir=/mysql/data
9)重启数据库
chown mysql:mysql -R /mysql/data
service mysql.service restart
登录测试,查看新增数据是否可以查询
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2981次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
852次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
436次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
373次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
292次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
279次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
274次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
257次阅读
2025-04-30 12:17:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
249次阅读
2025-04-28 11:01:25