mysql数据库备份与恢复(Xtrabackup物理备份数据工具)

  1. PXB下载与安装
# 官网下载地址
https://docs.percona.com/
# 利用yum方式安装本地的rpm包程序,可以有效解决软件依赖的问题 ;
yum install -y percona-xtrabackup-80-8.0.13-1.el7.x86_64.rpm
  1. Xtrabackup数据备份现全量备份
# 进行物理备份的目标目录不能存在数据信息,需要指定一个空目录进行备份
mkdir /data/backup/full -p
xtrabackup --defaults-file=/etc/my.cnf --host=10.0.0.10 --user=root --password=123456 --port=3306 --backup  --target-dir=/data/backup/full
# 或者使用参数--datadir替换掉参数--defaults-file
# backup参数信息表示进行全备操作
[xtrabackup --datadir=/data/3306/data  --user=root --password=123456 --port=3306 --backup --target-dir=/data/backup/full]

# xtrabackup_binlog_info:表示用于存储备份时的binlog位置点信息
# xtrabackup_checkpoints:表示用于记录备份时的数据页LSN信息,主要用于接下一次备份,需要保证连续性;
# xtrabackup_info:表示整体物理备份信息的总览
# xtrabackup_logfile:表示存储在备份数据期间产生的新的的redo日志的信息;
# xtrabackup_tablespaces:表示用于存储表空间的其余信息

  1. Xtrabackup数据恢复方式:全量备份恢复
# 表示模拟CR过程,将redo日志进行前滚,undo日志进行回滚,让恢复数据信息保持一致性状态
xtrabackup --prepare --target-dir=/data/backup/full
# 将进行物理备份后的数据,再次进行还原恢复到备份前的目录中(拷贝回数据)
xtrabackup --copy-back  --target-dir=/data/backup/full
# 修改目录权限
chown -R mysql.mysql /data/*
# 重启数据库服务
systemctl start mysqld
  1. Xtrabackup数据备份实现增量备份
# 提前全备数据
xtrabackup --defaults-file=/etc/my.cnf --host=10.0.0.10  --user=root --password=123456 --port=3306 --backup --parallel=4 --target-dir=/data/backup/full 
# 提前准备好增量备份的目录
mkdir /data/backup/inc -p
# 进行增量备份操作,并且开启并发线程备份功能(--parallel=4),从而提高备份效率(建议4~8个)
xtrabackup --defaults-file=/etc/my.cnf --host=10.0.0.10 --user=root --password=123456 --port=3306 --backup --parallel=4 --target-dir=/data/backup/inc --incremental-basedir=/data/backup/full
  1. Xtrabackup数据恢复:增量备份恢复
# 准备全量备份的日志  
xtrabackup --prepare  --apply-log-only  --target-dir=/data/backup/full
# 准备增量备份的日志,并且将增量备份合并到全量备份中;
xtrabackup --prepare  --apply-log-only  --target-dir=/data/backup/full --incremental-dir=/data/backup/inc
# 注意:--apply-log-only在合并除最后一个备份之外的增量备份时应使用。
# 参考链接:https://docs.percona.com/percona-xtrabackup/8.0/prepare-incremental-backup.html
# 在全量和增量数据合并后,在整体做日志信息的准备
xtrabackup --prepare  --target-dir=/data/backup/full
# 将进行物理备份后的数据,再次进行还原恢复到备份前的目录中(拷贝回数据)
xtrabackup  --copy-back  --target-dir=/data/backup/full
# 重新启动恢复业务功能
chown -R mysql.mysql /data/*
systemctl start mysqld
  1. 最后在进行一次全量备份
xtrabackup --defaults-file=/etc/my.cnf --host=10.0.0.10 --user=root --password=123456 --port=3306 --backup  --target-dir=/data/backup/full
posted @ 2025-08-30 20:55  运维实习生  阅读(14)  评论(0)    收藏  举报