Issuu on Google+

UNIVERSIDAD TECNOLÓGICA DE TECAMACHALCO

Bases de Datos Distribuidas Configuración de Mysql Cluster

8 Vespertino

PRESENTAN:  Encarnación Marín Sarahí  Flores Muñoz María Teresa  Hernández Rodríguez Noemí  López Jiménez José Everardo  Salinas Sánchez Gerardo  Sánchez Flores María Sonia  Vera García Alfredo  Zepeda Vázquez Gonzalo


Tabla de contenido Introducción ....................................................................................................................................... 3 Definición de Cliente-Servidor ........................................................................................................ 3 ¿Qué es una base de datos distribuida? ...................................................................................... 4 Ventajas ..................................................................................................................................... 5 Desventajas ............................................................................................................................... 5 Materiales y Recursos ..................................................................................................................... 6 Configuración del Cluster ................................................................................................................ 7 Practica .............................................................................................................................................. 22 Referencias ........................................................................................................................................ 28


Introducción

Las bases de datos distribuidas son un conjunto de bases de datos lógicamente relacionadas, las cuales se encuentran distribuidas en diferentes espacios lógicos (Por ejemplo en un administrador y un nodo). Se realiza la configuración de Mysql Cluster Server y Mysql Cluster Client, ambos en su versión 5.1. en el sistema operativo Ubuntu de Linux. Para la instalación de los Cluster la maquina debe contar con acceso a internet. La configuración que se realiza en el administrador y en cada uno de los nodos se describe durante el desarrollo del manual y para lo cual se utilizaron recursos como un switch, acceso a internet, 3 maquinas con sistema operativo Ubuntu; de las cuales una será el servidor y las dos restantes serán los nodos (un nodo funge como máster y el otro como esclavo). Definición de Cliente-Servidor

Arquitectura en la que un programa (cliente) tiene como objetivo básico conseguir datos de otro (servidor) sin necesidad de que ambos se estén ejecutando en el mismo ordenador. La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.


La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta. ¿Qué es una base de datos distribuida?

Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (por ejemplo un servidor corriendo 2 maquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder a los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:  

Hay múltiples computadores, llamados sitios o nodos. Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.


Ventajas    

 

Refleja una estructura organizacional - los fragmentos de la base de datos se ubican en los departamentos a los que tienen relación. Autonomía local - un departamento puede controlar los datos que le pertenecen. Disponibilidad - un fallo en una parte del sistema solo afectará a un fragmento, en lugar de a toda la base de datos. Rendimiento - los datos generalmente se ubican cerca del sitio con mayor demanda, también los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores. Economía - es más barato crear una red de muchas computadoras pequeñas, que tener una sola computadora muy poderosa. Modularidad - se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos).

Desventajas 

  

Complejidad - Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que pueden presentar dificultades únicas. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer joins que afecten varios sistemas. Economía - la complejidad y la infraestructura necesaria implica que se necesitará una mayor mano de obra. Seguridad - se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas. Integridad - Se vuelve difícil mantener la integridad, aplicar las reglas de integridad a través de la red puede ser muy caro en términos de transmisión de datos. Falta de experiencia - las bases de datos distribuidas son un campo relativamente nuevo y poco común por lo cual no existe mucho personal con experiencia o conocimientos adecuados. Carencia de estándares - aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido. Diseño de la base de datos se vuelve más complejo - además de las dificultades que generalmente se encuentran al diseñar una base de datos, el diseño de una base de datos distribuida debe considerar la fragmentación, replicación y ubicación de los fragmentos en sitios específicos.


Materiales y Recursos

Se har谩 la configuraci贸n de Mysql Cluster en equipos que cuentan con el sistema operativo Ubuntu de Linux en su versi贸n 10.10 Materiales y Recursos necesarios sistema operativo Cluster Un switch, cables directos, maquinas y acceso a internet.

Usamos Ubuntu 10.10 Mysql Cluster Server y Mysql Cluster Client, ambos versi贸n 5.1 3 Un switch, cables directos, 3 maquinas y acceso a internet para descarga de synaptic.


Configuración del Cluster

Para la instalación de MySQL Cluster lo que se debe de hacer es ir a la pestaña de “Sistema”→”Administracion”→”Gestor de paquetes Synaptic”, como se muestra en la siguiente pantalla:

