一、xtrabackup实现mysql全量备份和增量备份
1、xtrabackup备份原理
(1)、innobackupex先会开启一个xtrabackup_log后台检测进程,实时监测mysql的redo log的变化,发现redo有新的日志写入,立即将日志写入到日志文件xtrabackup_log中
(2)、物理拷贝innodb的数据文件和系统表空间idbdata1到以默认时间戳为备份目录的地方
(3)、复制结束后,执行flush table with read lock 进行全库的锁表,并备份非inndb文件
(4)、物理复制.frm .myd .myi等非inndb引擎文件到备份目录
(5)、查看二进制日志的位置
(6)、解锁表unlock tables
(7)、结束xtrabackup_log进程

2、增量备份
(1)、innobackupex --user=root --password=‘Qaz123wsx456.’ --incremental /bakup/ -S /tmp/mysql3306.sock --incremental-basedir=/tmp/2021-11-26_04-20-10/
–incremental 增量备份
–incremantal-baserdir 上次备份的路径,基于上一次的备份文件
-S /tmp/mysql3306.sock
一般增量和完整备份不是在同一个目录下,查看序列号
(2)、删除数据mysql/下的文件,改属主属组
然后回滚数据,防止新数据丢失,
对完整备份做回滚操作
innobackupex --apply-log --redo-only /tmp/2021-11-26_04-20-10/
回滚第一次增量备份的
innobackupex --apply-log --redo-only /tmp/全量 --incremental-dir=/tmp/增量
innobackupex --defaults-file=/etc/my_3306.cnf -S /tmp/mysql3306.sock --copy-back /tmp/全量
(3)重启mysql
/usr/local/mysql/5.7.35/bin/mysqld_safe --defaults-file=/etc/my_3306.cnf &
查看是否到第一次的增量数据
mysql -uroot -pQaz123wsx456. -S /tmp/mysql3306.sock
3、全量备份

准备备份

复制备份

备份成功 重新启动

本文详细介绍了xtrabackup如何实现MySQL的全量备份,包括日志监测、数据复制、锁表与解锁等步骤,并指导了增量备份的执行过程,包括基于旧备份的增量操作和数据回滚。
1024

被折叠的 条评论
为什么被折叠?



