Estoy usando una configuración de conjunto de réplicas mongodb simple. tengo una primaria y dos secundarias. todo estuvo bien hasta que planeé agregar control de acceso a las instancias de mongodb (sé cómo agregarlo)
cerré todas las instancias de mongod y cuando las reinicié, todos los nodos entraron en estado de RECOVERING . Me di cuenta cuando cualquier instancia (solo una a la vez) está ejecutando los cambios de estado a SECONDARY . ahora, para agregar control de acceso (usar acceso), tengo que estar en el nodo PRIMARY que no puede aparecer porque tan pronto como comienzo, todas las instancias pasan al estado RECOVERING .
¿Por qué está pasando esto? EDIT1: el tamaño de la base de datos es de 700 Mb
EDIT2: logré devolverlos a un estado consistente, fue porque creo que antes tenía diferentes configuraciones en el archivo mongod.conf. ahora tengo dos secondaries y una primary . ahora quiero agregar el uso de control de acceso, ¿cómo debo hacerlo para que los nodos no vuelvan a entrar en un estado inconsistente?
La solución para mí fue usar la autenticación keyFile. Así que en lugar de:
security: authorization: enabledusar:
security: keyFile: <path-to-keyfile>Básicamente seguí las instrucciones en:
https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set
Esto garantiza algunas cosas:
Con la autenticación del archivo de claves, cada instancia de mongod en el conjunto de réplicas utiliza el contenido del archivo de claves como la contraseña compartida para autenticar a otros miembros en la implementación. Solo las instancias de mongod con el archivo de claves correcto pueden unirse al conjunto de réplicas.