You are on page 1of 5

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B

28830 San Fernando de Henares (Madrid)


tel./fax: +34 91 675 33 06
info@autentia.com - www.autentia.com
Somos su empresa de Soporte a Desarrollo Informtico.
Ese apoyo que siempre quiso tener...
1. Desarrollo de componentes y
proyectos a medida
Tecnologa
Desarrollo
Sistemas
Gran Empresa
Produccin
autentia
Certificacin
o Pruebas
Verificacin
previa
RFP
Concurso
Consultora 1
Consultora 2
Consultora 3
Equipo propio desarrollo
Piloto
3a
3b
1. Definicin de frameworks corporativos.
2. Transferencia de conocimiento de nuevas arquitecturas.
3. Soporte al arranque de proyectos.
4. Auditora preventiva peridica de calidad.
5. Revisin previa a la certificacin de proyectos.
6. Extensin de capacidad de equipos de calidad.
7. Identificacin de problemas en produccin.
3. Arranque de proyectos basados en nuevas
tecnologas
Qu ofrece Autentia Real
Business Solutions S.L?
Para ms informacin vistenos en:
www.autentia.com
Compartimos nuestro conociemiento en:
www.adictosaltrabajo.com
Gestor portales (Liferay)
Gestor de contenidos (Alfresco)
Aplicaciones hbridas
Tareas programadas (Quartz)
Gestor documental (Alfresco)
Inversin de control (Spring)
BPM (jBPM o Bonita)
Generacin de informes (JasperReport)
ESB (Open ESB)
Control de autenticacin y
acceso (Spring Security)
UDDI
Web Services
Rest Services
Social SSO
SSO (Cas)
Spring MVC, JSF-PrimeFaces /RichFaces,
HTML5, CSS3, JavaScript-jQuery
JPA-Hibernate, MyBatis
Motor de bsqueda empresarial (Solr)
ETL (Talend)
Direccin de Proyectos Informticos.
Metodologas giles
Patrones de diseo
TDD
2. Auditora de cdigo y recomendaciones de mejora
4. Cursos de formacin (impartidos por desarrolladores en activo)
Entra en Adictos a travs de
Entrar

E-mail
Contrasea
Deseo registrarme
Olvid mi contrasea
Inicio Quines somos Formacin Comparador de saIarios Nuestro Iibro
Ests en: Inicio TutoriaIes Montar un cluster de MySQL
Sguenos a travs de:
CatIogo de servicios
Autentia

