MongoDB - Reconfigurar replica set

23 octubre 2011 at 19:36 by Adrián Pérez

MongoDBSi se quiere cambiar alguno de los parámetros de cualquier nodo del réplica set, bastará con conectar con el nodo primario de ese conjunto, y seguir los pasos descritos a continuación.

En primer lugar, se deberá copiar la configuración actual del replica set a una variable auxiliar:

PRIMARY> cfg = rs.conf()
{
"_id" : "replica1",
"version" : 6,
"members" : [
{
"_id" : 0,
"host" : "192.0.1.2:27001"
},
{
"_id" : 1,
"host" : "192.0.1.3:27001"
},
{
"_id" : 4,
"host" : "192.0.1.4:38001",
"arbiterOnly" : true
}
]
}

Tal y como se observa en el ejemplo, este comando mostrará por pantalla los parámetros actuales de cada uno de los nodos del réplica set (en el ejemplo, 2 nodos y un árbitro). A partir de la versión 2.0 de mongoDB, se permite cambiar la prioridad de un nodo, pudiendo otorgar un valor entre 0 y 1000 (incluído) en lugar de entre 0 y 1 como hasta ahora.

PRIMARY> cfg.members[0].priority = 10
10

Una vez realizados los cambios en la configuración, se podrán comprobar ejecutando la variable auxiliar.

PRIMARY> cfg
{
"_id" : "replica1",
"version" : 6,
"members" : [
{
"_id" : 0,
"host" : "192.0.1.2:27001",
"priority" : 10
},
{
"_id" : 1,
"host" : "192.0.1.3:27001"
},
{
"_id" : 4,
"host" : "192.0.1.4:38001",
"arbiterOnly" : true
}
]
}

Una vez comprobados los cambios, se podrán aplicar, ejecutando el siguiente comando (en caso de no estar en un nodo primario, el comando no se ejecutará):

PRIMARY> rs.reconfig(cfg)
{ "ok" : 1 }

Ahora sí, una vez aplicados los cambios, se podrán ver los cambios realizados con

PRIMARY> rs.conf()