Azure Cosmos DB for MongoDB 迁移扩展可帮助将 MongoDB 工作负载迁移到 Azure Cosmos DB。 本文解答有关迁移扩展的常见问题。
如果“运行验证”步骤失败,如何运行评估?
请参考扩展上显示的错误,了解验证失败的原因。 通常的问题是无法连接到 MongoDB 端点。 问题还有可能是用户没有足够权限在连接的服务器上运行评估。
应为连接到 MongoDb 的用户分配在源实例的 readAnyDatabase
和 clusterMonitor
角色才能运行评估。
使用 grantRolesToUser
为当前的已连接用户配置合适的角色。
如何在“功能兼容性”类别中查看评估的集合名称和数据库名称?
评估使用“serverStatus
”命令来执行功能兼容性评估。 由于此命令不提供数据库或集合名称的详细信息,因此扩展无法报告资源名称。
通过在“日志文件夹路径”字段中提供包含 MongoDB 探查器日志的文件夹路径来重新运行评估,以获取更精细的评估详细信息。
如何收集日志消息?
可在以下路径找到日志文件:/var/log/mongodb/mongodb.log
。 如果未找到日志文件,请检查 MongoDB 配置文件中的位置。
有关详细信息,请参阅 MongoDB 日志消息。
迁移开始后,为什么看不到被迁移文档的确切计数,而是给我一个估算值?
为了减少迁移期间源的资源利用率,扩展会估计要从源移动到目标的每个集合中的文档数,而不是检索确切计数。
为什么集合映射步骤中缺少或禁用某些集合?
基于 vCore 的 Azure Cosmos DB for MongoDB 不支持时序或群集集合。 因此,集合映射步骤中缺少或者禁用这些类型的集合。
基于 vCore 的 Azure Cosmos DB for MongoDB 明明支持视图,为什么集合映射步骤中缺少或禁用视图?
基于 vCore 的 Azure Cosmos DB for MongoDB 支持创建新视图。 但是,迁移扩展不支持迁移现有视图。
迁移完成后,始终可以重新创建视图。
迁移后,应在目标帐户中使用多少存储?
基于 vCore 的 Azure Cosmos DB for MongoDB 不会压缩磁盘上的数据。 典型的粗略估计是将源 MongoDB 实例上的集合使用的存储大小加倍,以估计基于 vCore 的 Azure Cosmos DB for MongoDB 目标帐户中的存储。
从 MongoDB 迁移到基于 vCore 的 Azure Cosmos DB for MongoDB 时,会跳过哪些集合和数据库?
以下数据库和集合被视为 MongoDB 的内部数据库:
资源 | |
---|---|
数据库 | .'. . |
集合 | 任何前缀为“system ”的集合。 |
由于基于 vCore 的 Azure Cosmos DB for MongoDB 中不需要内部数据库和集合,因此扩展不会启用这些数据库的迁移。
是否可以迁移名称以数字开头的数据库和集合?
这是一个已知问题。 迁移不支持名称以数字开头的数据库和集合。
如果选择多个集合进行迁移,是否会并行进行?
Azure 数据库迁移服务中的每个迁移任务都提供两列用于迁移的列车。 每个列车在任意时间点迁移一个集合。 因此,通常会并行迁移两个集合。 完成集合迁移后,会自动选取下一个集合。 如果有许多集合要迁移,则创建多个迁移任务。 每个任务都应有一定范围的集合数,以帮助提高迁移效率。
可以在单个迁移中迁移多少个数据库和集合?
单个迁移中可以包含的数据库和集合没有数量限制。 但是,在 Azure 数据库迁移服务上创建迁移任务时,会将所选集合每 50 个为一组,拆分为成多个批次。 如果集合数量很多,会在迁移列表中看到多个迁移任务。
应该如何规划要迁移的集合的顺序和数量?
选择要迁移的多个集合时,无法配置集合的迁移顺序。 如果要控制迁移顺序,请根据所需顺序分为较少的批次进行迁移。 为获得最佳性能,请避免在批处理中将较大的集合与较小的集合组合在一起。
如何配置基于 vCore 的 Azure Cosmos DB for MongoDB 和 MongoDB 防火墙以避免出现连接问题?
将防火墙例外添加到基于 vCore 的 Azure Cosmos DB for MongoDB 目标帐户,以接受来自全局 Azure 数据中心的连接。 有关详细信息,请参阅 Azure Cosmos DB 防火墙配置。
如何配置源服务器防火墙以避免连接问题?
将源 MongoDB 实例配置为允许来自全局 Azure 数据中心的连接。 有关详细信息,请参阅全局 Azure IP 地址范围。
警告
该扩展不支持启用专用终结点的源或目标 MongoDB 实例。 该扩展不支持 Azure 数据库迁移服务的自承载集成运行时。
迁移作业是否在计算机上本地运行?
使用本地 Azure Data Studio 客户端中的命令直接创建数据库、集合和索引。 此功能需要在运行 Azure Data Studio 的客户端与源环境和目标环境之间建立连接。
数据迁移任务在 Azure 数据库迁移服务上运行。 迁移服务是一个 Azure 服务实例,用于协调和执行数据迁移活动。 创建数据迁移任务后,无需连接到源环境和目标环境。
可以同时运行多少个迁移?
可以同时创建的迁移数量没有限制。
是否可以在迁移期间重命名数据库和集合?
该扩展不支持在迁移过程中对数据库和集合进行重命名。
是否可以通过多个迁移迭代迁移集合?
可以创建多个迁移作业,每个作业的集合数量有限。 此方法是优化迁移速度的最佳做法。
评估报告中包括哪些内容?
报告的初始部分包含评估运行的关键详细信息,包括源 MongoDB 环境的摘要。 详细信息包括源 MongoDB 版本、许可证类型和实例类型。 这部分中还包含已评估的数据库和集合的列表,以及各自的评估摘要和迁移就绪情况。
调查结果分为“严重”、“警告”和“信息”三个类别。 这些类别有助于根据结果的重要性确定结果的优先级。
评估检查包括:
说明 | |
---|---|
集合选项 | 与不支持的集合设置相关的结果。 示例包括时序和排序规则。 |
功能 | 与不支持的数据库命令、查询语法或运算符(包括聚合管道查询)相关的结果。 在“其他详细信息”列中,你将能够看到特定功能在源终结点上的使用频率。 |
限制和配额 | 与基于 vCore 的 Azure Cosmos DB for MongoDB 特定配额和限制相关的结果。 |
索引 | 与不受支持的 MongoDB 索引类型或属性相关的结果。 |
分片键 | 与不支持的分片键配置相关的结果。 |
扩展创建的日志类型是什么?
该扩展将错误、警告和其他诊断日志存储在默认日志目录中:
- Windows -
C:\Users\<username>\.dmamongo\logs\
- Linux -
~/.dmamongo/logs
- macOS -
/Users/<username>/.dmamongo/logs
注意
每天都会创建一个单独的日志文件。 默认情况下,该扩展会存储最后 7 个日志文件。