RDS MySQL数据恢复
本文最后更新于:2022年4月11日 晚上
确保已安装
MySQL
版本与RDS MySQL
版本相同。
环境准备
安装 Percona XtraBackup
:
对于MySQL 5.7、5.6或5.5实例,安装 Percona XtraBackup 2.4
在线安装:
1
2
3
4
5
6
7
8
9
10yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# 查看是否可以从仓库中获取 percona 包的信息
yum list | grep percona
# 启用 percona-relase 仓库
percona-release enable-only tools release
# 安装 Percona XtraBackup
yum install percona-xtrabackup-24安装包安装,针对
CentOS 7
,若下载速度很慢,附件提供该安装包:1
2
3
4wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/\
binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm卸载
Percona XtraBackup
1
yum remove percona-xtrabackup
对于MySQL 8.0实例,安装 Percona XtraBackup 8.0
安装解压工具 qpress
,附件提供下载包:
1 |
|
解压和恢复备份
- 在服务器上创建一个目录用于存储解压后的文件
1 |
|
- 解压 RDS 备份压缩包(文件后缀
.tar.gz
)
1 |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# xbstream 压缩包(.xb.gz 后缀)
gzip -d -c RDS备份压缩文件.xb.gz | xbstream -x -v -C /mnt/mysql/data
# xbstream 文件包(_qp.xb 后缀)
## 解包
cat RDS备份压缩文件_qp.xb | xbstream -x -v -C /mnt/mysql/data
## 解压
### 对于 MySQL 5.6/5.7
innobackupex --decompress --remove-original /mnt/mysql/data
### 对于 MySQL 8.0
innobackupex --decompress --remove-original --target-dir=/mnt/mysql/data
# xbstream qpress压缩包(_xb.qp后缀)
qpress -do RDS备份压缩文件_xb.qp | xbstream -x -v -C /mnt/mysql/data
- 恢复解压好的备份文件
1 |
|
- 若恢复出现报错,请查看参考文档。
启动 MySQL
- 修改
backup-my.cnf
文件,vim /mnt/mysql/data/backup-my.cnf
添加如下参数:
1 |
|
- 注释掉自建数据库(使用的是
InnoDB
引擎)不支持的参数:
1 |
|
如果使用的是
MyISAM
引擎,需增加以下注释,并增加skip-grant-tables
参数
1
2
3
#innodb_log_checksum_algorithm=strict_crc32
#redo_log_version=1
skip-grant-tables
- 修改文件属主,若没有该用户可忽略:
1 |
|
- 启动
MySQL
进程:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!