136 CappedPositionLost: Capped collection position lost(固定集合位置丢失)
MongoDB含义
读取固定大小(capped)集合的游标(通常是 tailable 游标)丢失了位置。由于集合循环覆盖,游标所在位置的文档已不存在。
原因
capped 集合写满后,最旧的文档会被自动删除并覆盖;如果集合的写入速度超过 tailable 游标的消费速度,游标就会落后,其位置被覆盖。出现在跟踪 oplog 等 capped 结构的消费者中。
解决方法
重新定位游标(打开新的 tailable 游标)并重新开始跟踪;在应用中捕获此错误并刷新读取。如果根本原因是消费者跟不上写入速率:增大 capped 集合/oplog 的大小或加快消费者速度。要可靠地跟踪变更,尽可能使用 change streams 代替 tailable 游标。
同一数据库的其他条目
- 7 HostNotFoundCould not find host(找不到主机)
- 175 QueryPlanKilledQuery plan killed during execution(查询计划在执行期间被终止)
- 11602 InterruptedDueToReplStateChangeOperation interrupted due to a replication state change(操作因复制状态变化而被中断)
- 28 PathNotViableCannot use the part of the path to traverse the element(无法使用路径的一部分遍历元素)
- 216 ElectionInProgressElectionInProgress
- 225 TransactionTooOldTransactionTooOld
- 246 SnapshotUnavailableSnapshotUnavailable