先创建备份目录 mkdir -p /xtrabackup/full
1.完全备份
innobackupex --user=root --password='P@ssword1' /xtrabackup/full
恢复操作:
1. 停止数据库
systemctl stop mysqld
2. 清理环境
rm -rf /var/lib/mysql/*
3. 重演回滚(合并)--> 恢复数据
innobackupex --apply-log /xtrabackup/full/2018-01-21_18-19-25/ (合并)
innobackupex --copy-back /xtrabackup/full/2018-01-21_18-19-25/ (恢复)
4. 修改权限
chown -R mysql.mysql /var/lib/mysql/
5. 启动数据库
systemctl start mysqld
增量备份
增量备份
1.完全备份
周一:innobackupex --user='root' --password='P@ssword1' /xtrabackup/full
2.开始增量备份
周二:innobackupex --user='root' --password='P@ssword1' --incremental /xtrabackup/full/ --incremental-basedir=/xtrabackup/full/2023-08-28_15-12-35/(此处是周一的全量备份)
周三:innobackupex --user='root' --password='P@ssword1' --incremental /xtrabackup/full/ --incremental-basedir=/xtrabackup/full/2023-08-28_15-17-20/(此处是周二的增量)
周四:innobackupex --user='root' --password='P@ssword1' --incremental /xtrabackup/full/ --incremental-basedir=/xtrabackup/full/2023-08-28_15-20-09/(此处是周三的增量)
--incremental /xtrabackup/full/ 指定增量备份的数据存放的路径
--incremental-basedir=/xtrabackup/full/2023-08-28_15-12-35/ 指定完全备份存放的路径
恢复操作:
1.停止数据库
systemctl stop mysqld
2.清理环境
rm -rf /var/lib/mysql/*
3.重演回滚--> 恢复数据
周一 innobackupex --apply-log --redo-only /xtrabackup/full/2023-08-28_15-12-35/ (重演完全备份的数据)
周二 innobackupex --apply-log --redo-only /xtrabackup/full/2023-08-28_15-12-35/ --incremental-dir=/xtrabackup/full/2023-08-28_15-17-20/ (合并周二的恢复数据)
周三 innobackupex --apply-log --redo-only /xtrabackup/full/2023-08-28_15-12-35/ --incremental-dir=/xtrabackup/full/2023-08-28_18-15-21/ (合并周三的恢复数据)
周四 innobackupex --apply-log --redo-only /xtrabackup/full/2023-08-28_15-12-35/ --incremental-dir=/xtrabackup/full/2023-08-28_20-25-10/ (合并周四的恢复数据)
恢复数据innobackupex --copy-back /xtrabackup/full/2023-08-28_15-12-35/ (完全备份)
4. 修改权限
chown -R mysql.mysql /var/lib/mysql/
5. 启动数据库
systemctl start mysqld
差异备份
创建备份目录 mkdir /xtrabackup/demo
周一:
完全备份
innobackupex --user='root' --password='P@ssword1' /xtrabackup/demo/
周二:
insert ...(插入数据)
差异备份
第一路径:差异备份的数据存放的路径,第二路径是:完全备份的路径
innobackupex --user='root' --password='P@ssword1' --incremental /xtrabackup/demo/ --incremental-basedir=/xtrabackup/demo/2023-11-09_17-05-24/(此处只能是周一全量备份)
周三:
insert ...
差异备份
innobackupex --user='root' --password='P@ssword1' --incremental /xtrabackup/demo/ --incremental-basedir=/xtrabackup/demo/2023-11-09_17-05-24/(此处只能是周一的全量备份)
恢复操作:
1.停止数据库
systemctl stop mysqld
2.清理环境
rm -rf /var/lib/mysql/*
3.验证数据,数据合并
验证完全备份的数据
1.innobackupex --apply-log --redo-only /xtrabackup/demo/2023-11-09_17-05-24/(全量备份)
将差异备份和完全备份合并,第一路径是完全备份的路径,第二个路径是差异备份的路径
2.innobackupex --apply-log --redo-only /xtrabackup/demo/2023-11-09_17-05-24/ --incremental-dir=/xtrabackup/demo/2023-11-09_17-08-14/(最后一次差异备份的数据)
4.恢复数据
所有的数据已经合并到了完全备份当中,填写的路径是完全备份的路径
innobackupex --copy-back /xtrabackup/demo/2023-11-09_17-05-24/(所有数据合并的全量备份)
5.授权数据存储路径
chown -R mysql.mysql /var/lib/mysql
6.启动数据库
systemctl start mysqld