sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo recuperarse de una reversión de MongoDB?

Si está ejecutando un conjunto de réplicas de MongoDB en un entorno de nube pública durante un período de tiempo razonable, lo más probable es que ha experimentado un 'retroceso'. Suena desalentador, pero hay pasos simples para recuperar sus datos en caso de que su sistema experimente una reversión.

¿Cuándo ocurre una reversión?

Una reversión en un conjunto de réplicas de MongoDB puede ocurrir en la siguiente secuencia de pasos
1. Un primario de MongoDB acepta escrituras que aún no se han replicado en otros secundarios y luego falla
2. Otro servidor se convierte en principal y acepta otras escrituras
3. Cuando el primario anterior vuelve a aparecer y vuelve a sincronizar su estado con el de la mayoría

¿Puedo evitar que ocurran retrocesos en primer lugar?

Por supuesto. Pero como siempre tiene un precio. Puede establecer su preocupación de escritura en 'MAJORITY'. Esto requerirá que todas sus escrituras se confirmen en la mayoría de los nodos en el conjunto de réplicas antes de que MongoDB pueda reconocerlo con éxito. Sin embargo, esto tendrá un impacto dramático en su rendimiento de escritura. Entonces, en el mundo real, un buen equilibrio podría ser usar solo la preocupación de escritura 'MAJORITY' para escrituras de datos transaccionales importantes

¿Cómo recuperar datos de una reversión?

A continuación se muestran cuatro sencillos pasos para recuperar sus datos en caso de una reversión

1. Encuentre los archivos de reversión
Cuando se produce una reversión, los archivos bson de los datos de reversión se colocan en el directorio "retroceso" de su ruta de datos de MongoDB. Los archivos se parecen a is

<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson

2. Cargue los datos de la reversión en una base de datos o servidor independiente
Mi preferencia es copiar los archivos de reversión en un nuevo servidor y usar mongorestore para cargarlos en el servidor. Esta es la sintaxis que puede usar

mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>

3.  Examine los datos y limpie los datos innecesarios
En este punto, como administrador de la base de datos, tendrá que usar su discreción para decidir qué datos de la reversión desea conservar y qué datos ya no tienen sentido. En la mayoría de los casos, es poco probable que pueda importar todos los datos. Este es probablemente el paso más difícil en la recuperación de reversión.

4. Importe datos en el clúster principal
Utilice las herramientas mongodump y mongorestore para descargar los datos limpios y volver a importarlos en su clúster de producción original.

Para obtener más información sobre las operaciones de reversión, consulte la documentación oficial de MongoDB