Itimas Noticias
Comentando el Libro: Lean
StartUp (el mtodo)
V Autentia Cycling Day
Por qu una empresa
puede dar unos grandes
beneficios y tener que
despedir gente?
Tcnico en preventa: entre
tcnico y comercial
Rotacin en la empresa y el
teorema de la nia mona
Histrico de noticias
Itimos TutoriaIes
Transformar aplicaciones
Android en aplicaciones
BlackBerry
Creando un videojuego con
HTML5 y Javascript
ntroduccin a PhoneGap
Spring mvc. Servicios Rest
respondiendo en Json o XML
Trabajando con ntellij DEA
11
Ver todos los tutoriales del autor
Rubn Aguilera Daz-Heredero
Consultor tecnolgico de desarrollo de proyectos informticos.
ngeniero en nformtica, especialidad en ngeniera del Software
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo,
factora y formacin
Somos expertos en Java/J2EE
Fecha de pubIicacin deI tutoriaI: 2012-04-14
Tutorial visitado 1 veces Descargar en PDF
Montar un cIuster de MySQL
0. ndice de contenidos.
1. Entorno.
2. ntroduccin.
3. Configuramos el MGM.
4. Configuramos los nodos de datos NDB y el nodo SQL.
5. Probamos el cluster.
6. Conclusiones.
1. Entorno
Este tutorial est escrito usando el siguiente entorno:
Hardware: Porttil Mac Book Pro 17" (2,6 Ghz ntel Core i7, 8 GB DDR3)
Sistema Operativo: Mac OS X Snow Leopard 10.6.4
4 mquinas virtuales con Ubuntu Server 10.4 en VirtualBox
MySQL 5.1
MySQL Cluster
Introduccin
A veces nos encontramos en proyectos donde los entornos de produccin requieren de un sistema que garantice la alta
disponibilidad. Una de las soluciones para conseguir esto es montar la base de datos en un clster de tal forma que no haya
ningn punto dbil en el sistema y si se cae un nodo que el sistema no deje de dar servicio.
En este tutorial vamos a ver como conseguirlo con la solucin MySQL Cluster. Para seguir el ejemplo antes tenemos que
tener claros los siguientes conceptos:
Motor de almacenamiento NDB: A partir de la versin 5.1 MySQL incorpora este nuevo motor de almacenamiento
especfico para tablas que se encuentran en cluster.
Nodo de administracin (MGM): Es el nodo que se va a encargar de manejar, controlar y coordinar al resto de nodos
del cluster. Debido a esto tiene que ser el primero en iniciarse.
Nodo de datos (NDB): Este tipo de nodo almacena los datos del cluster de forma distribuida. De tal forma que si uno
de ellos cae, el resto de nodos pueden seguir sirviendo la informacin.
Nodo SQL (MYSQLD): Este tipo de nodo nos permite acceder a los datos del cluster.
El ejemplo lo vamos a basar en la siguiente arquitectura:
1 nodo de administracin (MGM)
2 nodos de datos (NDB) que a su vez van a ser nodos SQL (MYSQLD)
1 nodo SQL (MYSQLD)
Grficamente est sera la arquitectura:
Itimos TutoriaIes deI
Autor
Tcnicas bsicas con
Mybatis
CSS3 Media Queries o
cmo hacer un diseo
adaptativo segn el terminal
CSS Browser Selector o
cmo olvidarnos de los hacks
en CSS
CAS REST: Cmo logarnos
en CAS sin ir a la pantalla de
login por defecto
mplementando SSO con
CAS: ejemplo prctico
Itimas ofertas de
empIeo
2011-09-08
Comercial - Ventas -
MADRD.
2011-09-03
Comercial - Ventas -
VALENCA.
2011-08-19
Comercial - Compras -
ALCANTE.
2011-07-12
Otras Sin catalogar -
MADRD.
2011-07-06
Otras Sin catalogar -
LUGO.
3. Configuramos eI MGM
Lo primero que tenemos que hacer es configurar el nodo de administracin. Para ello arrancamos una de las mquinas
virtuales e instalamos MySQL con el soporte de NDBCluster. En Ubuntu es tan sencillo como ejecutar:
view plain print ?
01. sudo apt-get nsta11 mysq1-c1uster-server
Esto hace que se instale MySQL Cluster y MySQL Server y Client como dependencias en la versin 5.1.
A continuacin creamos el fichero /etc/mysql/ndb_mgmd.cnf donde se describe cual va a ser la arquitectura de clustering y
que rol van a adoptar los distintos nodos.
view plain print ?
01. ju080 0LI^ul1
02. uo018ep1cas=2
02. 0ataMemory=2S6M
04. 1ndexMemory=18M
0S.
06. jMYSql0 0LI^ul1
07.
08. ju08_M6M0 0LI^ul1
09.
10. j1C 0LI^ul1
11.
12. ju08_M6M0
12. uostuame=192.168.1.10
14.
1S. ju080
16. uostuame=192.168.1.11
17. 0ata0r=,var,1b,mysq1-c1uster
18.
19. ju080
20. uostuame=192.168.1.12
21. 0ata0r=,var,1b,mysq1-c1uster
22.
22. jMYSql0
24. uostuame=192.168.1.11
2S.
26. jMYSql0
27. uostuame=192.168.1.12
28.
29. jMYSql0
20. uostuame=192.168.1.12
Para este caso estamos determinando que nuestro cluster se va a componer de dos replicas de datos que estn descritas
en las secciones [NDBD], donde indicamos cual es la P de la mquina y donde se van a almacenar los datos del cluster en
esa mquina. Luego en las secciones [MYSQLD] determinamos la direccin P de las mquinas que van a poder acceder a
los datos del cluster. En este caso las mquinas NDB tambin adoptaran el rol de nodo SQL y solo una de ellas tendr
exclusivamente este rol. Como se vea en la figura de la arquitectura propuesta.
Nota muy importante: El contenido de este fichero queda cacheado por lo que nos puede pasar que lo modifiquemos,
reiniciemos el servicio y los cambios no se vean reflejados. Para evitar esto antes de reiniciar el servicio debemos eliminar
el fichero cacheado con esta sentencia:
view plain print ?
01. sudo rm ,usr,mysq1-c1uster,ndb_1_con1g.bn.1
4. Configuramos Ios nodos de datos NDB y eI nodo SQL
Vamos a describir los pasos para uno de ellos, posteriormente habra que repetir estos pasos para el resto de nodos.
Lo primero sera instalar mysql-cluster-server como se describi en el anterior apartado.
Hecho esto, pasamos a editar el fichero de configuracin /etc/mysql/my.cnf aadiendo en la seccin existente [mysqld], las
siguientes lneas:
view plain print ?
01. ndbc1uster
02. ndb-connectstrng=192.168.1.10
Y creamos una seccin [mysql_cluster] con esta informacin:
view plain print ?
01. ndb-connectstrng=192.168.1.10
Esta configuracin nos sirve por un lado para habilitar el soporte del motor de almacenamiento NDBCluster y por otro para
saber como conectar con el MGM.
Ahora reiniciamos primero el nodo MGM con la sentencia:
view plain print ?
01. sudo servce mysq1-ndb-mgm restart
Y posteriormente el resto de nodos que intervienen en el cluster con las sentencias:
view plain print ?
01. sudo servce mysq1-ndb restart
02. sudo servce mysq1 restart
En cada caso tenemos que ver que la salida no muestra ningn tipo de error.
Con esto ya estara configurado y arrancado nuestro cluster, ahora vamos a comprobar el estado a travs del nodo MGM,
ejecutando:
view plain print ?
01. ndb_mgm
02. ndb_mgm > show,
Con lo que el sistema mostrar una pantalla informando de que nodos del cluster estn conectados. Separndolos en los
distintos roles: MGM, NDB y MYSQLD
Hasta que este informe no muestre que todos los nodos estn conectados no podremos probar nuestro cluster.
Los principales motivos por lo que un nodo puede salir como no conectado una vez se ha reiniciado su servicio, son que la
variable connectstring no est apuntando al nodo MGM o que los servicios no se han reiniciado apropiadamente.
El que alguno de los nodos SQL no salga conectado es de los problemas ms comunes que se pueden dar. Si nos
aseguramos de que la configuracin est bien y por mas que reiniciamos el servicio mysql no conseguimos que se conecte
al MGM, la mejor solucin es reiniciar completamente la mquina que este dando el problema. Esto lo resuelve en el 99%
de los casos.
5. Probamos eI cIuster
Una vez que tenemos el cluster perfectamente configurado y arrancados todos los nodos, vamos a crear una base de
datos. Para ello seleccionamos cualquiera de los nodos que tengan un rol de MYSQLD. Nos logamos como root:
view plain print ?
01. mysq1 -u root -p
Y proporcionamos la contrasea que hayamos definido para el root. Ahora en la consola de MySQL creamos nuestro
esquema "cluster_test" con la sentencia:
view plain print ?
01. Ck5A15 SCH5MA c1uster_test,
Y ahora creamos nuestra primera tabla sin olvidar utilizar el motor de almacenamiento NDBCluster. Vamos a crear una
sencillita para este ejemplo:
view plain print ?
01. Ck5A15 1A8L5 tab1e_test {d int) Lu61uL=u08,
Esta obra est licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5
Impulsores Comunidad Ayuda?
----
sin clicks
+ + + + + + + +
0 personas han trado clicks a esta pgina
powered by karmacracy
Share | 0

