本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
迁移行动手册:从 MongoDB 迁移到 Amazon DocumentDB
本迁移行动手册提供相应资源和步骤,帮助您从 MongoDB 数据库迁移到 Amazon DocumentDB。
迁移过程
下面列出了数据从 MongoDB 数据库迁移到 Amazon DocumentDB 时通常涉及的概括步骤。
步骤 1:兼容性和功能差异
亚马逊 DocumentDB 与 Apache 2.0 开源 MongoDB 3.6、4.0 和 5.0 进行交互。 APIs因此,您可以在 Amazon DocumentDB 中使用相同的 MongoDB 驱动程序、应用程序和工具,只需很少更改或不做任何更改。
第一步是检查应用程序在 MongoDB 数据库上使用的运算符和索引的兼容性以及其在 Amazon DocumentDB 中的可用性,并了解它们之间的功能差异。
运算符兼容性
使用 Amazon DocumentDB 兼容性工具
要检查设置中使用的 MongoDB 运算符与支持的Amazon 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>
有关更多信息,请参阅 在 Amazon Document APIs DB 中支持 MongoDB、操作和数据类型。
* 非 Amazon官方支持。
索引兼容性
您可以使用 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 集群中填充数据来执行测试。例如,您可以使用 mongodump
和 mongorestore
工具从源 MongoDB 复制数据。
功能测试
创建 Amazon DocumentDB 集群(请参阅 创建 Amazon DocumentDB 集群)并运行应用程序或功能测试套件,验证是否所有应用程序工作流都能在 Amazon DocumentDB 上继续无缝运行。
性能测试
以类似于生产工作负载的工作负载,对 Amazon DocumentDB 上运行的应用程序或性能测试套件进行性能测试,以查看设置是否满足延迟要求。微调工作负载以提高性能,或视情况扩展 Amazon DocumentDB 集群。有关更多信息,请参阅性能和资源利用率 和扩展 Amazon DocumentDB 集群。
请务必使用正确的实例类型来调整 Amazon DocumentDB 集群的大小,以获得最佳的性能。有关更多信息,请参阅 实例大小调整 的最佳实践。
可以使用 Amazon DocumentDB 调整大小计算器
* 非 Amazon官方支持。
失效转移测试
您可能需要观察应用程序如何响应 Amazon DocumentDB 主节点重启、主节点失效转移或多节点集群中的主节点删除,以及副本节点何时重启或被移除。这有助于您确认应用程序对这些事件的弹性。有关更多信息,请参阅 测试故障转移。
要了解应用程序应容忍的异常以及如何有效处理这些异常,请参阅使用 Amazon DocumentDB 构建弹性应用程序
注意
没有方法可以替代在 Amazon DocumentDB 上测试工作负载。
步骤 3:迁移数据
成功进行概念验证后,请将数据迁移到 Amazon DocumentDB。我们的大多数客户使用在线或离线迁移方法来迁移其数据。
在线迁移
使用在线迁移方法,您可以将源数据库中几 GB 到数 TB 的数据迁移到 Amazon DocumentDB,停机时间几乎为零。有关更多信息,请参阅 Amazon Database Migration Service (Amazon DMS)
如果要从 MongoDB 数据库迁移,则 Amazon DMS 可以使用满负荷并复制正在进行的更改。
有关 step-by-step流程,请参阅使用在线方法迁移到 Amazon DocumentDB
其他信息可参见《Amazon Database Migration Service 用户指南》中的使用 Amazon DocumentDB 作为 Amazon Database Migration Service的目标部分。
需要注意的几点 Amazon DMS:
分段:使用迁移多 TB 的数据库时 Amazon DMS,使用默认设置可能会很慢,因为默认情况下,DMS 的满负荷每个集合都是单线程的,因此迁移时间会更长。要加快大型数据库迁移的完全加载速度,可以使用 Amazon DMS中的分段功能。
有关如何使用分段的更多详细信息 Amazon DMS,请参阅使用自动分段 Amazon DMS。
-
DMS 实例类型:要加快数据迁移速度,需要选择合适的 DMS 实例。
离线迁移
离线迁移是数据库迁移至 Amazon DocumentDB 的最直接方法。这种方法主要用于 POCs 和用于迁移期间可能导致写入停机的工作负载。
有关 step-by-step流程,请参阅使用离线方法从 MongoDB 迁移到亚马逊 DocumentDB
步骤 4:数据验证
数据成功迁移后,请验证数据的正确性以提高可信度。在 Amazon DMS 迁移任务控制台上,您可以找到迁移的数据指标。有关更多信息,请参阅验证迁移数据
您也可以使用 Amazon DocumentDB DataDiffer 工具
* 非 Amazon官方支持。
步骤 5:应用程序割接
这涉及更改应用程序的数据库连接字符串,以使用 Amazon DocumentDB 集群。
有关连接到 Amazon DocumentDB 的更多信息,请参阅 作为副本集连接到 Amazon DocumentDB。
在线迁移
完整数据加载完成后, Amazon DMS 继续将正在进行的更改从您的源代码复制到 Amazon DocumentDB。完成更改和数据验证检查后,就可以割接到 Amazon DocumentDB。
离线迁移
完成整个数据加载和数据验证检查后,就可以割接到 Amazon DocumentDB。
其他资源
以下是一些可能有助于迁移的额外资源:
-
其他实用程序:Amazon DocumentDB 工具
* -
迁移开发者指南:迁移到 Amazon DocumentDB
* 非 Amazon官方支持。