xtrabackup各种备份及备份恢复方式(包含应用binlog恢复步骤)

一、环境准备

1、源目标库的数据库版本要保证一致。
1)下载地址(官网速度很快)安装参考https://editor.csdn.net/md/?articleId=127115309
下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
2、如果是全备那么数据库用户名密码也会复制过去。
3、xtrabackup 备份 8.0以上的mysql需要高于或者等于mysql版本。
1)官网下载xtrabackup

https://www.percona.com/downloads
在这里插入图片描述
在这里插入图片描述
2)安装

yum localinstall percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm -y

二、全备备份与恢复

1、源库备份
#创建备份目录
mkdir /root/backup/

#远程备份
xtrabackup --defaults-file=/etc/my.cnf --host=源端IP --user=root --password=123 --port=3306 --backup --target-dir=/root/backup/
#本地备份
xtrabackup --defaults-file=/etc/my.cnf -uroot -p密码 --backup  --target-dir=/root/backup/ -S /var/lib/mysql/data/sock/mysql.sock

#打包
cd /root
tar zcvf backup.tar.gz /root/backup/

#传到备库
scp backup.tar.gz 目标端IP:/tmp
2、目标库恢复数据
#解压
tar xf backup.tar.gz

#拷贝配置文件
cd /backup

#把配置文件中的内容复制到目标库的文件里面
cat backup-my.cnf 

#创建出来配置文件的undo文件并授权。创建配置文件中的数据目录等并授权
chown -R /data

#应用(如果后面有整备加 --apply-log-only 参数)
xtrabackup --prepare --target-dir=/tmp/xtrabackup/

#拷贝过去
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/tmp/backup/

#启动数据库
mysqld_safe --defaults-file=/etc/my.cnf &

三、增量备份与恢复

1、源库

#创建增量备份目录
mkdir /root/inc

#增量备份
 xtrabackup --defaults-file=/etc/my.cnf -uroot -p密码 --backup  --target-dir=/tmp/backup/ -S /var/lib/mysql/data/sock/mysql.sock --incremental-basedir=/root/inc
 
 --target-dir			全量备份地址
--incremental-basedir	 增量备份地址

#压缩
cd /root
tar zcvf inc.tar.gz  /root/inc

#传到从库
scp inc.tar.gz 目标端IP:/tmp

2、目标库

#解压
tar xf inc.tar.gz

#应用全量备份(前置条件看全备恢复第二步要带  增量备份恢复全备要带 --apply-log-only 如果是多段增量除了最后的一段不带这个参数其他的增量参数应用都要带这个参数)
xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only  --target-dir=/root/backup/ 

#将增量备份应用至全量备份其次对增量备份应用redo log并合并到全量备份
xtrabackup --defaults-file=/etc/my.cnf --prepare  --target-dir=全备文件地址 --incremental-dir= 增量文件地址
xtrabackup --defaults-file=/etc/my.cnf --prepare  --target-dir=/root/backup --incremental-dir=/root/inc

#拷贝过去
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/root/backup/

#授权
chown mysql.mysql /data/mysql/data
#启动数据库
mysqld_safe --defaults-file=/etc/my.cnf &
四、binlog恢复
1、源库
#压缩binlog
mkdir /tmp/bin.log
cd /var/lib/mysql/archive/
cp mysql-bin.000026 mysql-bin.000027 mysql-bin.000028 mysql-bin.000029 mysql-bin.000030 /tmp/bin.log
cd /tmp 
tar zcvf bin.log.tar.gz bin.log
#发送binlog
scp -p letsg0 bin.log.tar.gz 目标库IP:/root/
2、目标库
#解压
cd /toot/
tar xf bin.log.tar.gz
cd bin.log

#查看position位点信息(在应用完增量备份的全量备份里面)
cat  /root/backup/xtrabackup_binlog_info

#导出不包含gtid的binlog
mysqlbinlog  -vvv --skip-gtids=true --start-position=236 mysql-bin.000026  mysql-bin.000027  mysql-bin.000028  mysql-bin.000029  mysql-bin.000030 > a.sql

#导入数据到数据库里面
my < a.sql
Xtrabackup是Percona公司开发的一款MySQL备份恢复工具,它支持增量备份,可以大大缩短备份时间,并且可以快速地进行数据恢复。下面是使用Xtrabackup进行增量备份及快速恢复步骤: 1. 安装Xtrabackup工具:首先需要在备份服务器上安装Xtrabackup工具,可以使用yum或者apt-get等包管理器进行安装。 2. 进行全量备份:使用Xtrabackup进行全量备份,可以使用如下命令: ``` xtrabackup --backup --user=root --password=<password> --target-dir=/path/to/backup ``` 3. 进行增量备份:在进行增量备份时,需要先生成备份binlog文件名和位置,可以使用如下命令: ``` mysql -uroot -p -e "SHOW MASTER STATUS\G" | grep File mysql -uroot -p -e "SHOW MASTER STATUS\G" | grep Position ``` 然后使用Xtrabackup进行增量备份,可以使用如下命令: ``` xtrabackup --backup --user=root --password=<password> --target-dir=/path/to/backup --incremental-dir=/path/to/incremental --incremental-basedir=/path/to/last/full/backup --slave-info ``` 其中,--incremental-basedir参数指定上一次全量备份的目录,--incremental-dir参数指定增量备份的目录。 4. 进行数据恢复:在进行数据恢复时,可以使用Xtrabackup进行快速恢复。具体的步骤如下: - 停止MySQL服务:停止MySQL服务,以便进行数据恢复。 - 恢复全量备份:使用Xtrabackup进行全量备份恢复,可以使用如下命令: ``` xtrabackup --copy-back --target-dir=/path/to/backup ``` - 恢复增量备份:使用Xtrabackup进行增量备份恢复,可以使用如下命令: ``` xtrabackup --apply-log --redo-only --target-dir=/path/to/backup --incremental-dir=/path/to/incremental ``` - 启动MySQL服务:启动MySQL服务并验证数据是否已经还原成功。 需要注意的是,在进行数据恢复时,需要保证备份的全量数据和增量备份的一致性和完整性,否则可能会导致数据还原失败或者数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值