

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

# 将关系数据库迁移到 MongoDB Atlas AWS
<a name="migrate-relational-database-to-mongodb-atlas"></a>

*Battulga Purevragchaa 和 Igor Alekseev，Amazon Web Services*

*Babu Srinivasan，MongoDB*

## Summary
<a name="migrate-relational-database-to-mongodb-atlas-summary"></a>

此模式描述了如何从 SQL Server、MySQL、PostgreSQL 等关系数据库迁移到 AWS 云中的 MongoDB Atlas。它使用 [MongoDB Relational Migrator](https://www.mongodb.com/products/relational-migrator) 来帮助加速从关系数据库到 MongoDB Atlas 的数据迁移。

该模式与规范性指导网站上的《[迁移到 MongoDB Atlas AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/)》 AWS 指南一起出现。其中提供了适用于该指南中讨论的其中一个迁移场景的实施步骤。有关其他迁移方案，请参阅 AWS 规范性指导网站上的以下模式：
+ [将自托管 MongoDB 环境迁移到 MongoDB Atlas AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-self-hosted-mongodb-environment-to-mongodb-atlas-on-the-aws-cloud.html)
+ [将数据从 IBM Db2、SAP、Sybase 和其他数据库流式传输到 MongoDB Atlas AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/stream-data-from-ibm-db2-to-mongodb-atlas.html)

该模式适用于 [AWS 系统集成商 (SI) 合作伙伴](https://aws.amazon.com/managed-services/partners/)和 AWS 用户。

## 先决条件和限制
<a name="migrate-relational-database-to-mongodb-atlas-prereqs"></a>

**先决条件**
+ 要迁移到 MongoDB Atlas 的源关系数据库（Oracle 数据库、SQL Server、Postgre SAP/Sybase SQL、MySQL、ASE 等）。
+ 熟悉关系数据库、MongoDB Atlas 和。 AWS 服务此模式从宏观层面阐述了部分迁移步骤。更多细节将在后续版本中添加。

**产品版本**
+ MongoDB 版本 5.0 或更高版本

## 架构
<a name="migrate-relational-database-to-mongodb-atlas-architecture"></a>

下图显示了如何从关系数据库管理系统（RDBMS）数据库迁移到 AWS上的 MongoDB Atlas。

![\[从 RDBMS 迁移到 AWS 上的 MongoDB Atlas 的架构。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/4e3ea0f1-21e8-4641-a9ee-732355f20baf/images/8eacf3ec-f480-4912-9002-6a50800fe9bf.png)


有关支持不同使用场景的 MongoDB Atlas 参考架构，请参阅规范性指南网站上的[迁移到 MongoDB](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/architecture.html) Atlas。 AWS AWS 

## 工具
<a name="migrate-relational-database-to-mongodb-atlas-tools"></a>
+ [MongoDB](https://www.mongodb.com/atlas) Atlas 是一种完全托管的数据库即服务，用于在DBaa云中部署和管理 MongoDB 数据库。
+ [MongoDB Relational Migrator](https://www.mongodb.com/products/relational-migrator) 可将数据从传统关系数据库顺畅迁移到 MongoDB。它可帮助实现转换过程的自动化，并将关系数据库的结构化数据模型转换为 MongoDB 提供的灵活文档格式。Relational Migrator 保留了数据的完整性和关系，以简化迁移。组织既能利用 MongoDB 提供的可扩展性、高性能和多功能性优势，又能保留对现有数据的熟悉度。

## 最佳实践
<a name="migrate-relational-database-to-mongodb-atlas-best-practices"></a>

有关在 AWS上使用 MongoDB 的最佳实践，请参阅合作伙伴网络博客[AWS 上的](https://aws.amazon.com/blogs/apn/tag/mongodb-atlas/)帖子。

## 操作说明
<a name="migrate-relational-database-to-mongodb-atlas-epics"></a>

### 发现与评测
<a name="discovery-and-assessment"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 确定关系数据库的参数和大小。 | 使用 Relational Migrator 的建议以及 `db.stats()` 提供的总索引空间信息来估算工作集的大小。假设您的数据空间中有一定比例会被频繁访问。此任务大约需要一周时间。有关此场景以及此操作说明中其他场景的详细信息和示例，请参阅[相关资源](#migrate-relational-database-to-mongodb-atlas-resources)部分。 | 应用程序所有者，数据库管理员 | 
| 估计网络带宽要求。 | 要估计网络带宽要求，请将平均文档大小乘以每秒提供的文档数量。考虑集群中任何节点将承受的最大流量作为基础。要计算从集群到客户端应用程序的下游数据传输速率，请使用一段时间内返回的文档总数的总和。如果您的应用程序从辅助节点读取数据，请将文档总数除以可以提供读取操作的节点数。要查找数据库的平均文档大小，请使用 `db.stats().avgObjSize` 命令。此任务通常需要一天的时间。 | 数据库管理员 | 
| 选择 Atlas 层。 | 按照 [MongoDB 文档](https://www.mongodb.com/docs/atlas/sizing-tier-selection/)中的说明选择正确的 Atlas 集群层。 | 数据库管理员 | 
| 制定割接计划。 | 制定应用程序割接计划。 | 数据库管理员、应用程序所有者 | 

### 在上设置新的 MongoDB Atlas 环境 AWS
<a name="set-up-a-new-mongodb-atlas-environment-on-aws"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在上创建新的 MongoDB Atlas 集群。 AWS | 在 MongoDB Atlas 中，选择**构建集群**。在 “**创建新集群**” 对话框中，选择 AWS 作为云提供商。 | 数据库管理员 | 
| 选择 AWS 区域 和全局群集配置。 | 从适用于您的 Atlas 集群 AWS 区域 的列表中进行选择。如果需要，请配置全局集群。 | 数据库管理员 | 
| 选择集群层。 | 选择您的首选集群层。您的层选择决定了内存、存储和 IOPS 规格等因素。 | 数据库管理员 | 
| 配置其他集群设置。 | 配置其他集群设置，例如 MongoDB 版本、备份和加密选项。有关这些选项的更多信息，请参阅[相关资源](#migrate-relational-database-to-mongodb-atlas-resources)部分。 | 数据库管理员 | 

### 配置安全性和合规性
<a name="configure-security-and-compliance"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 配置访问列表。 | 要连接到 Atlas 集群，您必须在项目的访问列表中添加一个条目。Atlas TLS/SSL 用于加密数据库与虚拟私有云 (VPC) 的连接。若要设置项目的访问列表以及有关此操作说明中的场景的详细信息，请参阅[相关资源](#migrate-relational-database-to-mongodb-atlas-resources)部分。 | 数据库管理员 | 
| 对用户进行身份验证和授权。 | 您必须创建并验证将访问 MongoDB Atlas 集群的数据库用户。要访问项目中的集群，用户必须属于该项目，并且可以属于多个项目。 | 数据库管理员 | 
| 创建自定义角色。 | （可选）Atlas 支持在内置的 Atlas 数据库用户权限未涵盖所需权限集的情况下创建自定义角色。 | 数据库管理员 | 
| 设置 VPC 对等连接。 | （可选）Atlas 支持与其他[开启的 VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) VPCs 对等。 AWS | AWS 管理员 | 
| 设置 AWS PrivateLink 终端节点。 | （可选）您可以使用在上 AWS 设置私有终端节点 AWS PrivateLink。有关更多信息，请参阅 [Amazon VPC 文档](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)。 | AWS 管理员 | 
| 启用双因素身份验证。 | （可选）Atlas 支持双因素身份验证 (2FA)，以帮助用户控制对其 Atlas 账户的访问。 | AWS 管理员 | 
| 使用 LDAP 设置用户身份验证和授权。 | （可选）Atlas支持使用轻量级目录访问协议 (LDAP) 执行用户身份验证和授权。 | 数据库管理员 | 
| 设置统一 AWS 接入。 | （可选）某些 Atlas 功能（包括 Atlas Data Lake 和使用客户密钥管理进行静态加密）使用 AWS Identity and Access Management (IAM) 角色进行身份验证。 | AWS 管理员 | 
| 使用设置静态加密 AWS KMS。 | （可选）Atlas 支持使用 AWS Key Management Service (AWS KMS) 加密存储引擎和云提供商备份。 | AWS 管理员 | 
| 设置客户端字段级加密。 | （可选）Atlas 支持客户端字段级加密，包括字段的自动加密。 | AWS 管理员 | 

### 迁移数据
<a name="migrate-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将 MongoDB Relational Migrator 添加到访问列表中。 | 将 Relational Migrator 添加到源数据库的访问列表。这有助于准备源环境以连接到目标 Atlas 集群。 | 数据库管理员 | 
| 评估关系数据库对象。 | 启动 MongoDB Relational Migrator 并连接到您的关系数据库。开始评估。 | 数据库管理员 | 
| 接受迁移模式或选择根据业务需求对其进行更改。 | 接受 Relational Migrator 根据初始评估和性能参数推荐的数据库模式，或者选择根据您的业务需求对其进行更改。 | 数据库管理员 | 
| 在 MongoDB Atlas 中启动目标副本集。 | 在 MongoDB Atlas 中启动目标副本集。在 Relational Migrator 中，选择**我已准备好迁移**。 | 数据库管理员 | 

### 配置操作集成
<a name="configure-operational-integration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 连接到 MongoDB Atlas 集群。 | 确保 MongoDB Atlas 集群连接按预期运行。 | 应用程序所有者 | 
| 与集群数据交互。 | 验证集群数据。 | 数据库管理员 | 
| 监控您的集群。 | 验证集群设置是否正确。 | 数据库管理员 | 
| 备份和恢复集群数据。 | 为集群数据安排定期备份计划。 | 数据库管理员 | 

## 相关的资源
<a name="migrate-relational-database-to-mongodb-atlas-resources"></a>

除非另有说明，否则以下所有链接均指向 MongoDB 文档中的网页。

**迁移指南**
+ [在（规范性指南）上迁移到 MongoDB Atla AWS s](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-mongodb-atlas/)AWS 

**发现与评测**
+ [内存](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory)
+ [使用 Atlas 示例数据集进行大小调整示例](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets)
+ [移动应用程序的大小调整示例](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app)
+ [网络流量](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic)
+ [集群自动扩缩](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling)
+ [Atlas 大小调整模板](https://view.highspot.com/viewer/5f438f47a4dfa042e97130c5)

**配置安全性和合规性**
+ [配置 IP 访问列表条目](https://docs.atlas.mongodb.com/security/ip-access-list/)
+ [配置数据库用户](https://docs.atlas.mongodb.com/security-add-mongodb-users/)
+ [配置对 Atlas UI 的访问权限](https://docs.atlas.mongodb.com/organizations-projects/)
+ [配置自定义数据库角色](https://docs.atlas.mongodb.com/security-add-mongodb-roles)
+ [配置数据库用户](https://docs.atlas.mongodb.com/security-add-mongodb-users/#atlas-user-privileges)
+ [设置网络对等连接](https://docs.atlas.mongodb.com/security-vpc-peering/)
+ [了解 Atlas 中的私有端点](https://docs.atlas.mongodb.com/security-private-endpoint/)
+ [管理多重身份验证选项](https://docs.atlas.mongodb.com/security-two-factor-authentication/)
+ [使用 LDAP 设置用户身份验证和授权](https://docs.atlas.mongodb.com/security-ldaps/)
+ [Atlas 数据湖](https://docs.mongodb.com/datalake/)
+ [使用客户密钥管理进行静态加密](https://docs.atlas.mongodb.com/security-kms-encryption/)
+ [承担角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)（IAM 文档）
+ [客户端字段级加密](https://docs.mongodb.com/manual/core/security-client-side-encryption)
+ [自动加密](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) 
+ [MongoDB Atlas 安全控制](https://webassets.mongodb.com/_com_assets/cms/MongoDB_Atlas_Security_Controls-v7k3rbhi3p.pdf)
+ [MongoDB 信任中心](https://www.mongodb.com/cloud/trust)
+ [为集群配置安全功能](https://docs.atlas.mongodb.com/setup-cluster-security/)

**在 **AWS** 上设置新的 MongoDB Atlas 环境**
+ [云提供商和地区](https://docs.atlas.mongodb.com/cloud-providers-regions/)
+ [管理全局集群](https://docs.atlas.mongodb.com/global-clusters/)
+ [选择集群层级](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier)
+ [配置其他设置](https://docs.atlas.mongodb.com/cluster-additional-settings/)
+ [开始使用 Atlas](https://docs.atlas.mongodb.com/getting-started/)
+ [配置对 Atlas UI 的访问权限](https://docs.atlas.mongodb.com/organizations-projects/)

**迁移数据**
+ [迁移或导入数据](https://www.mongodb.com/docs/atlas/import/)

**监控集群**
+ [监控您的集群](https://docs.atlas.mongodb.com/monitoring-alerts/)

**集成操作**
+ [连接到集群](https://docs.atlas.mongodb.com/connect-to-cluster/)
+ [与您的数据交互](https://docs.atlas.mongodb.com/data-explorer/)
+ [监控您的集群](https://docs.atlas.mongodb.com/monitoring-alerts/)
+ [备份、恢复和存档数据](https://docs.atlas.mongodb.com/backup-restore-cluster/)