一、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、全量备份
准备备份
复制备份
备份成功 重新启动