我想将数据从 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 --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. 选择文件夹,然后选择 Upload。
4. 上传文件,然后设置权限。
5. 设置属性,然后选择上传。
**注意:**将文件上传到 Amazon S3 存储桶时,您可以使用服务器端加密来加密数据。
将您的数据库从 Amazon S3 导入 Aurora
1. 打开 Amazon Relational Database Service(Amazon RDS)控制台,然后在导航窗格中选择 Dashboard(控制面板)。
2. 选择从 S3 恢复 Aurora 数据库集群。
3. 输入您之前记下的源引擎版本。
4. 从 S3 Backup Location(S3 备份位置)下拉菜单中选择您之前创建的 S3 存储桶。输入您的 S3 Bucket Prefix(S3 存储桶前缀)。
**注意:**在 S3 Bucket Prefix(S3 存储桶前缀)字段中输入存储桶名称时,请勿使用前导或尾部斜杠(“/”)。
5. 创建 AWS Identity and Access Management (IAM) 角色以授予 Amazon RDS 访问 S3 存储桶的权限,然后选择下一步。
6. 指定数据库详细信息,然后选择 Next Step(下一步)。
7. 配置您的 Advanced Settings(高级设置)和 Database Options(数据库选项)。输入您为 DB Cluster Identifier(数据库集群标识符)创建的 IAM 角色。
8. 选择启动数据库实例。
9. 在集群可用后,选择 View Your DB Instances(查看您的数据库实例)以确认 Aurora 数据库实例已成功创建。
相关信息
通过使用 Amazon S3 存储桶从 MySQL 中迁移数据
将数据从外部 MySQL 数据库迁移到 Amazon Aurora MySQL 数据库集群