【发布时间】:2020-12-14 11:14:05
【问题描述】:
我正在尝试使用 mongorestore 命令在 Cosmos 上恢复转储的数据库,但不幸的是它抛出了如下错误:
运行创建命令出错:(Unauthorized)Error=13, Details='响应状态码不表示成功:Forbidden (403);子状态:0;活动 ID:421d33eb-dea0-4372-92b0-ece63fd2b357;原因:(“不允许通过 Azure Cosmos DB 端点对资源 'dbs' 执行 'POST' 操作。请为您的帐户开启此类操作,或通过 Azure 资源管理器、Azure 门户、Azure CLI 或 Azure Powershell 执行此操作” ActivityId: 421d33eb-dea0-4372-92b0-ece63fd2b357, Microsoft.Azure.Documents.Common/2.11.0, 请参见 CosmosDiagnostics, Windows/10.0.14393 cosmos-netstandard-sdk/3.3.2); 2020-08-25T20:47:42.088+0530 0 个文档已成功恢复。 0 个文档无法恢复。
我正在按照微软提供的这个链接迁移数据:https://azure.microsoft.com/en-in/resources/videos/using-mongodb-tools-with-azure-cosmos-db/
用于恢复DB的命令如下:
mongorestore --host HOSTNAME:PORT -u USERNAME -p PASSWORD --db DBNAME DUMPED_DB_DIRECTORY_PATH --ssl --sslAllowInvalidCertificates
它指的是哪个帐户启用操作以及如何在我的帐户上启用操作,如日志中突出显示的那样? Azure CLI 或 Portal 中是否有任何等效的 mongorestore ?
我也尝试恢复单个集合,但出现了同样的错误。我成功地从我的另一个 Cosmos DB 实例中转储了数据。
【问题讨论】:
-
您在创建 Cosmos DB 实例时指定了哪个 API:MongoDB API 还是 SQL API?
-
是MongoDB API,mongodump也成功了。
-
好的,太好了 - 如果您编辑问题以显示您的实际
mongorestore命令行(只需确保混淆您的实际端点名称和密钥),这将有所帮助。正如所写的那样,它的外观并不完全清楚。另外,您是否指定了集合名称? -
我用附加的命令截图编辑了这个问题。我在有和没有指定集合名称的情况下都使用了。在不指定集合名称并仅传递 DB 文件夹的情况下,mongorestore 能够识别其中的所有集合。但显然,这两种情况都会出现同样的错误。
标签: mongodb azure azure-cosmosdb azure-cosmosdb-mongoapi mongorestore