Xtrabackup使用帮助
目录
1.安装工具
需要在被备份的mysql数据库上安装第三方备份工具percona-xtrabackup,此程序需要的rpm包较多。所以我们需要下载此安装包
percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
(适用于mysql5.7版本)
下载地址
https://repo.percona.com/yum/release/7/RPMS/x86_64/percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
2.下载后上传到需要备份的服务器
去对应的目录
[root@localhost mnt]# ll
总用量 7712
drwxr-x--- 5 root root 87 10月 13 21:36 mysqlbak
-rw-r--r-- 1 root root 7893808 10月 12 10:15 percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
[root@localhost mnt]# yum install -y percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm
出现complete!才算安装完成
验证是否安装完成
输入
innobackupex –version
出现版本号则安装OK
全备
1.安装完成后我们进行数据库备份执行以下命令
(注意mysql数据库的密码要写正确才能进行备份)
参数--backup 为我们需要备份的目录.出现completedOK!备份完成
innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --socket=/tmp/mysql.sock --backup /mnt/mysqlbak/
可以看到整个备份过程:连接数据库,开始拷贝redo log,拷贝innodb表文件,锁表、拷贝非innodb表文件,停止拷贝redo log,解锁。
2.查看备份的数据
cd /mnt/mysqlbak && ll
这个是第一次全备
其中,mysql/, performance_schema/, sys/ ,school/ 下存放的是数据库文件。
backup-my.cnf,备份命令用到的配置选项信息;
ib_buffer_pool, buffer pool 中的热数据,当设置 innodb_buffer_pool_dump_at_shutdown=1 ,在关闭 MySQL 时,会把内存中的热数据保存在磁盘里 ib_buffer_pool 文件中,位于数据目录下。
ibdata1,备份的共享表空间文件;
xtrabackup_binlog_info,mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;
xtrabackup_checkpoints,备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;
xtrabackup_info,记录备份的基本信息,uuid、备份命令、备份时间、binlog、LSN、以及其他加密压缩等信息。
xtrabackup_logfile,备份的重做日志文件。
3.进入数据库,删除一个测试库
4.删除school库
5.备份数据目录
创建一个数据目录
将/var/lib/mysql/data/ 目录下的所有文件移到备份目录去
6.恢复数据库
恢复数据之前要先关闭数据库
-
首先执行以下命令,此命令是告诉系统我们要在此备份基础上启动mysql服务
其中/mnt/mysqlbak/2022-10-14_10-59-30就是前面备份的数据库
innobackupex --apply-log --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30
直到出现completed OK!
#--apply-log ( /data/pxb/2017-04-24_02-46-11/ 为备份目录,执行之后 xtrabackup_checkpoints 文件中的 backup_type = full-prepared )
7.执行命令恢复数据库
innobackupex --defaults-file=/etc/my.cnf --copy-back /mnt/mysqlbak/2022-10-14_10-59-30
直到出现completed OK!才算恢复完成
恢复后,一定要去数据目录,把所有的文件修改用户为mysql
8.验证数据库是否恢复成功
登录数据库后 show databases;
增量备份
我们刚才已经有了全量备份。现在我们创建一些新的表插入一些数据进行增量备份;
1.登录数据库
创建一个表,插入数据
use school;
create table t1(id int);
insert into t1 values(1);
insert into t1 values(11);
2.备份增量
现在进行第一次增量备份;其中标红的为全量备份的目录,----incremental后面为我们的增量备份的目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --incremental /mnt/mysqlbak --socket=/tmp/mysql.sock --incremental-basedir=/mnt/mysqlbak/2022-10-14_10-59-30
出现completed ok!就是备份完成
--incremental 表示告诉mysql进行增量备份
--incremental-basedir 告诉MySQL基于哪个位置点进行增量备份
3.再插入一些数据
insert into t1 VALUES (2);
insert into t1 VALUES(22);
4.进行第二次增量备份
红色为我们上次增量备份的目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --incremental /mnt/mysqlbak --socket=/tmp/mysql.sock --incremental-basedir=/mnt/mysqlbak/2022-10-14_16-02-08
出现completed ok! 为备份完成
现在查看备份目录,已经有一次全备,两次增备的数据
5.删除数据
mysql> drop table t1;
Query OK, 0 rows affected (0.01 sec)
6.关闭mysql
[root@localhost mysql]# service mysql stop
Shutting down MySQL.... SUCCESS!
[root@localhost mysql]# mv data/* bak/ #将数据目录下的文件移走备份目录下去
7.恢复数据
执行以下命令,应用全量备份。目录为全量备份的目录
#准备一个全备
innobackupex --apply-log --redo-only --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30
>出现completed ok 为备份完成
---
#将增量1应用到完全备份
innobackupex --apply-log --redo-only --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30 --incremental-dir=/mnt/mysqlbak/2022-10-14_16-02-08
#incremental-dir 为增量备份的数据
>出现completed ok 为备份完成
---
#再执行应用第二个增量备份。最后一个增量备份,不需要加redo-only选项
innobackupex --apply-log --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30 --incremental-dir=/mnt/mysqlbak/2022-10-14_16-29-56
#最后一个增量备份,不需要加redo-only选项
>出现completed ok 为备份完成
---
#执行全量恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /mnt/mysqlbak/2022-10-14_10-59-30
>出现completed ok 为备份完成
8.启动mysql
启动之前需要将数据目录的用户调整为mysql
数据恢复成功
参考https://www.cnblogs.com/waynechou/p/xtrabackup_backup.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