适用对象:
Mongodb
重要
你是否正在寻找一种数据库解决方案,以应对需要高扩展性、99.999% 可用性服务级别协议(SLA)、即时自动扩展和跨多个区域的自动故障转移的场景? 请考虑使用 Azure Cosmos DB for NoSQL。
重要
在执行迁移后步骤之前,请阅读此整个指南。
此 MongoDB 迁移后指南是有关 MongoDB 迁移的系列教程的一部分。 关键的 MongoDB 迁移步骤是 迁移前、迁移和迁移后,如下图所示。
迁移后概述
将存储在 MongoDB 数据库中的数据迁移到用于 MongoDB 的 Azure Cosmos DB API 后,可以连接到Azure Cosmos DB和管理数据。 本指南提供迁移后要考虑的步骤。 有关迁移步骤,请参阅将 MongoDB 迁移到 Azure Cosmos DB API for MongoDB 教程。
按照以下步骤执行迁移后操作。
注释
唯一必需执行的迁移后步骤是将应用程序中的连接字符串更改为指向新的 Azure Cosmos DB 帐户。 所有其他迁移后步骤都是推荐优化步骤,以提高数据层性能。 但是,如果在没有其他步骤的情况下立即执行应用程序直接转换,则应用程序将立即受到非最佳索引和一致性的影响。 具体而言,如果您在配置索引之前就完成切换,可能会立即看到性价比下降。 可以解决此问题:优化索引后,Azure Cosmos DB通常优于价格/性能的现状解决方案。
先决条件
本指南假定你使用某种跟踪项目(如电子表格)来维护迁移进度的记录。 如果尚未这样做,建议阅读 迁移前指南 ,获取有关生成 数据资产迁移电子表格、发现现有 MongoDB 资源以及规划迁移的指导。
优化索引策略
为了优化价格和性能,建议逐步完成数据资产迁移电子表格,并为每个资源设计索引配置。
- 我们建议您在迁移前规划索引。 将一列添加到您的数据资产迁移电子表格以用于索引设置。
适用于 MongoDB 的 Azure Cosmos DB 服务器版本 3.6 及更高版本只会自动为 _id 字段创建索引。 无法删除此字段。 它会自动强制确保每个分片密钥的 _id 字段的唯一性。 若要为其他字段编制索引,请应用 MongoDB 索引管理命令。 此默认索引策略不同于 Azure Cosmos DB for NoSQL,后者默认情况下会索引所有字段。
对于 MongoDB 服务器版本 3.2 Azure Cosmos DB,默认情况下,在将数据迁移到Azure Cosmos DB期间,所有数据字段都会自动编制索引。 在许多情况下,此默认索引策略是可接受的。 通常,删除索引可优化写入请求,并具有默认索引策略(即自动索引)可优化读取请求。
Azure Cosmos DB提供的索引功能包括添加复合索引、唯一索引和生存时间(TTL)索引。 索引管理接口映射到 createIndex() 命令。 若要了解详细信息,请参阅 Azure Cosmos DB 中的索引编制 和 Azure Cosmos DB API for MongoDB 中的索引编制。
- 在迁移后应用这些索引设置。
- Azure 数据库迁移服务自动迁移具有唯一索引的 MongoDB 集合。 但是,在迁移之前,必须创建唯一索引。 Azure Cosmos DB不支持在集合中已有数据时创建唯一索引。 有关详细信息,请参阅 Azure Cosmos DB 中的唯一键。
全球分发您的数据
Azure Cosmos DB 面向中国的所有 Azure 区域提供。
- 按照用于 MongoDB 的 Azure Cosmos DB API 上的多区域分发数据以多区域方式分发数据的指南进行操作。 为 Azure Cosmos DB 帐户选择默认一致性级别后,可以关联一个或多个 Azure 区域(具体取决于多区域分发需求)。 若要实现高可用性和业务连续性,请至少在两个区域中运行。 可以查看有关 Azure Cosmos DB 中多区域部署的优化成本的提示。
设置一致性级别
Azure Cosmos DB提供五个定义完善的一致性级别。 若要了解 MongoDB 与Azure Cosmos DB一致性级别之间的映射,请参阅一致性级别和Azure Cosmos DB API。 默认一致性级别是会话一致性级别。 更改一致性级别是可选操作,可为应用优化一致性级别。 若要使用 Azure 门户更改一致性级别,请执行以下操作:
- 转到“设置”中的“默认一致性”面板。
- 选择 一致性级别。
大多数用户会将其一致性级别保留为默认的会话一致性设置。 但是,不同一致性级别的可用性和性能各有利弊。
连接或切换你的应用
通过剪切或连接应用程序的过程,可以在迁移完成后切换应用程序以使用Azure Cosmos DB。 执行以下步骤:
- 在新窗口中登录到 Azure 门户
- 在Azure门户中,打开左窗格中的“所有资源”菜单,找到已将数据迁移到的Azure Cosmos DB帐户。
- 打开“连接字符串”边栏选项卡。 右窗格包含成功连接到帐户所需的所有信息。
- 使用应用程序配置(或其他相关位置)中的连接信息来反映应用中用于 MongoDB 连接的Azure Cosmos DB API。
有关详细信息,请参阅将 MongoDB 应用程序连接到Azure Cosmos DB。
调整以实现最佳性能
可以轻松配置和重新配置 索引、 多区域分布和 一致性 设置。 完成应用程序切换后,请监控其性能,并根据需要调整这些设置,以满足应用需求。
后续步骤
- 尝试为迁移到 Azure Cosmos DB 进行容量规划?
- 如果仅知道现有数据库群集中的 vcore 数和服务器数,请阅读有关使用 vCore 或 vCPU 估算请求单位的信息
- 如果您知道当前数据库工作负荷的典型请求速率,请阅读有关使用 Azure Cosmos DB 容量规划工具来估计请求单位的文章
- 将 MongoDB 应用程序连接到 Azure Cosmos DB
- 使用 Studio 3T 连接到 Azure Cosmos DB 帐户
- 如何使用 Azure Cosmos DB 的用于 MongoDB 的 API 跨区域分发读取
- 利用适用于 MongoDB 的 Azure Cosmos DB API 设置数据过期
- Azure Cosmos DB 中的一致性级别
- Azure Cosmos DB 中的索引
- Azure Cosmos DB 中的请求单位