En la siguiente entrada vamos a poner en practica una arquitectura de replicación con dos instancias mongod (primaria-secundaria) utilizando solo un servidor.Es sabido que lo ideal seria poder estructurar cada instancia mongo en servidores distintos pero ahora  nos conviene realizar una sencilla configuracion para luego poder ejecutar todos estos conocimientos en un entorno de producción bien redimensionado. Para empezar vamos a crear los directorios donde alojamos el contenido de cada una de las dos  instancias:
mkdir -p /data/rp1 /data/rp2
Luego levantamos los procesos mongod con las siguientes secuencias de parámetros:Primary:
mongod --port 27017 --dbpath /data/rp1 --replSet reptest --smallfiles --oplogSize 128 
 
Secundary:
mongod --port 27018 --dbpath /data/rp2 --replSet reptest --smallfiles --oplogSize 128
 --port : puerto por el que escucha el proceso.--dbpath : path donde vamos alojar los datos de cada instancia--replSet : Nombre de la replica a la que pertenece este proceso mongod--smallfiles : Como comenté en anteriores entradas solo sirve para crear ficheros opslogs de menor                     tamaño, utilizar solo para entornos de testing.Una vez tenemos levantadas las dos instancias anteriores, solo tenemos que conectarnos a la que vamos a configurar como primaria:

root@localhost examen]# mongo --port 27017 MongoDB shell version: 2.2.3 connecting to: 127.0.0.1:27017/test
 
Mongodb permite ejecutar funciones de configuración y gestión del replicaset medianteel siguiente método javascript. "rs."

rs. rs.add( rs.conf( rs.freeze( rs.isMaster( rs.remove( rs.syncFrom( rs.addArb( rs.config( rs.hasOwnProperty( rs.propertyIsEnumerable( rs.slaveOk( rs.toLocaleString( rs.apply( rs.constructor rs.help( rs.prototype rs.status( rs.toString( rs.call( rs.debug rs.initiate( rs.reconfig( rs.stepDown( rs.valueOf(

 

En esta dirección tenéis mas información:
http://docs.mongodb.org/manual/reference/replica-commands/#replica-set-javascript-methods
Tal como dije al principio vamos a configurar dos miembros, uno primario y otro secundario, así quedaría la configuración del cluster : Todos los metadatos del cluster se añaden a la variable rsconf
 
rsconf = {
            _id: "reptest",
            members: [
                       {
                       _id: 0,
                       host: "127.0.0.1:27017"
                       }, 
                       {
                        _id: 1,
                        host: "127.0.0.1:27018"
                       },  
                     ]
          }

 
image
 
Ahora vamos a iniciarlizar el replicatset
 
image
 
 
Pasado algunos minutos (un par de ellos como mucho), esperamos que finalice la sincronización y ejecutamos el comando para ver en que estado se encuentra el replicaset
 
image
 
 
De esta forma tan fácil ya tenemos en funcionamiento un mini entorno replicaset, donde todos los cambios en el primario(puerto 27017) se replicaran instantáneamente al secundario (27018). Para el siguiente capitulo explicaré como añadir un tercer nodo y realizaremos algunas pruebasde disaster recovery entre nodos.Hasta la proxima!

Compártelo:

FacebookDiggGoogle BookmarksLinkedin


Escribir un comentario

Código de seguridad
Refescar

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Please wait

Si te Gusta DBigCloud

DBigCloud vive de sus lectores. Si te gusta y puedes, contribuye para mantener esta web en marcha. Gracias.