迁移手册:MongoDB 到亚马逊 DocumentDB - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

迁移手册:MongoDB 到亚马逊 DocumentDB

本迁移手册为您提供资源和步骤,帮助您从 MongoDB 数据库迁移到 Amazon DocumentDB。

迁移过程

下面列出了将数据从 MongoDB 数据库迁移到 Amazon DocumentDB 时通常涉及的高级步骤。

第 1 步:兼容性和功能差异

亚马逊 DocumentDB 与 Apache 2.0 开源 MongoDB 3.6、4.0 和 5.0 API 进行交互。因此,您可以在 Amazon DocumentDB 中使用相同的 MongoDB 驱动程序、应用程序和工具,只需很少或根本不做任何更改。

第一步是检查您的应用程序在 MongoDB 数据库上使用的运算符和索引之间的兼容性以及它们在 Amazon DocumentDB 中的可用性,并了解它们之间的功能差异。

运算符兼容性

使用 Amazon DocumentDB 兼容性工具 *可以轻松发现您的应用程序在其查询中是否使用了任何不受支持的运算符。此工具可以扫描您的 MongoDB 数据库服务器日志文件或应用程序源代码,以提供不支持的运算符的报告。如果您发现使用了不支持的运算符,则需要修改应用程序以解决不支持的运算符问题。

要检查您的设置中使用的 MongoDB 运算符与支持的亚马逊 DocumentDB 运算符之间的兼容性,请执行以下操作:

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/compat-tool/ python3 compat.py --version <Amazon DocumentDB version> --directory <mongodb logfiles/source code>

有关更多信息,请参阅 支持的 MongoDB API、操作和数据类型

* 未得到官方支持Amazon。

索引兼容性

您可以使用亚马逊 DocumentDB 索引工具 * 来了解您是否使用了亚马逊文档数据库不支持的任何索引类型。此工具需要连接到您的源数据库才能读取索引定义。

为此,您首先需要使用--dump-indexes选项将索引定义转储到目录中。然后使用--show-issues选项运行该工具,提供用于查找不兼容索引的目录。

导出索引:

git clone https://github.com/awslabs/amazon-documentdb-tools.git sudo pip install -r amazon-documentdb-tools/index-tool/requirements.txt mkdir <directory to dump index definitions> python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir <directory> --uri <source-mongodb-uri>

检查是否有不兼容的索引:

python3 migrationtools/documentdb_index_tool.py --show-issues --dir <dumped-index-definitions-directory>

如果您发现使用了任何不支持的索引类型,则必须修改应用程序或数据模型以解决或继续使用不兼容的索引。

有关 Amazon DocumentDB 中支持的索引类型和属性的更多信息,请参阅索引和索引属性如何在 Amazon DocumentDB 上建立索引

* 未得到官方支持Amazon。

功能差异

查看与 MongoDB 之间的功能差异以熟悉其中的差异。

第 2 步:概念验证

通过在 Amazon DocumentDB 上运行您的应用程序或常规测试套件来进行概念验证,以测试功能和性能。您可能需要使用数据填充您的 Amazon DocumentDB 集群才能执行测试。例如,您可以使用mongodumpmongorestore工具从源 MongoDB 复制数据。

功能测试

创建 Amazon DocumentDB 集群(参见创建亚马逊文档数据库集群)并运行您的应用程序或功能测试套件,以验证所有应用程序工作流程是否都能在 Amazon DocumentDB 上继续无缝运行。

性能测试

在 Amazon DocumentDB 上运行的应用程序或性能测试套件上运行性能测试,其工作负载与您的生产工作负载类似,以查看设置是否满足您的延迟要求。调整您的工作负载以提高性能,或者根据需要扩展您的 Amazon DocumentDB 集群。有关更多信息,请参阅 性能和资源利用率扩展 Amazon DocumentDB 集群

为了获得最佳性能,请务必使用正确的实例类型来调整您的 Amazon DocumentDB 集群的大小。有关更多信息,请参阅的最佳实践调整实例大小

您可以使用亚马逊 DocumentDB 规模计算器 *来帮助您估算亚马逊文档数据库集群的大小。

* 未得到官方支持Amazon。

故障转移测试

您可能需要观察您的应用程序如何响应 Amazon DocumentDB 主节点重启、主节点故障转移或多节点集群中的主节点删除,以及副本节点何时重新启动或移除。这将帮助您确认您的应用程序是否能够抵御这些事件。有关更多信息,请参阅 测试故障转移

要了解应用程序应容忍的异常情况以及如何有效地处理这些异常,请参阅使用 Amazon DocumentDB 构建弹性应用程序

注意

除了在 Amazon DocumentDB 上测试您的工作负载之外,别无选择

步骤 3:迁移数据

成功验证概念后,将您的数据迁移到亚马逊 DocumentDB。我们的大多数客户都使用在线或离线迁移方法来迁移数据。

在线迁移

使用在线迁移方法,您可以将源数据库中的数据(从几千兆字节到数 TB 不等)迁移到 Amazon DocumentDB,停机时间几乎为零。有关更多信息,请参阅 Amazon Database Migration Service (Amazon DMS)

如果要从 MongoDB 数据库迁移,则Amazon DMS可以使用满负荷并复制正在进行的更改。

有关 step-by-step 流程,请参阅使用在线方法迁移到 Amazon DocumentDB

其他信息可以在Amazon Database Migration Service用户指南的 “使用亚马逊文档数据库作为目标 Amazon Database Migration Service” 部分中找到。

需要注意的几点Amazon DMS:

  • 分段:使用迁移多 TB 的数据库时Amazon DMS,使用默认设置可能会很慢,因为默认情况下,DMS 的满负荷每个集合都是单线程的,因此迁移时间会更长。要加快大型数据库迁移的满负荷速度,您可以使用中的Amazon DMS分段功能。

    有关如何使用分段的更多详细信息Amazon DMS,请参阅使用自动分段Amazon DMS

  • DMS 实例类型:为了加快数据迁移速度,您需要选择合适的 DMS 实例。

离线迁移

离线迁移是将数据库迁移到 Amazon DocumentDB 的最直接方法。这种方法主要用于 POC 和迁移期间写入停机的工作负载。

有关 step-by-step 流程,请参阅使用离线方法从 MongoDB 迁移到亚马逊 DocumentDB

步骤 4:数据验证

成功迁移数据后,请验证数据的正确性以获得信心。在Amazon DMS迁移任务控制台上,您可以找到迁移的数据指标。有关更多信息,请参阅验证迁移的数据

您也可以使用 Amazon DocumentDB DataDiffer 工具 *来验证源馆藏和目标馆藏之间的数据一致性。

* 未得到官方支持Amazon。

第 5 步:应用程序切换

这涉及更改应用程序的数据库连接字符串以使用您的 Amazon DocumentDB 集群。

有关连接至亚马逊 DocumentDB 的更多信息,请参阅。作为副本集连接到 Amazon DocumentDB

在线迁移

完整数据加载完成后,Amazon DMS继续将正在进行的更改从您的源代码复制到 Amazon DocumentDB。完成更改并完成数据验证检查后,您可以直接转换到 Amazon DocumentDB。

离线迁移

完成完整数据加载和数据验证检查后,您就可以直接转换到 Amazon DocumentDB 了。

其他资源

以下是一些可以帮助您迁移的其他资源:

* 未得到官方支持Amazon。