Saltar al contenido

¿Cómo configurar rs.slaveOk () en servidores secundarios mongodb en replicaset a través de la línea de comandos?

Solución:

Crea un archivo /etc/mongorc.js y añadir rs.slaveOk() allí. El archivo se evalúa en cada inicio de shell.

Para obtener más información, eche un vistazo aquí.

Llamar a lo siguiente debería funcionar bien, no hay un tipo de retorno para el método, por lo que no se imprimirá nada en la pantalla

${MONGO_HOME}/bin/mongo --port ${MONGO_PORT2} --host ${MONGO_SECONDARY2} --eval "rs.slaveOk()"

Corriendo rs.slaveOk en mongo.exe también se verá cómo se implementa, ya que es solo un método auxiliar:

> rs.slaveOk
function (value) { return db.getMongo().setSlaveOk(value); }
>

Y tambien el setSlaveOk método:

> db.getMongo().setSlaveOk
function ( value ) {
     if( value == undefined ) value = true;
     this.slaveOk = value;
}

Siempre puede intentar consultar una de las colecciones en la secundaria para asegurarse de que el nodo sea consultable:

> db.test.findOne()
null 

Actualizar – un poco más de claridad

Configuración slaveOk() solo es válido para esa sesión de consola en la que se ejecutó, por lo que deberá pasar un script o permanecer conectado a la consola con el --shell argumentos a favor del ejemplo

C:mongodbbin>mongo.exe --port 27012 --eval "rs.slaveOk()" --shell
MongoDB shell version: 3.0.5
connecting to: 127.0.0.1:27012/test
type "help" for help
rs1:SECONDARY> db.test.find()
{ "_id" : ObjectId("5630fdf2af4abd9f8ae7f79c"), "test" : true }
rs1:SECONDARY>

Si no pasamos en el rs.slaveOk() el obtenemos la siguiente respuesta:

C:mongodbbin>mongo.exe --port 27012 --shell
MongoDB shell version: 3.0.5
connecting to: 127.0.0.1:27012/test
type "help" for help
rs1:SECONDARY> db.test.find()
Error: error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
rs1:SECONDARY> exit
bye
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *