阿里云rds备份文件本地恢复-mysql-5.6

admin2023-08-09linux147

//参考官方文档

https://help.aliyun.com/document_detail/41817.html?spm=a2c4g.41833.4.4.16ce3ae9ZVzVwm&scm=20140722.H_41817._.ID_41817-OR_rec-V_1

部署自建MySQL数据库,其中数据库大版本与RDS MySQL的大版本必须相同(例如都是8.0)。

安装宝塔面板,安装对应mysql版本(解压后查看xtrabackup_info文件)

image.png

1.工具准备

如果是MySQL 5.7、5.6或5.5实例,下载并安装Percona XtraBackup 2.4

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

yum install -y percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

安装解压工具qpress

## 下载可执行文件的tar包
wget "https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar"

## 解压下载的tar包,取出可执行文件
tar -xvf qpress-11-linux-x64.tar

## 设置qpress文件的执行权限
sudo chmod 775 qpress

## 拷贝qpress到/usr/bin中
sudo cp qpress /usr/bin

创建一个目录(本文示例目录为/home/data)用于存放解压后的文件。

mkdir /home/data

2.解包恢复

a.解包

cat /home/custins00000000-hins24087000_data_20230728000000_qp.xb | xbstream -x -v -C /home/data

b.MySQL 5.6/5.7解压

innobackupex --decompress --remove-original /home/data

c.执行如下命令,恢复解压好的备份文件。

## MySQL 5.6/5.7

innobackupex --defaults-file=/home/data/backup-my.cnf --apply-log /home/data

//此步骤会重新生成ib_logfile文件

运行完毕后会提示ok

[root@localhost data]# innobackupex --defaults-file=/home/data/backup-my.cnf --apply-log /home/data
230406 18:03:37 innobackupex: Starting the apply-log operation

IMPORTANT: Please check that the apply-log run completes successfully.
           At the end of a successful apply-log run innobackupex
           prints "completed OK!".
innobackupex version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)
xtrabackup: cd to /home/data/
..........
InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active.
InnoDB: 32 non-redo rollback segment(s) are active.
InnoDB: 5.7.13 started; log sequence number 1091789331989
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1091789333634
230406 18:05:11 completed OK!

//备份原始mysql数据库目录

mv /www/server/data /www/server/data-back
mkdir /www/server/data

d.将恢复完毕的数据目录复制到自建mysql的数据库目录(这里只需要指定源目录,目标目录xtrabackup会读取my.cnf中的配置参数)

//此目录为解压使用的临时目录

xtrabackup --copy-back --target-dir=/home/data/
chown mysql.mysql /www/server/data -R

替换恢复后的mysql库中的user表,有必要再重置密码

bt面板中启动mysql