排查 Azure DocumentDB 中的常见问题

本指南旨在帮助你解决使用 Azure DocumentDB 时可能会遇到的问题。 本指南提供连接问题、错误方案和优化挑战的解决方案,提供切实的见解来改善你的体验。

注释

请注意,这些解决方案是一般准则,可能需要基于个别情况的特定配置。 请始终参考官方文档和支持资源,以获取最准确的最新信息。

常见错误和解决方法

无法连接到 Azure DocumentDB - 超时错误

群集未启用正确的防火墙规则(s)时,可能会出现此问题。 如果尝试从非 Azure IP 范围访问群集,则需要添加额外的防火墙规则。 有关详细步骤 ,请参阅安全选项和功能 - Azure DocumentDB 。 可以在门户的网络设置中为群集配置防火墙规则。 选项包括添加已知的 IP 地址/范围或启用公共 IP 访问。

Azure DocumentDB 的超时错误解决方案的屏幕截图。

无法连接,出现 DNSClient.DnsResponseException 错误

排查连接问题:

Windows 用户:
PsPing 不起作用。 nslookup 的使用证实了群集的可访问性和可发现性,表明网络问题不太可能。

Unix 用户:
对于套接字/网络相关的异常,潜在的网络连接问题可能会阻碍应用程序与 Azure DocumentDB Mongo API 终结点建立连接。

若要检查连接性,请执行以下步骤:

nc -v <accountName>.mongocluster.cosmos.azure.cn 10260

如果 TCP 连接到端口 10260 失败,环境防火墙可能会阻止 Azure DocumentDB 连接。 请向下滚动到页面底部以提交支持票证。

验证连接字符串:

仅使用 Azure 门户中提供的连接字符串。 确保它包含 mongodb+srv:// 协议,因为这是正确连接所必需的。 避免使用任何变体或前缀,例如 c。 如果遇到连接问题,请通过提交支持票证来共享应用程序或客户端驱动程序日志进行调试。

错误代码

此表列出了 Azure DocumentDB 返回的错误代码,以帮助识别和解决问题。 这对于使用 诊断日志排查问题也很有用。

错误代码 错误名称
1 内部错误
2 BadValue
5 图形包含循环
9 解析失败
14 类型不匹配
15 溢出
20 非法操作
23 已初始化
26 命名空间未找到
二十七 IndexNotFound
28 PathNotViable
31 角色未找到
34 无法填充数组
40 冲突更新操作符
43 CursorNotFound
48 NamespaceExists
52 以美元符号作为前缀的字段名
53 CanNotBeTypeArray
54 NotSingleValueField
56 空字段名称
57 DottedFieldName
61 未找到分片键
66 ImmutableField
67 无法创建索引
68 索引已存在
72 无效选项
73 InvalidNamespace (无效命名空间)
85 索引选项冲突
86 索引键规格冲突
111 NotExactValueField
115 不支持的命令
118 NamespaceNotSharded
146 超出内存限制
159 DurationOverflow
165 视图深度限制已超出
166 在视图中不支持的命令
167 视图上不支持的选项
181 AmbiguousIndexKeyPattern
197 无效索引规范选项
224 查询功能不允许
232 最大子管道深度超出
241 转换失败
263 事务中不支持的操作
276 索引构建中止
291 无法找到索引
361 集合UUID不匹配
10334 Bson对象过大
11000 重复键
12587 命名空间的后台操作正在进行中
13113 MergeStage无匹配文档
13297 数据库已存在

后续步骤