如何使用 Amazon S3 将 MySQL 数据迁移到 Aurora MySQL 数据库集群?

上次更新时间:2019 年 5 月 29 日

我想将数据从 MySQL 迁移到 Amazon Aurora MySQL 数据库集群。如何使用 Amazon Simple Storage Service (Amazon S3) 将 MySQL 数据恢复到 Aurora MySQL 数据库集群?

解决方法

Amazon Aurora MySQL 与 MySQL 5.6 和 MySQL 5.7 版本兼容。要恢复 MySQL innobackupex 备份,请先进入 Percona 网站并安装 Percona Xtrabackup(版本 2.3 或更高版本)到您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例:

sudo yum install percona-xtrabackup-file_name_and_extension

注意:file_name_and_extension 替换为相应的文件名和扩展名,具体取决于您的 Percona Xtrabackup 程序包。请参阅以下示例:

sudo yum install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

安装 Percona Xtrabackup 后,备份要迁移到 Aurora MySQL 的数据。然后,将备份上传到 Amazon S3 以执行恢复操作。有关更多信息,请参阅 Percona 文档中的备份周期

连接到 EC2 实例并备份您的 MySQL 数据库

1.    使用 SSH 连接到运行 MySQL 数据库的实例

2.    安装 Percona Xtrabackup:

sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
sudo yum install perl-DBD-MySQL -y
sudo yum install percona-xtrabackup -y

3.    备份数据库:

xtrabackup --backup --user=<myuser> --password=<password> --stream=xbstream \
--target-dir=</on-premises/s3-restore/backup> | split -d --bytes=500MB \
- </on-premises/s3-restore/backup/backup>.xbstream

此命令将创建 MySQL 数据库的备份,该备份被拆分为多个 xbstream 文件。

注意:Aurora 不会恢复源中的所有内容。成功恢复数据库后,您可以重新创建以下内容:

  • 用户账户
  • 函数
  • 存储过程
  • 时区信息

将您的备份上传到 S3 存储桶

1.   创建 S3 存储桶
注意:您的存储桶必须与您的 EC2 实例和新 Aurora 数据库集群处于同一区域。

2.   选择您创建的存储桶,然后选择 Create Folder

3.    选择文件夹,然后选择上传

4.   上传文件,然后设置权限。

5.   设置属性,然后选择上传

注意:将文件上传到 Amazon S3 存储桶时,您可以使用服务器端加密来加密数据。

将您的数据库从 Amazon S3 导入 Aurora

1.    打开 Amazon Relational Database Service (Amazon RDS) 控制台,然后在导航窗格中选择控制面板

2.    选择从 S3 恢复 Aurora 数据库集群

3.    输入您之前记下的源引擎版本

4.    从 S3 备份位置下拉菜单中选择您之前创建的 S3 存储桶。输入您的 S3 存储桶前缀
注意:S3 存储桶前缀字段中输入存储桶名称时,请勿使用前导或尾部斜杠 ("/")。

5.    创建 AWS Identity and Access Management (IAM) 角色以授予 Amazon RDS 访问 S3 存储桶的权限,然后选择下一步

6.    指定数据库详细信息,然后选择下一步

7.    配置您的高级设置数据库选项。输入您为数据库集群标识符创建的 IAM 角色。

8.    选择启动数据库实例

9.    在集群可用后,选择查看您的数据库实例以确认 Aurora 数据库实例已成功创建。