您可以使用多种方法之一将数据从您的本地 MongoDB 部署迁移到 Atlas。我们建议尽可能使用 Atlas 实时迁移,因为它可以自动化许多任务,停机时间最少,但您也可以使用其他工具,以适应数据库迁移固有的多样性和复杂性。
实时迁移概述
Atlas 实时迁移自动化地将数据从本地部署 MongoDB 数据库迁移到 Atlas。Atlas 实时迁移包括以下功能:
迁移主机始终对与 Atlas 集群之间的流量进行加密。传入、传出和 Atlas 节点之间的流量始终处于加密状态,并且无法禁用此功能。只有具有特定基于角色的访问控制 (RBAC) 数据库角色(例如
backup、readAnyDatabase或clusterMonitor)的用户和 Atlas 项目所有者可以启动实时迁移。用户使用 SCRAM-SHA-1 或 SCRAM-SHA-256 进行集群身份验证。实时迁移可自动完成大部分任务。对于完全托管的“拉取”方法,实时迁移会监控关键指标,预配迁移服务器,并严格按照顺序执行迁移命令。此外,您还可以选择要迁移到的 Atlas Destination 集群层配置。
详细指南可帮助您扩展目标集群,从而控制成本。建议包括适当的集群大小调整和临时扩展,然后在迁移后调整到最佳水平。
实时迁移在幕后使用Mongosync,从而通过并行数据复制实现快速切换。进程使用连续数据同步和最终切换阶段管理临时网络中断和集群选举,以实现最短停机时间。重试机制和迁移前验证增强了针对中断的韧性。
通过实时状态更新和通知来监控迁移。
实时迁移方法
您可以通过实时迁移服务器将数据导入 Atlas。拉取实时迁移方法支持特定 MongoDB 版本之间的迁移路径。要了解更多信息,请参阅支持的迁移路径。要从使用不受支持版本的 MongoDB 的数据库迁移数据,请参阅 旧版迁移 或 手动迁移方法。
将数据导入 Atlas。Atlas 会从源 MongoDB 部署拉取数据,并需要通过该部署的防火墙访问源端。当集群完全同步后,您必须遵循切换流程:停止源集群的写入操作,将应用程序重定向到 Atlas 集群,然后重新启动应用程序。以下注意事项适用:
最适合未被 Cloud Manager 或 Ops Manager 监控的部署。
源数据库必须可公开访问,以允许来自实时迁移服务器的入站访问。
源和目标集群拓扑结构必须匹配。例如,两者必须都是副本集,或都是具有相同分片数量的分片集群。
在切换期间规划最短停机时间,以停止写入并使用新的连接字符串重新启动应用程序。迁移过程会使目标集群处于 CPU 密集型负载状态,并且需要较大的网络带宽。
为确保迁移过程顺利进行,请确认源集群的 oplog 大小足以覆盖整个迁移的持续时间。对于源集群,实时迁移的延迟窗口应保持在 oplog 复制延迟窗口的范围内。您可以通过增加最小 oplog 窗口或增加固定 oplog 大小来满足此要求。对于目标集群,MongoDB 建议您在迁移期间选择比源集群至少高两个层级的目标集群规格。如果在目标集群上禁用了存储自动伸缩,请将目标集群上的 oplog 大小增加到足够高的固定值。如果目标集群启用了存储自动伸缩,请在目标集群上设置足够高的最小 oplog 窗口。请参阅 Oplog 要求以了解更多信息。
有关完整的迁移建议和说明,请参阅实时迁移(拉取)集群到 Atlas。
监控迁移
要查看正在进行的和过去的迁移,请导航至 Atlas 中的 Migration Hub 页面。
您可以点击每个迁移任务,查看更详细的信息,包括初始数据复制的预计时间和完整的进度报告。使用集群卡片来创建、切换或取消迁移。
要了解更多信息,请参阅监控迁移。
手动迁移方法
如果 Atlas 实时迁移无法满足您的迁移要求的限制,您可以使用在 Atlas 之外运行的以下工具之一,将现有 MongoDB 部署、JSON 或 CSV 文件中的数据导入 Atlas。
工具 | 说明 |
|---|---|
Mongosync 二进制文件是Atlas实时迁移使用的主节点 (primary node in the replica set)进程。您可以使用独立运行的 | |
从 MongoDB 副本集迁移到 Atlas 集群,无需关闭现有副本集或应用程序。mongomirror 不会导入用户/角色数据或复制 | |
使用从 mongodump 获取的现有 MongoDB 部署的 | |
将数据从 | |
使用GUI将数据从 |
您还可以从 Atlas 集群备份数据恢复到另一个 Atlas 集群。如需了解更多信息,请参阅恢复您的集群。
如果您需要使用 Atlas VNet 对等互连或 Private Link 配置,不希望允许第三方直接连接源集群,或者您尚未在 Ops Manager 或 Cloud Manager 中导入源集群(或不想导入),MongoDB 建议采用独立运行的 mongosync 方法。
如果您要迁移的数据集相对较小(<300 GB),并且能够接受应用程序长时间停机,那么 MongoDB 建议使用 mongodump 和 mongorestore 方法。
如果您要迁移的数据集相对较小(<300 GB),不存在索引问题,并且能够接受应用程序长时间停机,那么 MongoDB 建议使用 mongoexport 和 mongoimport 方法。
切换
当迁移达到“准备切换”状态时,单击 Cutover on target cluster,然后单击集群卡上的 Prepare to Cutover,以启动切换进程。切换成功完成后,请重新配置应用程序,使其连接到新的目标集群。
要了解更多信息,请参阅监控迁移。
后续步骤
请参阅 Atlas 组织、项目和集群指导页面,以了解 Atlas 企业资产的构建基块,或使用左侧导航查找每个 Well-Architected Framework 支柱的功能和最佳实践。