RDS for MySQL 备份文件恢复到自建数据库

1. 概述与快速恢复手册

1.1 概述

1.2 软件说明

2. Step by step说明

2.1 下载备份文件

2.2 解压

2.3 恢复数据文件

2.4 配置文件修改

2.5 修改文件属主   

2.6 启动数据库

3. 其他问题


1. 概述与软件说明

1.1   概述

RDS MySQL 使用开源软件 percona-Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

1.2   软件说明

解压软件

RDS的备份文件是一个压缩包,需要先解压出来,才能恢复,这里下载解压工具 rds_backup_extract (sh 文件),目前只支持 64 位 Linux 系统。

软件使用方式:

bash rds_backup_extract -f backup.tar.gz/back.xb.gz  -C directory

# -f 指定要解压的备份集文件
# -C 指定解压到的目录;-C 参数是可选的,如果不指定就解压到当前目录,如 bash rds_backup_extract -f backup.tar.gz

注:需要通过 bash 来执行 rds_backup_extract 脚本文件。

 

恢复软件

恢复软件请下载官方的 Percona-XtraBackup(下载地址:https://www.percona.com/downloads/XtraBackup/)官方提供各种平台的安装包,请根据自己的需要下载。RDS 备份使用的版本是 2.2.9,建议您下载 2.2.9 或更新的版本使用。想要了解工具原理的可以参考官方文档

 

2. Step by step说明

2.1 管理控制台中下载备份文件

具体步骤请参考:RDS Linux 平台使用 wget 工具下载备份与日志文件

下载文件成功后,如下图:

 

2.2 解压备份文件

解压备份文件前,要先下载好解压工具 rds_backup_extract

解压备份文件:

bash rds_backup_extract -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data

 如下图:

查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时 RDS 存在的数据库

RDS for MySQL 备份文件恢复到自建数据库_第1张图片

2.3 恢复数据文件

解压备份文件前,要先安装好 Percona-XtraBackup 工具。然后执行下面的命令:

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

 

这一步最后如果看到类似如下输出,显示 completed OK,表示执行成功:

2.4 配置文件修改

由于存在的版本问题,请将解压文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size 、innodb_log_block_size 注释掉,如下图:

RDS for MySQL 备份文件恢复到自建数据库_第2张图片

2.5 修改文件属主

修改文件属主,并检查文件所属为mysql用户。

chown -R mysql:mysql /home/mysql/data

RDS for MySQL 备份文件恢复到自建数据库_第3张图片 

2.6 启动mysqld进程并且登录验证

启动mysqld进程,并验证启动成功

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

RDS for MySQL 备份文件恢复到自建数据库_第4张图片

客户端登录mysql验证

RDS for MySQL 备份文件恢复到自建数据库_第5张图片

 注意:

  •  恢复完成后,表 mysql.user 中是不包含 RDS 中创建的用户,需要新建。
  •  新建用户前请执行如下 SQL:

 

delete from mysql.db where user<>'root' and char_length(user)>0;

delete from mysql.tables_priv where user<>'root' and char_length(user)>0;

flush privileges;

 

你可能感兴趣的:(RDS for MySQL 备份文件恢复到自建数据库)