75840924 Practica Mysql Replicacion

21
U N I V E R S I D A D PABLO GUARDADO CHÁVEZ INCORPORADA AL SISTEMA EDUCATIVO ESTATAL CLAVE: 07PSU0013J REG. PROF. DIEN/048/95 MÉXICO, D.F. ACUERDO DE AUTORIZACIÓN PSU-012/94 Catedrático: ING.GALDINO BELISARIO NANGO SOLIS ING.GALDINO BELISARIO NANGO SOLIS ING.GALDINO BELISARIO NANGO SOLIS ING.GALDINO BELISARIO NANGO SOLIS REPLICACION MYSQL CLUSTER. REPLICACION MYSQL CLUSTER. REPLICACION MYSQL CLUSTER. REPLICACION MYSQL CLUSTER. INTEGRANTES: Jubenal Ovando de Paz Gerardo González Vázquez Elsy Consuelo Pérez Gómez Luz del Carmen Castillejos Meléndez SEMESTRE: FECHA DE ENTREGA: 06/11/2011 Tuxtla Gutiérrez, Chiapas

Transcript of 75840924 Practica Mysql Replicacion

U N I V E R S I D A D PABLO GUARDADO CHÁVEZ INCORPORADA AL SISTEMA EDUCATIVO ESTATAL

CLAVE: 07PSU0013J REG. PROF. DIEN/048/95 MÉXICO, D.F. ACUERDO DE AUTORIZACIÓN PSU-012/94

Catedrático:

ING.GALDINO BELISARIO NANGO SOLISING.GALDINO BELISARIO NANGO SOLISING.GALDINO BELISARIO NANGO SOLISING.GALDINO BELISARIO NANGO SOLIS

REPLICACION MYSQL CLUSTER.REPLICACION MYSQL CLUSTER.REPLICACION MYSQL CLUSTER.REPLICACION MYSQL CLUSTER.

INTEGRANTES:

Jubenal Ovando de Paz

Gerardo González Vázquez

Elsy Consuelo Pérez Gómez

Luz del Carmen Castillejos Meléndez

SEMESTRE:

FECHA DE ENTREGA: 06/11/2011

Tuxtla Gutiérrez, Chiapas

MySQL Clúster.

MySQL Clúster es una versión de alta disponibilidad, alta redundancia de MySQL adaptada para el entorno de computación distribuida. Usa el motor de almacenamiento NDB Cluster para permitir la ejecución de varios servidores MySQL en un clúster. Este motor de almacenamiento está disponible en las distribuciones binarias de MySQL 5.0, Los sistemas en los que está disponible son Linux, Solaris y Windows. Es una tecnología de base de datos en memoria que permite que el sistema gestor de base de datos (SGBD) funcione utilizando hardware no muy costoso y con requerimientos mínimos tanto de software como de hardware, está diseñado para no tener un solo punto de falla, cada componente tiene su propia porción de disco y memoria para trabajar. Un clúster MySQL integra un servidor MySQL estándar y un motor de almacenamiento en memoria llamado NDB clúster, funcionando en un conjunto de una o más computadoras. Cada una de estas computadoras ejecutando uno o más procesos, que pueden consistir en procesos de MySQL server, nodos de almacenamiento de datos, servidor administrador del clúster, o programas especializados para acceder a los datos.

¿Qué es Motor de almacenamiento NDB?

Este es un motor de almacenamiento en memoria que ofrece alta disponibilidad y persistencia de datos. Es altamente configurable ofreciendo un gran número de opciones para manejar el balanceo de cargas y la tolerancia a fallas. Nodo de datos Este tipo de nodo almacena los datos. La cantidad de nodos de este tipo dentro del clúster es igual a la cantidad de réplicas por la cantidad de fragmentos. Es decir, si se manejan 4 réplicas de los datos con 2 fragmentos, se necesitarían 8 nodos de datos. No es necesario manejar más de una réplica. Este tipo de nodo se levanta utilizando el comando ndbd. .

PASOS PARA REALIZAR EL CLUSTER DE MySQL.

Primero que nada tenemos que tener en cuenta las herramientas para realizar el clúster.

1.- Primero que nada es descargar MySQL Clúster de la página oficial http://mysql.com/downloads/cluster/,una vez que estemos en la página descargamos de acuerdo a nuestro sistema operativo.

