Linux 开源数据库Mysql-8-percona-xtrabackup差异备份

Linux 开源数据库Mysql-8-percona-xtrabackup差异备份

1.完整备份:周一

create database testdb;
use testdb;
create table test2(id int);
insert into test values(1);
select * from test;
innobackupex --user=root --password='qwer1234QWER!@#$' /xtraback/

2、差异备份:周二 —— 周六
使用date调整时间
差异备份得basedir的目录与增量备份存在差异差异备份使用的是全量备份目录

mysql -uroot -p'qwer1234QWER!@#$' -e 'insert into testdb.test values(5)'
innobackupex --user=root --password='qwer1234QWER!@#$' --incremental /xtrabackup --incremental-basedir=/xtrabackup/完全备份目录(周一)

mysql -uroot -p'qwer1234QWER!@#$' -e 'insert into testdb.test values(6)'
innobackupex --user=root --password='qwer1234QWER!@#$' --incremental /xtrabackup --incremental-basedir=/xtrabackup/完全备份目录(周一)

mysql -uroot -p'qwer1234QWER!@#$' -e 'insert into testdb.test values(7)'
innobackupex --user=root --password='qwer1234QWER!@#$' --incremental /xtrabackup --incremental-basedir=/xtrabackup/完全备份目录(周一)

差异备份恢复流程

  1. 停止数据库
systemctl stop mysqld
  1. 清理环境
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
  1. 重演回滚redo log(周一,某次差异)--> 恢复数据
  2. 修改权限
  3. 启动数据库
  4. binlog恢复

1.恢复全量的redo log

innobackupex --apply-log --redo-only /xtrabackup/完全备份目录(周一) 

2.恢复差异的redo log

innobackupex --apply-log --redo-only /xtrabackup/完全备份目录(周一)--incremental-dir=/xtrabacku/某个差异备份

3.复制数据文件(cp,rsync),修改权限

innobackupex --copy-back /xtraback/2022-07-26_17-23-34/
chown -R /var/lib/mysql/*

4.启动mysqld

systemctl start mysqld

版权声明:本文为yyf0430原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。