Amazon Aurora
Aurora 用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将数据迁移到 Amazon Aurora MySQL 数据库集群

对于将数据从现有数据库迁移到 Amazon Aurora MySQL 数据库集群,您有多种选择。您的迁移选项还取决于您从中迁移数据的数据库和您迁移数据的规模。

有两种不同类型的迁移:物理和逻辑。物理迁移意味着使用数据库文件的物理副本来迁移数据库。逻辑迁移意味着通过应用逻辑数据库更改 (如插入、更新和删除) 来完成迁移。

物理迁移有以下优势:

  • 物理迁移比逻辑迁移要快,特别是对于大型数据库。

  • 在进行物理迁移的备份时,数据库性能不会受到影响。

  • 物理迁移可以迁移源数据库中的所有内容,包括复杂的数据库组件。

物理迁移具有以下限制:

  • 必须将 innodb_page_size 参数设置为其默认值 (16KB)。

  • 必须使用默认的数据文件名 innodb_data_file_path 配置 "ibdata1"。下面是不允许使用的文件名示例:"innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend""innodb_data_file_path=ibdata01:50M:autoextend"

  • 必须将 innodb_log_files_in_group 参数设置为其默认值 (2)。

逻辑迁移有以下优势:

  • 您可以迁移数据库的子集,如特定表或表的若干部分。

  • 无论物理存储结构如何,都可以迁移数据。

逻辑迁移具有以下限制:

  • 逻辑迁移通常比物理迁移慢。

  • 复杂的数据库组件可能会减慢逻辑迁移过程。在某些情况下,复杂的数据库组件甚至可以阻止逻辑迁移。

下表列出了您的选项以及每个选项的迁移类型。

迁移来源 迁移类型 解决方案

Amazon RDS MySQL 数据库实例

物理

首先创建 MySQL 数据库实例的 Aurora MySQL 只读副本,然后可以从 RDS MySQL 数据库实例进行迁移。如果 MySQL 数据库实例和 Aurora MySQL 只读副本之间的副本滞后为 0,您可以指示客户端应用程序从 Aurora 只读副本中读取数据,然后停止复制以使 Aurora MySQL 只读副本成为单独的 Aurora MySQL 数据库集群以进行读写。有关详细信息,请参阅 使用 Aurora 只读副本将数据从 MySQL 数据库实例迁移到 Amazon Aurora MySQL 数据库集群

RDS MySQL 数据库快照

物理

您可以将数据直接从 Amazon RDS MySQL 数据库快照迁移到 Amazon Aurora MySQL 数据库集群。有关详细信息,请参阅 使用数据库快照将数据从 MySQL 数据库实例迁移到 Amazon Aurora MySQL 数据库集群

在 Amazon RDS 之外运行的 MySQL 数据库

逻辑

您可以使用 mysqldump 实用程序创建数据的转储,然后将该数据导入现有的 Amazon Aurora MySQL 数据库集群。有关详细信息,请参阅 使用 mysqldump 从 MySQL 迁移到 Amazon Aurora

在 Amazon RDS 之外运行的 MySQL 数据库

物理

您可以将备份文件从数据库复制到 Amazon Simple Storage Service (Amazon S3) 存储桶,然后从这些文件还原 Amazon Aurora MySQL 数据库集群。该选项可能比使用 mysqldump 迁移数据要快得多。有关详细信息,请参阅 通过使用 Amazon S3 存储桶从 MySQL 中迁移数据

在 Amazon RDS 之外运行的 MySQL 数据库

逻辑

您可将数据库中的数据另存为文本文件并将这些文件复制到 Amazon S3 存储桶。然后,您可以使用 LOAD DATA FROM S3 MySQL 命令将数据加载到现有 Aurora MySQL 数据库集群中。有关更多信息,请参阅将数据从 Amazon S3 存储桶中的文本文件加载到 Amazon Aurora MySQL 数据库集群

不与 MySQL 兼容的数据库

逻辑

您可以使用 AWS Database Migration Service (AWS DMS) 从非 MySQL 兼容数据库中迁移数据。有关 AWS DMS 的更多信息,请参阅什么是 AWS Database Migration Service?

注意

  • 如果您正在迁移 Amazon RDS 外部的 MySQL 数据库,则仅当您的数据库支持 InnoDB 或 MyISAM 表空间时,表中描述的迁移选项才受支持。

  • 如果要迁移到 Aurora MySQL 的 MySQL 数据库使用 memcached,请在迁移之前删除 memcached