2.- 3 computadoras, dos de ellas usamos el sistema operativo Windows 7, y en una Windows xp.

3.- tener conexión de red con las tres maquinas.

4.- establecer las ip’s fijas en cada equipo.

� 192.168.1.65 (Administrador “elsy”) � 192.168.1.64 (Nodo de Datos “jubenal”) � 192.168.1.66 (Nodo de Datos “Lucy”)

5.- desactivar los servicios del Firewall y los del Antivirus.

6.- MySQL clúster MySQL-clúster –gpl-7.1.15a-win32.zip.zip que posteriormente extraeremos ala raíz c:\ y renombrar a MySQL.

7.- checar la conexión haciendo ping entre las maquinas.

CONFIGURACION DE LOS 3 NODOS.

Primero tenemos que descomprimir los archivos MySQL clúster MySQL-clúster –gpl-7.1.15a-win32.zip.zip en cada ordenador correspondiente en el disco local c:\ luego renombramos la carpeta que se crea, como MySQL.

Mysql contiene todos los necesita. Son 16 archivos en total.

Mysql contiene todos los archivos binarios necesarios para correrSon 16 archivos en total.

Renombrar por

mysql.

esarios para correr el clúster que

enombrar por

Hecho lo anterior ahora en el Disco local c:\ crearemos una carpeta llamada my_cluster y dentro de esta carpeta crearemos las siguientes carpetas:

� conf Dentro de esta carpeta crearemos las 2 siguientes carpetas:

� mysqld_data

� mysql � ndbinfo � ndb_data

Hasta aquí la configuración del nodo administrador y los nodos de datos es la misma, es decir creamos las mismas carpetas en los 3 ordenadores.

Para lo cual crearemos el archivo config.ini dentro de la carpeta conf que creamos anteriormente. Este archivo contendrá lo siguiente: Nodo Administrador “Elsy” [ndb_mgmd] #opciones de procesos. HostName=192.168.1.65 #se guardaran acá los logs de admon DataDir=c:\my_cluster\ndb_data Nodeid=1 [Ndbd default] #número de replicas NoOfReplicas=2 #DataDir=C:/mysql/bin/cluster-data #DataMemory=80M #IndexMemory=18M

Nodo jubenal “A”

[Ndbd] HostName=192.168.1.64 #se guardaran acá los logs de nodo a DataDir=c:\my_cluster\ndb_data Nodeid=3 Nodo Lucy “B” [Ndbd] HostName=192.168.1.66 #se guardaran acá los logs de nodo b DataDir=c:\my_cluster\ndb_data Nodeid=4 [Mysqld] [Mysqld]

Los nodos de datos se definen bajo el bloque [ndbd] definiendo casi los mismos parámetros que para el nodo administrador ya que los nodos de datos no definen el parámetro basedir, se debe definir también un Id para los nodos. En config.ini se agregan los bloques [mysqld] dependiendo del número de nodos sql que se quieran levantar. Una vez definido el archivo config.ini se procede a arrancar el nodo administrador, para lo cual abrimos una terminal e ingresamos a la carpeta my_cluster y escribimos lo siguiente: Desde la consola cmd. cd.. cd.. cd my_cluster /mysql/bin/ndb_mgmd -f conf/config.ini --initial --configdir=c:\my_cluster\conf\

Hasta acá está levantado el nodo administrador.

Si todo sale bien dejamos esta ventana del cmd abierta y proseguimos a abrir otra ventana cmd del nodo administrador y movernos a la carpeta bin y escribir Lo siguiente: ndb_mgm, y dentro del ndb_mgm escribir show para ver las conexiones existentes.

Dejamos la consola abierta y dejamos por un momento el nodo administrador.

NODO DE DATOS.

MySQLD necesita la base de datos de Mysql con la configuración esencial de datos procederemos a instalar la base de datos. En Windows se hace con los siguientes comandos desde símbolo de sistema: Esta es maquina de 32 bits, les copiara 69 archivos, y el segundo 26, Estos procesos se hacen en los 2 nodos de Datos.

• Copy c:\mysql\data\mysql my_cluster\mysqld_data\mysql • copy c:\mysql\data\ndbinfo my_cluster\mysqld_data\ndbinfo

Una vez hecho lo anterior se procede a crear el archivo de configuración para los nodos de datos el cual deberá guardarse dentro de la carpeta conf. Dicho archivo contendrá lo siguiente:

