本指南旨在帮助你解决使用 Azure DocumentDB 时可能会遇到的问题。 本指南提供连接问题、错误方案和优化挑战的解决方案,提供切实的见解来改善你的体验。
注释
请注意,这些解决方案是一般准则,可能需要基于个别情况的特定配置。 请始终参考官方文档和支持资源,以获取最准确的最新信息。
常见错误和解决方法
无法连接到 Azure DocumentDB - 超时错误
群集未启用正确的防火墙规则(s)时,可能会出现此问题。 如果尝试从非 Azure IP 范围访问群集,则需要添加额外的防火墙规则。 有关详细步骤 ,请参阅安全选项和功能 - Azure DocumentDB 。 可以在门户的网络设置中为群集配置防火墙规则。 选项包括添加已知的 IP 地址/范围或启用公共 IP 访问。
无法连接,出现 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 | 数据库已存在 |
后续步骤
- 如果按照所有故障排除步骤进行操作后仍无法解决问题,可以提交支持请求以获取进一步的帮助。
- 如果要对跨区域复制进行故障排除,请参阅 跨区域复制的故障排除指南。