恢复到自建MySQL数据库 步骤一:在RDS for MySQL下载全量备份文件 RDS for MySQL实例会在固定时间进行自动全备任务,也可以由您指定时间进行手动全备任务,其生成的.qp文件支持下载以及在本地进行恢复自建数据库。 1. 您可以在RDS界面单击实例名称,选择“备份恢复 > 全量备份 > 下载”,下载全量备份文件。 2. 通过文件传输工具(例如WinSCP)将全备文件上传到本地MySQL库所在的Linux设备。 步骤二:在本地MySQL安装qpress和XtraBackup 方式一:手动安装 1. 下载正确版本的qpress和XtraBackup,也可以根据下表进行下载。下载完成后将安装包上传到本地MySQL库所在的Linux设备。 − 下载qpress工具: − 下载Percona XtraBackup工具: 对于MySQL 5.6和5.7版本,下载XtraBackup 2.4.9及其以上版本。 对于MySQL 8.0版本,下载XtraBackup 8.0及其以上版本。 表 下载示例 工具 下载实例 MySQL 5.6 mysql5.6.51linuxglibc2.12x8664.tar.gz MySQL 5.7 mysql5.7.38linuxglibc2.12x8664.tar.gz MySQL 8.0 mysql8.0.26linuxglibc2.12x8664.tar qpress qpress111.el7.x8664.rpm Percona XtraBackup XtraBackup 2.4.9(MySQL 5.6、5.7) Percona XtraBackup XtraBackup 8.0(MySQL 8.0) 2. 安装qpress rpm包。以Enterprise Linux 7(CentOS 7, RHEL 7, Rocky Linux 7, AlmaLinux 7)操作系统为例。 rpm ivh qpress111.el7.x8664.rpm 3. 解压Xtrabackup包,并改名为“xtrabackup”。 tar zxvf perconaxtrabackup2.4.9Linuxx8664.tar.gz mv perconaxtrabackup2.4.9Linuxx8664 xtrabackup 4. xtrabackup添加到环境变量。 plaintext echo "export PATH$PATH:/usr/local/xtrabackup/bin" >> /etc/profile mv xtrabackup/ /usr/local/ source /etc/profile 方式二:wget安装 1. 安装qpress rpm包。 wget rpm ivh qpress111.el7.x8664.rpm 2. 安装Percona XtraBackup。 − MySQL 5.6、5.7,以下载并安装Percona XtraBackup 2.4.9为例 wget rpm ivh perconaxtrabackup242.4.91.el7.x8664.rpm nodeps force − MySQL 8.0,以下载并安装Percona XtraBackup 8.0为例 wget rpm ivh perconaxtrabackup808.0.3226.1.el7.x8664.rpm nodeps force 步骤三:使用备份文件恢复数据到自建MySQL 1. 创建一个临时目录“backupdir”。 mkdir backupdir 2. 解压全备文件。 说明 解压全备文件到临时目录“backupdir”前,需要保证临时目录下为空,再进行解压,避免恢复异常。 − MySQL 5.6、5.7 xbstream x p 4 < ./全备文件.qp C ./backupdir/ innobackupex parallel 4 decompress ./backupdir − MySQL 8.0 xbstream x p 4 < ./全备文件.qp C ./backupdir/ xtrabackup parallel 4 decompress targetdir./backupdir 3. 删除qp文件。 find ./backupdir/ name '.qp' xargs rm f 4. 应用redo日志。 − MySQL 5.6、5.7 innobackupex applylog ./backupdir − MySQL 8.0 xtrabackup prepare targetdir./backupdir 5. 备份数据。 a. 停止MySQL数据库服务。 service mysql stop 如果是MySQL 5.7,需执行如下命令停止MySQL数据库服务: /bin/systemctl stop mysqld.service b. 备份原来的数据库目录。 mv /usr/local/mysql/data /usr/local/mysql/databak mkdir /usr/local/mysql/data c. 创建新的数据库目录并修改目录权限。 chown mysql:mysql /usr/local/mysql/data 6. 恢复数据到自建库,并修改目录权限。 执行该步骤前,需要清空自建库的“data”目录,参考5.b。 − MySQL 5.6、5.7 innobackupex defaultsfile/etc/my.cnf copyback ./backupdir chown R mysql:mysql /usr/local/mysql/data − MySQL 8.0 xtrabackup defaultsfile/etc/my.cnf copyback targetdir./backupdir chown R mysql:mysql /usr/local/mysql/data 说明 命令中的相对路径(./backupdir)可替换成绝对路径。 “defaultsfile”为MySQL配置文件位置,您可以根据实际情况进行修改。 7. 启动数据库。 service mysql start 如果是MySQL 5.7,需执行如下命令启动数据库: /bin/systemctl start mysqld.service 8. 登录数据库,查看数据恢复结果。 show databases