腾讯云.xb 数据库备份恢复

腾讯云 mysql .xb数据库备份恢复
https://cloud.tencent.com/document/product/236/33362

备份文件先经过 qpress 压缩,后经过 xbstream 打包,所以先安装xbstream解包,然后安装qpress解压缩。

1, 安装 xbstream
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install percona-xtrabackup-24

报错:
https://blog.youkuaiyun.com/xinjing2015/article/details/88178789

The GPG keys listed for the "Percona-Release YUM repository - x86_64" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: Percona-Server-client-56-5.6.43-rel84.3.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona

解决:yum update percona-release

2,安装qpress
http://www.quicklz.com/
在这里插入图片描述

tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile

无法启动mysql,将/tmp/mysql.sock改为mysql用户
chmod mysql:mysql mysql.sock

<think>我们之前已经讨论过关于.xb文件(Percona XtraBackup备份文件)和增量备份的基本概念。现在用户的问题更具体:“.xb文件数据迁移增量备份有4个如何恢复mysql数据库”,即如何利用4个增量备份恢复MySQL数据库。 根据之前的回答,恢复过程需要先恢复完整备份,然后按顺序应用所有增量备份,最后进行恢复操作。这里我将详细说明步骤。 步骤: 1. 准备环境:确保已经安装了Percona XtraBackup工具,并且版本与备份时使用的版本兼容。 2. 恢复完整备份:首先,需要有一个完整备份(通常是一个包含所有数据的目录,可能被压缩成多个.xb文件)。解压并应用日志(--apply-log --redo-only)。 3. 应用增量备份:按顺序(从第一个增量备份到第四个)应用每个增量备份到完整备份上,每次都要使用--redo-only选项(除了最后一个增量备份,如果不需要继续应用增量备份,则最后一个可以不用--redo-only,但为了安全,通常在整个链应用完之前都使用--redo-only)。 4. 准备最终恢复:在应用完所有增量备份后,对完整备份目录进行一次最终的准备(不使用--redo-only),使数据文件处于一致状态。 5. 恢复数据:停止MySQL服务,将MySQL数据目录备份(可选,以防万一),然后将准备好的备份目录复制到MySQL的数据目录,并修改权限。 6. 启动MySQL:启动MySQL服务,检查数据是否正常。 详细命令示例: 假设目录结构如下: - /backups/full:完整备份 - /backups/inc1:第一个增量备份 - /backups/inc2:第二个增量备份 - /backups/inc3:第三个增量备份 - /backups/inc4:第四个增量备份 步骤1:恢复完整备份 ```bash # 解压完整备份(如果备份是压缩的,使用xbstream解压) mkdir -p /backups/full xbstream -x < full_backup.xb -C /backups/full # 应用日志(--apply-log --redo-only) innobackupex --apply-log --redo-only /backups/full ``` 步骤2:应用第一个增量备份 ```bash # 解压第一个增量备份 mkdir -p /backups/inc1 xbstream -x < inc1.xb -C /backups/inc1 # 应用增量备份到完整备份 innobackupex --apply-log --redo-only /backups/full --incremental-dir=/backups/inc1 ``` 步骤3:应用第二个增量备份(同理) ```bash mkdir -p /backups/inc2 xbstream -x < inc2.xb -C /backups/inc2 innobackupex --apply-log --redo-only /backups/full --incremental-dir=/backups/inc2 ``` 步骤4:应用第三和第四个增量备份(与步骤3相同) 步骤5:所有增量备份应用完成后,进行最终准备(不再使用--redo-only) ```bash innobackupex --apply-log /backups/full ``` 步骤6:停止MySQL,恢复数据 ```bash systemctl stop mysql # 备份原数据目录(可选) mv /var/lib/mysql /var/lib/mysql_bak # 将准备好的数据复制到MySQL数据目录 innobackupex --copy-back /backups/full # 修改权限 chown -R mysql:mysql /var/lib/mysql ``` 步骤7:启动MySQL ```bash systemctl start mysql ``` 注意事项: - 在应用增量备份时,必须按照备份的时间顺序(即增量备份的顺序)进行。 - 使用--redo-only参数是为了保证在应用增量备份时不会回滚未提交的事务,这样后续的增量备份才能继续应用。在最后一个增量备份应用完后,执行不带--redo-only的apply-log来回滚未提交的事务。 如果用户使用的是Percona XtraBackup 8.0,则命令中的`innobackupex`已被弃用,应使用`xtrabackup`命令。例如,恢复完整备份的命令变为: ```bash xtrabackup --prepare --apply-log-only --target-dir=/backups/full ``` 应用增量备份: ```bash xtrabackup --prepare --apply-log-only --target-dir=/backups/full --incremental-dir=/backups/inc1 ``` 最后,根据用户的问题和回答,提出3-5个相关问题。</think>### 回答 使用包含4个增量备份.xb文件恢复MySQL数据库,需按顺序应用所有备份文件。以下是详细步骤(以Percona XtraBackup为例): **恢复流程:** 1. **准备完整备份** ```bash # 解压完整备份 xbstream -x < full_backup.xb -C /path/to/restore # 应用日志(--redo-only保留事务) xtrabackup --prepare --apply-log-only --target-dir=/path/to/restore ``` 2. **按顺序应用增量备份**(必须严格按1→2→3→4顺序) ```bash # 应用第1个增量备份 xtrabackup --prepare --apply-log-only --target-dir=/path/to/restore \ --incremental-dir=/path/to/inc_backup1 # 应用第2个增量备份 xtrabackup --prepare --apply-log-only --target-dir=/path/to/restore \ --incremental-dir=/path/to/inc_backup2 # 重复至第4个(最后一个不加--apply-log-only) xtrabackup --prepare --target-dir=/path/to/restore \ --incremental-dir=/path/to/inc_backup4 ``` 3. **恢复数据到MySQL** ```bash # 停止MySQL服务 systemctl stop mysql # 清空数据目录(谨慎操作!) rm -rf /var/lib/mysql/* # 复制备份数据 xtrabackup --copy-back --target-dir=/path/to/restore # 修复权限并启动 chown -R mysql:mysql /var/lib/mysql systemctl start mysql ``` **关键注意事项:** - ⚠️ **顺序要求**:增量备份必须按创建顺序(`inc1`→`inc2`→`inc3`→`inc4`)应用,否则数据损坏。 - ⚠️ **事务处理**:前3个增量备份需加`--apply-log-only`,仅最后一个不加。 - 🔍 **验证备份**:执行前用`xtrabackup --verify`检查备份完整性。 - ⏱️ **时间估算**:每增加一个增量备份恢复时间可能延长20-50%。 **常见问题解决:** - **备份链断裂**:若中间增量备份缺失,只能恢复到最近完整的备份点。 - **版本兼容**:确保XtraBackup版本与MySQL版本匹配(如MySQL 8.0需XtraBackup 8.0+)。 - **空间不足**:恢复需要至少2倍原数据库大小的磁盘空间。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值