Preguntas frecuentes
¿Cómo se realiza una copia de seguridad de una base de datos MongoDB en funcionamiento sin tiempo de inactividad?
En el caso de servidores independientes y conjuntos de réplicas, el complemento Bacula Enterprise MongoDB ejecuta mongodump en una base de datos en funcionamiento sin interrumpir las lecturas ni las escrituras, y la base de datos permanece totalmente operativa durante los trabajos de copia de seguridad. No obstante, la garantía de ausencia de tiempo de inactividad no se aplica a las copias de seguridad de clústeres fragmentados, ya que estas requieren: (1) detener el equilibrador de fragmentos mediante sh.stopBalancer(), (2) desactivar a continuación las migraciones de fragmentos programadas, y (3) impedir las operaciones de escritura y las transformaciones de esquema mientras dura el volcado. Es de esperar que las operaciones de escritura se interrumpan durante la ventana de copia de seguridad. Realiza primero la copia de seguridad del conjunto de réplicas del servidor de configuración y, a continuación, captura cada conjunto de réplicas de fragmento en un intervalo de tiempo lo más breve posible.
¿Cuál es la diferencia entre una copia de seguridad lógica y una física en MongoDB?
Una copia de seguridad lógica utiliza mongodump para exportar los documentos, índices y esquemas de la base de datos a archivos BSON portátiles. Estos archivos son independientes del motor de almacenamiento subyacente y, por lo general, pueden restaurarse en un servidor diferente, aunque las restauraciones entre versiones dependen de la compatibilidad entre versiones de MongoDB, la versión de Database Tools y la versión de compatibilidad de funciones (FCV). Por lo tanto, no se garantiza que todas las combinaciones funcionen. Una copia de seguridad física, por su parte, copia los archivos de datos sin procesar del disco, lo que resulta mucho más rápido para conjuntos de datos muy grandes, pero vincula el archivo a la versión y al motor de almacenamiento originales.
¿Cómo funciona la recuperación a un momento determinado (PITR) para los conjuntos de réplicas de MongoDB?
La recuperación a un momento determinado (PITR) está disponible exclusivamente para conjuntos de réplicas. Cuando es necesaria una restauración, el parámetro `replay_to` detiene la reproducción del oplog en cualquier punto dentro de la ventana de oplog disponible y recupera el conjunto de réplicas al estado protegido más cercano dentro de esa ventana antes de que se produzca un incidente. Los servidores independientes y los clústeres fragmentados no admiten la recuperación a un punto en el tiempo (PITR) a través de este complemento, ya que no proporcionan una cadena de recuperación del oplog de la misma forma que los conjuntos de réplicas. Si necesitas recuperar una colección específica a un punto en el tiempo, lo recomendado es restaurar primero la cadena completa del conjunto de réplicas en un destino que no sea de producción y, a continuación, extraer y conciliar los datos necesarios a nivel de aplicación.
¿Se puede restaurar una sola colección de MongoDB sin recuperar toda la base de datos?
Sí. El complemento de MongoDB de Bacula admite filtros de inclusión y exclusión a nivel de base de datos y de colección, de modo que una tarea de restauración puede centrarse en una colección específica sin afectar al resto de la base de datos. Esto mantiene breves las ventanas de restauración y limita el riesgo de sobrescribir datos sanos junto con los datos dañados que necesitas sustituir. La restauración completa de la base de datos está disponible cuando sea necesario, pero nunca es la única opción.
Además, ten en cuenta que la restauración granular a nivel de colección se aplica a artefactos completos lógicos y no se puede combinar con la reproducción del oplog, lo que significa que la recuperación a un momento determinado opera en todo momento en el ámbito completo del conjunto de réplicas. Si necesitas ambas cosas, asegúrate primero de restaurar la cadena completa del conjunto de réplicas en un destino que no sea de producción y, a continuación, extrae los datos necesarios a nivel de aplicación.
¿Por qué utilizar el complemento de Bacula para MongoDB en lugar de ejecutar mongodump manualmente?
mongodump por sí solo es una herramienta eficaz para una única exportación lógica. Dicho esto, su limitación radica en que no te ofrece todo lo que viene después del volcado (programación centralizada, retención automatizada, validación de sumas de comprobación, metadatos de la cadena de recuperación, y la lista continúa). El complemento de Bacula Enterprise para MongoDB integra mongodump y mongorestore en el motor de políticas de Bacula, de modo que cada tarea de copia de seguridad de MongoDB se programa, cataloga y valida adecuadamente, y se puede recuperar desde la misma consola que gestiona el resto de tu infraestructura.