Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Configurar
/ / /

Convertir un secundario autogestionado en un árbitro

Si tienes un Si el secundario de un conjunto de réplicas ya no necesita almacenar datos, pero debe permanecer en el conjunto para garantizar que este pueda elegir un primario, puede convertir el secundario en árbitro mediante cualquiera de los procedimientos de este tutorial. Ambos procedimientos son operativamente equivalentes:

  1. Si tu aplicación se conecta directamente a la secundaria, modifica la aplicación para que las consultas de MongoDB no lleguen a la secundaria.

  2. Apague el secundario.

  3. Elimina el secundario del set de réplicas realizando la rs.remove() método. Realiza esta operación mientras estés conectado a la principal en el mongosh:actual

    rs.remove("<hostname><:port>")
  4. Verifique que el set de réplicas ya no incluya el secundario llamando al método rs.conf() en mongosh:

    rs.conf()
  5. Mueva el directorio de datos del secundario a una carpeta de fichero. Por ejemplo:

    mv /data/db /data/db-old

    Nota

    Opcional

    También puedes remover los datos.

  6. Cree un nuevo directorio de datos vacío para señalar al reiniciar la instancia mongod. Puedes reutilizar el nombre anterior. Por ejemplo:

    mkdir /data/db
  7. Reinicie la instancia mongod para el secundario, especificando el número de puerto, el directorio de datos vacío y el set de réplicas. Puede usar el mismo número de puerto que usó anteriormente. Emita un comando similar al siguiente:

    Advertencia

    Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer la infraestructura de red.

    mongod --port 27021 --dbpath /data/db --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  8. En mongosh, convierte el secundario en un árbitro utilizando el método rs.addArb():

    rs.addArb("<hostname><:port>")
  9. Verifique que el árbitro pertenezca al set de réplicas llamando al método rs.conf() en mongosh.

    rs.conf()

    El nodo árbitro debe incluir lo siguiente:

    "arbiterOnly" : true
  1. Si tu aplicación se conecta directamente al secundario o tiene una cadena de conexión que hace referencia al secundario, modifica la aplicación para que las consultas de MongoDB no lleguen al secundario.

  2. Cree un nuevo directorio de datos vacío para usarlo con el nuevo número de puerto. Por ejemplo:

    mkdir /data/db-temp
  3. Inicia una nueva instancia mongod en el nuevo número de puerto, especificando el nuevo directorio de datos y el set de réplicas existente. Emite un comando similar al siguiente:

    Advertencia

    Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer la infraestructura de red.

    mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  4. En mongosh conectado al primario actual, convierta la nueva instancia mongod en un árbitro usando el método rs.addArb():

    rs.addArb("<hostname><:port>")
  5. Verifique que el árbitro se haya agregado al conjunto de réplicas llamando al rs.conf() método mongosh en.

    rs.conf()

    El nodo árbitro debe incluir lo siguiente:

    "arbiterOnly" : true
  6. Apague el secundario.

  7. Elimina el secundario del set de réplicas llamando al método rs.remove() en mongosh:

    rs.remove("<hostname><:port>")
  8. Verifica que el set de réplicas ya no incluya el antiguo secundario llamando al método rs.conf() en mongosh:

    rs.conf()
  9. Mueva el directorio de datos del secundario a una carpeta de fichero. Por ejemplo:

    mv /data/db /data/db-old

    Nota

    Opcional

    También puedes remover los datos.

Volver

Bloquear prioridad secundaria

En esta página