Fig. # 1(Servidor) A continuación aparece una ventana para autenticarse y poder realizar tareas administrativas, se pone el password y se da clic en el botón de “aceptar”.

Fig. # 2(Servidor) Una vez y de haberse autenticado ahora si se podrán realizar tareas


administrativas, lo siguiente es la instalación de Mysql Cluster Client 5.1, para esto solo se debe de buscar el paquete → seleccionar el paquete → dar clic derecho → elegir la opción “Marcar para instalar.

Fig. # 3(Servidor) De igual forma que el paso anterior para la Instalación de Mysql Cluster Server 5.1, se debe de buscar el paquete → seleccionar el paquete → dar clic derecho → elegir la opción “Marcar para instalar”.

Fig. # 4(Servidor)


Después de haber Marcado para reinstalar MySQL Cluster Client, MySQL Cluster Server, se da clic en la opción de “Aplicar”

Fig. # 5(servidor) La siguiente pantalla muestra el proceso de descargar e instalación (los pasos anteriores se realizan igualmente en el servidor y los nodos)

Fig. # 6(Servidor)

A continuación se le

asigna una IP estática al equipo, para esto se siguen los


siguientes pasos: dar clic en la pestaña de “Sistema “→”Preferencias” → “Conexiones de red” como se muestra en la siguiente figura:

Fig. # 7(Servidor) Continuando con la asignación de la IP fija en la pestaña “Cableada” se le da clic en el botón de editar como se muestra en la sig. Figura:

Fig. # 8(servidor)


Se le asigna la IP estática estando en la pestaña de “Ajustes de IPv4”, se da clic en “aceptar”

Fig. # 9(Servidor)


Ahora se verifica la dirección IP asignada abriendo la consola y escribiendo el comando  ifconfig tal como se muestra en la siguiente figura (esto se hace en el servidor como en los nodos)para a cerciorarnos que en realidad se le asignó una IP estática. Nota: se le asigna una IP diferente al servidor como a los nodos. Dirección IP estática asignada

Fig. # 10(Servidor)


Se crea el archivo de configuración en el servidor de la siguiente manera, se abre una terminal y se teclea el siguiente comando  sudo gedit /etc/mysql/ndb_mgmd.cnf En el cual se describe la configuración del servidor como es: IP del servidor memoria asignada a cada nodo el numero de replicas el numero de nodos la ip de los nodos la dirección donde se realizaran los respaldos

Fig. # 11(Servidor)


Se configura en el servidor el archivo my.cnf, en una terminal se escribe el comando. ďƒź sudo gedit /etc/mysql/my.cnf ďƒź

Fig. # 12(Servidor)


En la siguiente figura se muestra en una linea “bind-address” el cual se va a comentar con y se da clic en ”guardar”:

Fig. # 13(Servidor) Nos vamos al nodo uno y se ejecuta el siguiente comando  sudo gedit /etc/mysql/my.cnf se introduce el password para acceder como se muestra en la siguiente figura:

Fig. # 14(Nodo)


Se localiza la línea que diga “[mysqld]”y debajo de esta se escriben las siguientes líneas  ndbcluster  ndb-connectstring=192.168.1.6

Fig. # 15(Nodo)


En la siguiente figura se busca la línea que diga “bind-address=127.0.0.0” y se comenta

Figura #16(Nodo)


En el archivo my.cnf se busca la línea que diga “key_buffer”y debajo de esta escribiremos lo siguiente  [MYSQL_CLUSTER]  ndb-connecstring = 192.168.1.6 que hace referencia a la IP del servidor,

Fig. # 17(Nodo)


Una ves realizado lo que se indica en las tres figuas anteriores se da guardar al archivo y se cierra para seguir con la configuración. Unas vez modificado el archivo my.cnf abrimos una terminal en la que escribiremos el siguiente comando  sudo mkdir /var/lib/mysql-cluster/backup El cual nos generara una carpeta dentro de mysql-cluster en donde se estarán haciendo los respaldos de las BD que se indiquen.

Fig. # 18(Nodo)

Una ves creada la carpeta de backup, abrimos una terminal que en la cual escribimos el siquiente comando  sudo chown mysql:mysql /var/lib/mysql-cluster Este comando le dará los privilegios al usuario mysql para poder generar los respaldos.

