Conjunto de réplicas principal desconectado que se agrega nuevamente al conjunto de réplicas

Conjunto de réplicas principal desconectado que se agrega nuevamente al conjunto de réplicas

Estoy buscando algunos consejos sobre qué hacer con un conjunto de réplicas principal que se desconecta de la red (por ejemplo, interrupción de la red del centro de datos) en la medida en que promovemos una de las secundarias a primaria para restaurar el servicio de la aplicación utilizando la base de datos. .

Antes de volver a conectar la red, ¿deberíamos eliminar el mongodb que se ejecuta en la caja para permitir que se vuelva a agregar como secundario? ¿O un primario desconectado de su modo de cambio establecido?

¿Qué pasaría si permitiéramos que el servidor mongodb volviera a la red con mongodb ejecutándose como principal aunque aislado hasta la reconexión?

Disculpas si esto se responde en los documentos de otros lugares. Intenté buscar, pero es posible que no esté buscando los términos correctos.

Respuesta1

Estoy buscando algunos consejos sobre qué hacer con un conjunto de réplicas principal que se desconecta de la red (por ejemplo, interrupción de la red del centro de datos) en la medida en que promovemos una de las secundarias a primaria para restaurar el servicio de la aplicación utilizando la base de datos. .

La conmutación por error automática es una de las características inherentes de MongoDB.réplica del diseño del escenario, por lo que no debería tener que realizar una conmutación por error manual a un secundario a menos que haya cambiado intencionalmente su configuración predeterminada. Ambos primaryy secondarysonEstados miembros(o roles) dentro de un conjunto de réplicas, y está destinado a ser distinto de la topología maestro/esclavo que normalmente requiere intervención manual para la conmutación por error.

Si la mayoría de los miembros votantes configurados de un conjunto de réplicas de MongoDB no pueden acceder al primario actual, el resultado esperado es el siguiente:

  • la primaria aislada dejará el poder y se convertirá en secundaria
  • Se puede elegir una nueva primaria si la mayoría de los miembros votantes aún tienen conectividad entre sí y un miembro elegible para elegir.

VerElecciones del conjunto de réplicasen el manual de MongoDB para obtener más información.

Antes de volver a conectar la red, ¿deberíamos eliminar el mongodb que se ejecuta en la caja para permitir que se vuelva a agregar como secundario? ¿O un primario desconectado de su modo de cambio establecido?

Un miembro aislado que contiene datos del conjunto de réplicas permanecerá en estado secundario, pero se mostrará como "no en buen estado/accesible" si verifica rs.status()otros miembros del conjunto de réplicas. En general, es una buena idea aprovisionar a todos los miembros elegibles portadores de datos de manera idéntica para que cualquier miembro pueda asumir el rol de principal si es necesario (en lugar de tener un miembro principal especialmente aprovisionado).

Si desea que su conjunto de réplicas se recupere automáticamente, debe dejar a todos los miembros ejecutándose como están y reanudarán la sincronización (si es posible) una vez que se restablezca la conectividad. En la configuración predeterminada, un miembro aislado que anteriormente era principal reanudará la sincronización como secundario. Si tiene una fuerte preferencia por qué miembro será elegido primario (por ejemplo, según la ubicación del centro de datos), puedeajustar la prioridadpara miembros del conjunto de réplicas. Si se aisló una primaria preferida, se reincorporará al conjunto de réplicas como secundaria y reanudará la sincronización hasta que se haya recuperado lo suficiente como para ser elegible para convertirse en primaria y desencadenar una elección.

La advertencia al reanudar la sincronización es que los miembros aislados aún deben tener suficiente superposición con elregistro de operaciones de replicaciónde un miembro del conjunto de réplicas en buen estado para ponerse al día con cualquier actividad de escritura que haya ocurrido mientras el miembro estaba aislado. Un secundario cuyo registro de operaciones ya no se superponga con ningún otro miembro del conjunto de réplicas se marcará como "obsoleto" y será necesarioresincronizado.

¿Qué pasaría si permitiéramos que el servidor mongodb volviera a la red con mongodb ejecutándose como principal aunque aislado hasta la reconexión?

No es posible tener una primaria aislada a menos que reconfigures a la fuerza tu conjunto de réplicas para que no haya otros miembros votantes. No puede tener dos primarios en un conjunto de réplicas. Si un antiguo primario aislado aceptó escrituras que no se propagaron a la mayoría de los miembros del conjunto de réplicas, estas escrituras seránretrotraído(exportado al disco para intervención administrativa) cuando el antiguo primario reanuda la conectividad con los demás miembros del conjunto de réplicas. Puede tomar medidas adicionales paraevitar retrocesos, incluido el uso demajorityescribe preocupacion.

Si es nuevo en los conjuntos de réplicas de MongoDB, le recomendaría utilizar la configuración y el aprovisionamiento predeterminados para habilitar la conmutación por error y la recuperación automáticas. La intervención manual sólo debería ser necesaria en circunstancias excepcionales.

información relacionada