azure - 将 Cosmos DB 模拟器 (MongoDB API) 迁移到 Azure 时出现致命错误
问题描述
我在将 Cosmos DB 模拟器中托管的 localhost Cosmos DB 数据库迁移到 Azure 上的在线 Cosmos DB 实例时遇到了很多问题。我已经使用微软的数据迁移工具上传当前数据库,转换为 JSON 文件,到存储帐户,并使用数据迁移服务将数据从存储帐户拉到 Cosmos DB 数据库,按照此处显示的步骤.
在迁移开始时,我收到以下致命错误:
无法从 BsonType 'Array' 反序列化 'BsonDocument'
我不知道该怎么做。有没有人有过这种转换的经验并且知道如何克服这个错误?
解决方案
当其他人将来遇到同样的问题时:我应用了以下内容来完成这项工作:
- 在此处下载 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 可以理解的文件结构中。
推荐阅读
- reactjs - 如何使用 getServerSideProps 将用户重定向到另一个页面?
- azure - Azure AD 加入默认本地管理员
- java - 避免创建 HandlerThread 和上下文泄漏
- deep-learning - 没有交叉验证的 GridSearchCV CV = 1
- java - Java:如何将 excel 数据推送到 java map(
) - javascript - 使用 Gatsby,如何从导入的 JS 文件中访问变量?
- amazon-web-services - AWS EC2 集群任务超时,因为没有实例来处理它们
- node.js - Web3.js getBlock() 将所有块都作为待处理
- java - 集群之间的 Java 共享文件夹同步
- django - 使用 if else if 分支查看语法错误