Figura #19(Nodo)


Al término de pasos anteriores reiniciamos los demonios del servidor y el de los nodos, esto se hace de la siguiente manera: Para el servidor abrimos una terminal y escribimos el siguiente comando  sudo /etc/init.d/mysql-ndb-mgm restart Al dar enter nos pide la contraseña del administrador del servidor, he introducimos la contraseña, una ves realizado esto nos mostrara como detiene el servicio y lo vuelve a reiniciar.

Figura #20(servidor) Ahora para reiniciar los nodos, abrimos una terminal y escribimos el siguiente comando  sudo /etc/init.d/mysql restart Al dar enter nos pide la contraseña del administrador del nodo, he introducimos la contraseña, una ves realizado esto nos mostrara como detiene el servicio y lo vuelve a reiniciar.

Figura# 21(Nodo)


En los nodos abrimos una terminal y escribimos el siguiente comando.  sudo /etc/init.d/mysql-ndb restart Esto para que los demonios de los nodos se reinicien completamente.

Figura # 22(Nodo) Para poder ver la conexión entre los nodos y el servidor corremos el siguiente comando  ndb_mgm y enter, después escribimos el siguiente comando  show; en seguida mostrara la configuración de mysql cluster, como es: El nodo maestro El numero de nodos conectados al servidor La ip que tiene cada nodo La id del servidor

Figura #23(Servidor)


Practica Ahora para asegurarnos que el maysql cluster funciona correctamente seguimos los siguientes pasos

Abrimos una terminal en el server y escribimos el siguiente comando  sudo mysql –u root –p En seguida nos pedirá la contraseña del administrador del servidor al introducirla y dar enter pedirá la contraseña del administrador de mysql al proporcionar estos datos iniciamos a mysql y empezamos a trabajar con el mysql. Después mostramos las bases de datos que existen en mysql con el siguiente comando  show databases;

Figura #24(Servidor)


Abrimos una terminal en el nodo 1 y escribimos el siguiente comando  sudo mysql –u root –p En seguida nos pedirá la contraseña del administrador del servidor al introducirla y dar enter pedirá la contraseña del administrador de mysql al proporcionar estos datos iniciamos a mysql y empezamos a trabajar con el mysql. Después mostramos las bases de datos que existen en mysql con el siguiente comando  show databases;

Figura# 25(Nodo 1)


Creamos una base de datos en el nodo 1 con el siguiente comando  créate database empresati; y una ves realizado esto mostramos las bases de datos exitentes y podemos ver que aparece la base de datos creada por nosotros.

Figura #26(Nodo 1) Después usamos la base de datos y creamos una tabla con los siguientes comandos  use empresati  créate table empresa (id inte(4), nombre varchar(20))engine=ndbcluster; Una vez realizado esto le pedimos que no muestre las tablas existentes en la base de datos con el siguiente comando  show tables

Figura # 27(Nodo 1)


Ahora en el nodo 2 verificaremos que exista la base de datos sin que nosotros la creemos, ya que para eso configuramos a mysql cluster y lo primero que debemos de hacer es entra a mysql con el siguiente comando.  sudo mysql –u root –p y a continuación mostramos todas las bases de datos con el siguiente comando  show databases; Podremos verificar que efectivamente existe la base de datos empresasti.

Figura#28(Nodo 2)


Entonces podremos usar la base de datos y mostrar sus tablas con las siguientes sentencia  use empresasti;  show tables; Para verificar que realmente existe la tabla empresa, entonces podremos introducir datos y mostar los datos a la tabla con las siguientes sentencias  insert into empresa values(„0001‟,‟Quality SoftNet‟);  select * from empresa;

Figura#29(Nodo 2)


En el nodo 1 podremos verificar que realmete los daros se guardaron con la síguete sentencia  select * from empresa; y después desde el nodo 1 introducir mas datos con la siguiente línea  insert into empresa values(„0002‟,‟All System and IT‟);

Figura #30(Nodo 1) En el nodo 2 podemos verificar que la información se encuentra disponible con el siguiente comando  select * from empresa;

Figura #31(Nodo 2)


Referencias taller de base de datos . Recuperado el 20 de enero de 2012 de, http://www.cursostapachula.com/blog/2010/11/mysql-cluster/


Mysql Cluster Manual