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/testMongodb permite ejecutar funciones de configuración y gestión del replicaset mediante
el 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
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" }, ] }
Ahora vamos a iniciarlizar el replicatsetPasado 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
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 pruebas
de disaster recovery entre nodos.
Hasta la proxima!
No hay comentarios:
Publicar un comentario