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/完全备份目录(周一)
差异备份恢复流程
- 停止数据库
systemctl stop mysqld
- 清理环境
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
- 重演回滚redo log(周一,某次差异)--> 恢复数据
- 修改权限
- 启动数据库
- 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