首页 > 解决方案 > 将 Cosmos DB 模拟器 (MongoDB API) 迁移到 Azure 时出现致命错误

问题描述

我在将 Cosmos DB 模拟器中托管的 localhost Cosmos DB 数据库迁移到 Azure 上的在线 Cosmos DB 实例时遇到了很多问题。我已经使用微软的数据迁移工具上传当前数据库,转换为 JSON 文件,到存储帐户,并使用数据迁移服务将数据从存储帐户拉到 Cosmos DB 数据库,按照此处显示的步骤.

在迁移开始时,我收到以下致命错误:

无法从 BsonType 'Array' 反序列化 'BsonDocument'

我不知道该怎么做。有没有人有过这种转换的经验并且知道如何克服这个错误?

标签: azureazure-cosmosdbdatabase-migrationazure-cosmosdb-mongoapi

解决方案


当其他人将来遇到同样的问题时:我应用了以下内容来完成这项工作:

  • 在此处下载 Mongodump完整的 MongoDB 服务器下载
  • 使用 mongodump 转储 Cosmos DB 模拟数据库
  • 将生成的 .bson 和元数据文件复制到 Azure 存储帐户(Blob 存储)
  • 使用 Azure 存储资源管理器获取此帐户的 SAS url
  • 创建新的 Azure 数据库迁移服务(MongoDB => Cosmos DB (MongoDB API))
  • 将 Azure Storage 设置为源,并输入 SAS url
  • 将 Cosmos DB 数据库设置为目标

使用 mongodump,数据被生成到​​ Cosmos DB 可以理解的文件结构中。


推荐阅读