Azure Cosmos DB无服务器账户集合配额超限问题求助
解决Azure Cosmos DB无服务器账户集合配额超限问题
确认实际集合总计数
无服务器账户的100个集合配额是账户级的,所有数据库的集合(包括系统集合)加起来不能超过这个数。直接用MongoDB命令遍历所有数据库统计总数:// 遍历所有数据库并统计集合数量 var totalCollections = 0; db.adminCommand('listDatabases').databases.forEach(function(db) { var collCount = db.getSiblingDB(db.name).getCollectionNames().length; totalCollections += collCount; print(db.name + ": " + collCount + " collections"); }); print("Total collections across all databases: " + totalCollections);这个命令能准确统计当前账户下的所有集合,避免仅通过Azure门户查看的遗漏。
清理软删除的集合
Azure Cosmos DB默认开启软删除,删除的集合会保留30天,这部分资源仍会占用配额。- 门户操作:进入Azure Cosmos DB账户的「数据资源管理器」,切换到「已删除的集合」标签,找到不需要的集合右键选择「永久删除」。
- CLI操作:使用命令永久删除指定软删除集合:
az cosmosdb mongodb collection delete-permanent --account-name <你的账户名> --resource-group <资源组名> --database-name <数据库名> --name <集合名>
等待配额计数同步
删除资源后,系统的配额计数不会实时更新,尤其是无服务器账户,通常需要等待1-2小时让后台同步数据。如果刚完成删除操作,先等待一段时间再尝试创建新集合。检查并清理系统/隐藏集合
部分MongoDB驱动、工具或业务逻辑会自动创建system.*开头的系统集合,这些也会占用配额。用db.getCollectionNames()命令查看所有集合,确认是否有不需要的系统集合可以删除。申请配额提升(长期需求)
如果业务确实需要超过100个集合,可以在Azure门户提交支持请求,说明具体业务场景,申请提升无服务器账户的集合配额。注意无服务器账户的配额提升有一定限制,需要合理说明需求。
内容的提问来源于stack exchange,提问作者pigiax
相关产品推荐
相关产品推荐