1. Maquina Lucy. [Mysqld] Ndbcluster Port=4002 Ndb-connectstring='host=192.168.1.65' [mysql_cluster] Ndb-connectstring='host=192.168.1.65'

El Puerto que indiques debe ser diferente a 3306 de preferencia mayor a 4000, además de que el puerto seleccionado sea diferente con los otros puertos elegidos de los nodos de datos y que no sea 3306 puesto que ese está ocupado por otro demonio de mysql.

2. Maquina jubenal.

[Mysqld] Ndbcluster Port=4001 Ndb-connectstring='host=192.168.1.65' [mysql_cluster] Ndb-connectstring='host=192.168.1.65'

Hecho lo anterior conectaremos ahora con el nodo administrador con el siguiente comando: c:\mysql\bin\ndbd -c 192.168.1.65:1186

Se puede observar que la conexión ha sido exitosa, hacer esta conexión para los nodos de datos, observar que en la conexión de los nodos de datos cambiara el nodeid=X.

Siguiendo con el proceso en la maquina administradora ingresar de nuevo el comando show en la consola del nodo administrador podremos ver que ya tenemos los 2 nodos de datos conectados.

Ahora solo resta levantar los nodos SQL, para lo cual ingresamos a través de consola hasta la carpeta my_cluster y escribimos el siguiente comando en Windows para levantar el api.

Nodo Jubenal y Lucy. C: /Mysql/bin/Mysqld --defaults-file=conf/my.cnf –console

Nodos levantados.

Una vez ingresado dichos comandos checamos nuevamente con show en la consola del nodo administrador y veremos que ya tenemos los Apis levantados.

Con esto ya tenemos el clúster de mysql configurado correctamente, solo resta hacer algunas pruebas para ver si el clúster está funcionando correctamente.

PRUEBAS.

En todos los nodos primeramente hay que inicializar el MySQL Se abre una nueva consola en los nodos de datos y escribir mysql –u root –P400X en nuestro caso pondremos en jubenal –P4001 y en Lucy –P4002.

Esto nos permitirá entrar a mysql para poder crear una base de datos en cualquiera de los nodos de datos haremos lo siguiente.

Acá estamos creando la base de Datos.

Una vez hecho esto en una maquina nodo, procedemos a en la segunda maquina nodo ya dentro de mysql ver que bases de datos hay creadas.

En ambos nodos podremos ver las bases de datos, crearlas, también crear, eliminar y modificar las tablas, así como introducir datos a las tablas, eliminar datos, etc.

ERRORES QUE NOS OCACIONARON AL REALIZAR EL CLUSTER.

Al principio de la practica en un nodo de Datos no estaba en red con las demás por motivo de las ip’ s de que se configuro mal. Este error fue corregido inmediatamente creándolas estáticas. Al intentar levantar las api en con el siguiente comando en mysql marcaba un error en la conexión

Esto se debía a que no habíamos matado el servicio de mysql o desinstalado.

En el archivo my.ini estaba mal escrito no encontraba esta ruta hicimos este paso deseleccionamos esta casilla en opciones de carpeta para poder ver el error.

Otro de los errores fue que cuando queríamos crear una tabla no reflejaba en el segundo nodo esto se debía a que no declarábamos bien la instrucción. Mal: Create table a<id int > Bien: Create table a<id int > engine=ndbcluster;

CONCLUSION

En primer lugar esta práctica nos ayudo a comprender que tan importante son los sistemas de información y el manejo de las mismas, después de esto la configuración del programa mysql clúster, aquí se realizaron muchas pruebas, y la gran importancia que tiene el tener un sistema de base de datos distribuidas, a pesar de que ya estaban bien las conexiones fue necesario completar la codificación y configuración de config.ini y my.ini en los puertos correctos por motivo de que no nos levantaban las Apis. Y la conclusión final es que este tipo de conexiones y configuraciones que se hacen en mysql clúster son de gran ayuda cuando queremos tener una base de datos y compartirlas con otros clientes, además que no solamente se puede realizar mediante cableado sino también inalámbricamente y así compartir los recursos o informaciones a mayor distancia o en un área local la información que deseamos compartirla.

BIBLIOGRAFIA.

http://www.mysql.com/products/cluster/ http://dev.mysql.com/doc/refman/5.0/es/multi-instal l.html MANUAL DE APOYO MYSQL CLUSTER PRÁCTICA 2