Registrate y accede a esta y otras ventajas
Anmate y comntanos lo que pienses sobre este TUTORIAL:
E insertamos una serie de registros:
view plain print ?
01. 1NS5k1 1N10 tab1e_test {) vAL05S {1),
02. 1NS5k1 1N10 tab1e_test {) vAL05S {2),
02. 1NS5k1 1N10 tab1e_test {) vAL05S {2),
04. 1NS5k1 1N10 tab1e_test {) vAL05S {4),
0S. 1NS5k1 1N10 tab1e_test {) vAL05S {S),
Ahora nos logamos en la consola MySQL de cualquier otro nodo con rol MYSQLD en el cluster y realizamos:
view plain print ?
01. uSL tab1e_test,
Vemos que sin hacer nada el schema table_test ya existe y ahora si ejecutamos la sentencia:
view plain print ?
01. S5L5C1 d ik0M tab1e_test,
Veremos que el sistema nos devuelve los datos anteriormente introducidos. Esto es porque los datos del cluster se
almacenan en los nodos con rol NDB, y los nodos con rol MYSQLD nos permiten acceder y trabajar sobre ellos.
6. ConcIusiones
Hemos visto lo sencillo que puede ser montar un sistema de alta disponibilidad para los entornos de produccin con
MySQL. Si por lo que sea no consigues configurarlo correctamente, no dudes en preguntar.
Cualquier duda o sugerencia en la zona de comentarios.
Saludos.
A continuacin puedes evaIuarIo:
Regstrate para evaluarlo
Por favor, vota +1 o comprteIo si te pareci interesante
Copyright 2003-2012 All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

You might also like