DBAtlas · 数据库运维图谱

136 CappedPositionLost: Capped collection position lost(固定集合位置丢失)

MongoDB

含义

读取固定大小(capped)集合的游标(通常是 tailable 游标)丢失了位置。由于集合循环覆盖,游标所在位置的文档已不存在。

原因

capped 集合写满后,最旧的文档会被自动删除并覆盖;如果集合的写入速度超过 tailable 游标的消费速度,游标就会落后,其位置被覆盖。出现在跟踪 oplog 等 capped 结构的消费者中。

解决方法

重新定位游标(打开新的 tailable 游标)并重新开始跟踪;在应用中捕获此错误并刷新读取。如果根本原因是消费者跟不上写入速率:增大 capped 集合/oplog 的大小或加快消费者速度。要可靠地跟踪变更,尽可能使用 change streams 代替 tailable 游标。

在 DBAtlas 中打开 →

同一数据库的其他条目