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