Tengo una colección que se alimenta automáticamente para simular la entrada del usuario. Solía tener más de 32000 documentos, ahora solo 2000. Mi colección se cayó ayer y no sé qué pasó.
Afortunadamente, hay una marca de tiempo en cada documento, por lo que puedo ver exactamente cuándo sucedió. (El documento más antiguo tiene solo un día de antigüedad, hay nuevos cada 2 minutos). ¿Cómo puedo ver lo que sucedió?
Probablemente lo hizo un script, por lo que no aparece en .dbshell
, que de todos modos tiene un límite de 99 líneas. ¿Hay un historial de algo hecho a la base, no solo manualmente?
¿Hay alguna manera de saber qué causó esto?
Información adicional: soy el único con acceso a la base por ahora, y solo tengo un script que puede eliminar mis tablas, no lo he tocado en mucho tiempo.
Verifique esta respuesta https://stackoverflow.com/a/15204638/4996928 en StackOverflow
Terminé resolviendo esto iniciando mongod así (martillado y feo, sí... pero funciona para el entorno de desarrollo):
mongod --profile=1 --slowms=1 &
Esto habilita la creación de perfiles y establece el umbral para "consultas lentas" en 1 ms, lo que hace que todas las consultas se registren como "consultas lentas" en el archivo:
/var/log/mongodb/mongodb.log
Ahora obtengo salidas de registro continuas usando el comando:
tail -f /var/log/mongodb/mongodb.log
Un registro de ejemplo:
Mon Mar 4 15:02:55 [conn1] query dendro.quads query: { graph: "u:http://example.org/people" } ntoreturn:0 ntoskip:0 nscanned:6 keyUpdates:0 locks(micros) r:73163 nreturned:6 reslen:9884 88ms