• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cluster MySQL en Windows
 

Cluster MySQL en Windows

on

  • 337 views

Cluster MySQL en Windows 7

Cluster MySQL en Windows 7

Statistics

Views

Total Views
337
Views on SlideShare
300
Embed Views
37

Actions

Likes
0
Downloads
17
Comments
0

6 Embeds 37

http://basesdedatosues.blogspot.com 24
http://basesdedatosues.blogspot.mx 7
http://basesdedatosues.blogspot.com.es 3
http://cloud.feedly.com 1
http://www.basesdedatosues.blogspot.com 1
http://basesdedatosues.blogspot.ro 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cluster MySQL en Windows Cluster MySQL en Windows Document Transcript

    •  Luis Josué Chávez Vigil Josué Daniel Orellana Aguirre Erick Stanley Cruz MartínezObjetivos: Conocer el funcionamiento del clúster en MySQL, así como de la manera de configurarlo en una red local,además de distinguir los elementos que lo conforman. Identificar las características, requerimientos hardware/software, ventajas y desventajas de un clúster MySQL. Definir lo que es un clúster, así como los diferentes tipos de nodos que el clúster MySQL maneja, y además,aprender la manera correcta de configuración.Introducción:MySQL Cluster es la versión de MySQL pensada para alta disponibilidad, escalabilidad y alto rendimiento. UnMySQL server que es parte de un MySQL Clúster difiere sólo en un aspecto de un servidor MySQL normal (noclúster), en que emplea el motor NDB Clúster.Este motor también se conoce simplemente como NDB, las dos formas del nombre son sinónimas. Desde queMySQL server es parte del clúster, necesita datos de configuración que sepa cómo acceder al nodo MGM paraobtener datos de configuración del clúster.El comportamiento por defecto es buscar el nodo MGM en localhost. Sin embargo, puede necesitar especificar sulocalización donde se encuentre, esto puede hacerse en my.cnf o en la línea de comandos del servidor MySQL.Antes de poderse usar el NDB, al menos un nodo MGM debe ser operacional, así como los nodos de datosdeseados.Conceptos Básicos:Clúster: Grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto esvisto como un único ordenador, más potente que los comunes de escritorio.De un clúster se espera lo siguiente: Alto rendimiento Alta disponibilidad Equilibrio de carga Escalabilidad
    • Clúster: Grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto esvisto como un único ordenador, más potente que los comunes de escritorio.Características:Para comunicación entre nodos, el clúster soporta red TCP/IP en cualquier topología estándar, y como mínimo seespera una red 100 Mbps Ethernet, más un switch, hub, o router para proporcionar conectividad de red al clústerentero. Recomendamos que MySQL Clúster se ejecute en su subred que no está compartida con máquinas no-clústerpor las siguientes razones: Seguridad: La comunicación entre nodos del clúster no está cifrada. La única forma de proteger transmisionesdentro de un MySQL Clúster es ejecutar su clúster en una red protegida. Eficiencia: Inicializar un MySQL Clúster en una red privada o protegida permite que el clúster haga usoexclusivo del ancho de banda entre máquinas del clúster.ndbd_mgm.Es el nodo de Management. Tiene la configuración del clúster. No es necesario más de uno, pero consume tan pocoque se pueden tener dos. Nosotros lo usamos para lanzar backups, reiniciar nodos, activar el log… además, losnodos ndbd lo usan al entrar en el clúster para recoger la configuraciónndbd:Son los nodos de almacenamiento. Estos deben tener la capacidad de procesamiento y la memoria RAM suficientepara trabajar con los datos. Al menos debemos tener dos nodos ndbd. Si queremos usar múltiples cores, el demonioserá ndbmtd mysqld. Al clúster se puede acceder usando la API o mediante un servicio.mysqld:Al menos debemos tener dos nodos mysqld o tendremos un SPOFDesventajas: La configuración y puesta en marcha difiere completamente de la versión estándar de la base de datos. Requiere gran cantidad de memoria RAM. Índices en RAM siempre. Datos en RAM o en disco duro. El engine es ndbclúster, no se puede usar InnoDB o MyISAM en clúster. No es una base de datos de propósito general. Subqueries lentas Joins lentas No soporta integridad referencial y claves externas No hay rollbacks parciales ni savepoints, solo rollbacks completos No se garantiza el commitRecomendaciones:La web de MySQL recomienda 5 servidores: 2 ndbd 2 mysqld 1 ndb_mgmdPodemos mejorar esta arquitectura y hacerla más barata montando un ndb_mgmd en cada mysqld 2 ndbd 2 mysqld + ndb_mgmd
    • Topología:Hardware: 3 COMPUTADORAS CON WINDOWS 7 MYSQL CLÚSTER EN C/U DE PC SWITCH CABLES DE REDArchivos de Configuración:ndb_mgmconfig.iniAcá estan las configuraciones para el manejo de nodos. Dentro se encuentra los datadir y los database.· En el database se encuentran los binarios y archivos de configuracion para la ejecución correcta de config.· En el datadir se hace referencia a los logs que arroja el clúster.ndbdSe arranca desde los binarios alojados en el directorio /mysqlc/bin/ndbd -c 192.168.4.1:1186mysqldSe configura el my.cnf el cual es el encargado de enlazar el nodo de MySQL al nodo de administrador, soportando elengine ndbclúster.
    • Procedimiento:Descargamos el cluster mysql de la siguiente dirección: http://dev.mysql.com/downloads/cluster/Definimos nuestro sistema operativo y descargamos:Nos pedirá que ingresemos nuestra cuenta de Oracle (sino posee una deberá crearla). Una vez descargado,descomprimimos el archivo y genera una carpeta con los siguientes directorios:Arrancar Clusterc:/mysql/bin/ndb_mgmd -f conf/config.ini --initial --configdir=c:my_clusterconfMostrar los nodos conectados al administradorc:mysqlbinndb_mgm -e showArrancar todostart /B c:Users"Chavez Vigil"mysqlbinndbd -c localhost:1186Arrancando mysqlstart /B c:Users"Chavez Vigil"mysqlbinmysqld --defaults-file=confmy.inic:Users"Chavez Vigil"mysqlbinmysql -h 127.0.0.1 -P5000 -u rootApagando serviciosc:Users"Chavez Vigil"mysqlbinmysqladmin -u root -h 127.0.0.1 -P5000 shutdownc:Users"Chavez Vigil"mysqlbinndb_mgm -e shutdownC:UsersChavez Vigilmy_clusterndb_data
    • Pasos a seguir:Cree las siguientes carpetas en el directorio raíz del sistema. Para ello abrimos cmd y presionamos Ctrl+Shift+Enterpara abrirlo en modo administrador:Creamos una nueva carpeta llamada mysql:Cuando descargamos el cluster desde el enlace mostrado anteriormente y lo descomprimimos, el contenido de lacarpeta que se crea cuando se descomprime lo copiamos completamente en la carpeta mysql que acabamos de crear:
    • Abrimos una nueva consola en modo de administrador y copiamos el contenido de esta carpeta mysql en mycluster:Se deberán copiar aproximadamente 72 archivos.Se deberán copiar aproximadamente 42 archivos.Se deberán copiar aproximadamente 18 archivos.Ahora bien, dentro de mycluster creamos un archivo config.iniEntramos en la carpeta conf. Lo que continúa será editar el archivo config.ini para los nodos de datos:[ndb_mgmd]HostName=192.168.4.1DataDir=c:my_clusterndb_dataNodeid=1Esto significa que el nodo de administrador tendra esa ip y que loslogs que generen se estaran almacenando el esa direccion de archivo.[Ndbd default]NoOfReplicas=2
    • Esto significa que seran 2 nodos de datos por defecto; si queremos agregar mas solo incrementamos ese numero.[Ndbd]HostName=192.168.4.2DataDir=c:my_clusterndb_dataNodeid=3Esto significa que es el primer nodo de datos y esta alojado en esa ip y los logs iran a parar a esa direccion.Nodeid=4HostName=192.168.4.3DataDir=c:my_clusterndb_dataEsto significa que es el segundo nodo de datos y esta alojado en esa ip y los logs iran a parar a esa direccion.[Mysqld][Mysqld]Y estas 2 lineas significan que por cada nodo de datos tendremos 1 nodo mysql .Ahora crearemos las variables de entorno del sistema. Desde el menú inico escribimos variables de entorno yescogemos la que dice SISTEMA:En la ventana que aparece damos clic en el icono Variables de Entorno. Ahí buscamos la variable path que es la quevamos a editar. Al final de la variable escribimos:C:mysqlbin:C;my_clusterndb_dataEsto es para que ejecute los binarios necesarios para el funcionamiento del cluster. Reiniciamos la computadora.Después del reinicio abrimos como administrador la consola y arrancamos el cluster:
    • Abrimos una nueva consola y ejecutamos netstat –b para verificar si esta corriendo el cluster:En este momento ya está escuchando peticiones de los nodos de datos. En la misma terminal ejecutamos:Con el comando show mostramos los nodos de datos conectados:Por el momento NO tenemos nodos de datos conectados.Esto deberíamos ver al tener los nodos conectados:
    • Ahora pasamos a la configuración de los nodos de datos. Esto se hará en cada máquina que será nodo de datos ymysql. Creamos la misma estructura de directorios que se hizo en el nodo de administrador. Descomprimimos elarchivo del cluster y hacemos lo siguiente:Volvemos a copiar el contenido del archivo descomprimido, tal como en el administador. Una vez hecho esto,entramos en la carpeta conf. Editamos un archivo llamado my.cnf que se encuentra en el directorio conf. Cada unode los nodos de datos lo poseerá:En síntesis, lo que este archivo significa es que el nodo mysql ocupará el motor ndbcluster para conectarse al nodode administrador a través del puerto 4002, la cadena de conexión muestra la ip del administrador y el mysql_clusterse encontrará también en la misma máquina administrador.Posteriormente abrimos la cmd de Windows y una vez arrancados los servicios, estas ventanas NO deben cerrarse,de lo contrario se interrumpirá la comunicación.Arrancamos el nodo de datos:
    • Vemos si el servicio está corriendo:Iniciamos el nodo mysql:Nos conectamos a una instancia MySQL:
    • A manera de ejemplo, veamos los motores. Veremos que ndbcluster está corriendo usando el comando showengines; (Este es el motor del cluster) y para ver las bases de datos usamos show databases;En uno de los nodos de datos se ha creado una base de datos llamada prueba. Si ejecutamos nuevamente showdatabases; debemos verla reflejada:
    • Ahora bien, vamos a crear una tabla en este nodo de datos. Para ello escribimos use prueba; que representa queocuparemos la base de datos prueba. Luego creamos la tabla en ella llamada alumno, y al final de la consulta decreate table alumno escribimos engine=ndb;para que esta sentencia se ejecute en todos los nodos conectados:Ahora insertamos un alumno nuevo y describimos la tabla:
    • Bibliografía MySQL®, obtenida el 26 de abril de 2013, dehttp://downloads.mysql.com/tutorials/cluster/mysql_wp_cluster_quickstart_windows.pdf Uv.mx, obtenida el 26 de abril de 2013, dehttp://www.uv.mx/personal/lizhernandez/files/2013/04/Comandos-mysql.pdf Manuales Guebs.com®, obtenida el 27 de abril de 2013, de http://manuales.guebs.com/mysql-5.0/ndbcluster.html#mysql-cluster-configuration Slideshare® Base de Datos MySQL, obtenida el 27 de abril de 2013,de http://www.slideshare.net/miguelangelnieto/mysql-high-availavility-load-balacing-cluster Scribd® ¿Qué es un CLUSTER?, obtenida el 27 de abril de 2013,de http://es.scribd.com/doc/6858172/QUE-ES-UN-CLUSTER