lunes, 22 de julio de 2013

Trabajando con Indices en MongoDB (2 Parte)

La semana pasada estuvimos viendo la primera parte de como trabajar con indices en MongoDB, en esta semana vamos a explicar como crear indices en un Replica Set.

El procedimiento para crear un indice en un Replica Set es el siguiente:

  1. Convertir un nodo secundario en modo standalone: Vamos a parar el proceso mongod, y lo iniciamos sin la opción --replSet y con un puerto diferente al que usa habitualmente, así podemos trabajar con el en modo standalone, nosotros usaremos por ejemplo el 48018.
    mongod --port 48018
  2. Crearemos el indice o lo reconstruimos en el nodo que hemos dejado en modo standalone:
    db.Coleccion.ensureIndex( { campo: 1 } ) 
  3. Una vez vez el indice se haya construido volvemos a levantar el nodo con la opción --replSet y el mismo puerto en el que trabaja habitualmente, suponiendo que usa el puerto 27017 y que el nombre del Replica Set es NombreReplicaSet0.
     mongod --port 27017 --replSet NombreReplicaSet0 


Todos estos pasos hay que realizarlo por cada uno de los nodos secundarios que dispongamos. Muy Importante establecer los puertos y el nombre de la replica de cada uno de los nodos de forma correcta.

Ahora es el momento de construir el indice en nuestro nodo primario, para ello usaremos la opción rs.stepDown() que hará que este nodo se convierta en nodo secundaria, estableciendo como primario otro de los nodos de la replica. Una vez que esto se haya realizado, volvemos a realizar los pasos del procedimiento anterior.

NOTA: Es muy importante seguir los pasos tal y como se indican, para que no se produzcan inconsistencias de datos entre los nodos.

Referecia: Build Indexes on Replica Sets

No hay comentarios:

Publicar un comentario en la entrada