

# 使用 AWS Database Migration Service 将数据库自动迁移到 Amazon Aurora
<a name="USER_DMS_migration"></a>

您可以使用 Aurora 控制台，将数据库从 EC2、本地或其他云提供商实例迁移到 Aurora。AWS Database Migration Service（AWS DMS）可用于完成此任务。有关更多信息，请参阅《AWS Database Migration Service 用户指南》**中的[什么是 AWS Database Migration Service？](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

要开始迁移，您必须创建等效的 Aurora 数据库集群。创建目标数据库后，您可以将源数据库导入其中。对于小于 1 TiB 的源数据库，此迁移操作可减少将数据迁移到 Aurora 所需的时间和资源。

## 概述
<a name="USER_DMS_migration-overview"></a>

使用 Aurora 控制台，您可以将 EC2 上的数据库、本地数据库或其他云提供商数据库迁移到等效的 Aurora 数据库中。您必须创建 Aurora 数据库，才能从控制台进行迁移。

**注意**  
为了使这些数据库具有等效性，它们必须具有相同的数据库引擎和兼容的引擎版本。

此方法可用于以下数据库引擎：
+ MySQL
+ PostgreSQL

该迁移过程涉及到以下步骤：
+ 在 Aurora 中创建等效的数据库。然后，在源与目标之间建立合适的网络连接。对于同一区域、账户和 VPC 中的 EC2 实例，可以跳过网络设置步骤。有关更多信息，请参阅《AWS Database Migration Service 用户指南》**中的[设置网络](https://docs.aws.amazon.com/dms/latest/userguide/dm-network.html)。有关创建数据库的说明，请参阅 [创建 Amazon Aurora 数据库集群](Aurora.CreateInstance.md) 。
+ 选择数据库的复制类型：
  + **完全加载迁移** – Aurora 将完整的源数据库复制到目标数据库，并在必要时在目标中创建新表。
**注意**  
此选项要求停机。在迁移过程中，应用程序无法使用目标 Aurora 数据库。
  + **完全加载和更改数据捕获（CDC）迁移** – 与完全加载迁移类似，使用此选项，Aurora 会将完整的源数据库复制到目标数据库。但是，在完全加载迁移之后，Aurora 会将源中捕获的任何更改应用于目标数据库。更改数据捕获通过使用数据库引擎的本机 API 来收集对数据库日志的更改。
**注意**  
此选项要求停机。在迁移过程中，应用程序无法使用目标 Aurora 数据库。
  + **更改数据捕获（CDC）**– 使用此选项可使您的目标数据库在迁移过程中保持可用。Aurora 会将源数据库中正在进行的更改迁移到目标数据库。
+ Aurora 会创建必要的资源来推动迁移。Aurora 在创建所需资源后，会通知您已创建的资源并允许您启动数据传输。

  完成迁移所需的时间取决于复制的类型和源数据库的大小。

## 先决条件
<a name="USER_DMS_migration-Prerequisites"></a>
+ [设置网络](https://docs.aws.amazon.com/dms/latest/userguide/dm-network.html)（对于同一区域、账户和 VPC 中的 EC2，可以跳过此步骤）
+ 设置源数据库和目标数据库
  + **MySQL**

    对于源数据库，请遵循以下基本先决条件：
    + [将 MySQL 用作源](https://docs.aws.amazon.com/dms/latest/userguide/dm-data-providers-source-mysql.html)

    对于目标数据库，请遵循以下基本先决条件：
    + [将 MySQL 用作目标](https://docs.aws.amazon.com/dms/latest/userguide/dm-data-providers-target-mysql.html)

    此外，从 MySQL 源数据库迁移时，您的 Aurora 账户必须具有复制管理员角色。您还必须为该角色应用适当的权限。
  + **（PostgreSQL**）

    对于源数据库，请遵循以下先决条件：
    + [将 PostgreSQL 作为源](https://docs.aws.amazon.com/dms/latest/userguide/dm-data-providers-source-postgresql.html)

    对于目标数据库，请遵循以下先决条件：
    + [将 PostgreSQL 作为目标](https://docs.aws.amazon.com/dms/latest/userguide/dm-data-providers-target-postgresql.html)
**注意**  
一些 AWS DMS 事务在被 DMS 引擎再次使用之前会空闲一段时间。在 PostgreSQL 版本 9.6 及更高版本中使用参数 `idle_in_transaction_session_timeout`，能够导致空闲事务超时并失败。

## 限制
<a name="USER_DMS_migration-Limitations"></a>

以下限制适用于自动迁移过程：
+ 您的目标数据库状态必须为**可用**才能开始源数据库迁移。
+ 您只能将源数据库迁移到满足下列条件的数据库：
  + 不是以下任意数据库：
    + Aurora global database
    + Aurora Limitless database
    + Aurora Serverless v1
  + 使用支持的 MySQL 或 PostgreSQL 版本，如[此处](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.HomogeneousDataMigrations)所列
+ [DMS 的限制](https://docs.aws.amazon.com/dms/latest/userguide/data-migrations.html#data-migrations-limitations)

**注意**  
尽管基础 AWS DMS 工具在特定迁移场景中支持选择规则，但自动将数据库迁移到 Aurora 功能却不支持。