Mysql Cluster Manual

28
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

description

instalacion de mysql cluster

Transcript of Mysql Cluster Manual

Page 1: Mysql Cluster Manual

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

Page 2: Mysql Cluster Manual

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

Page 3: Mysql Cluster Manual

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.

Page 4: Mysql Cluster Manual

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.

Page 5: Mysql Cluster Manual

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.

Page 6: Mysql Cluster Manual

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 Usamos

sistema operativo Ubuntu 10.10

Cluster Mysql Cluster Server y Mysql Cluster

Client, ambos versión 5.1

Un switch, cables directos, 3

maquinas y acceso a internet.

Un switch, cables directos, 3 maquinas

y acceso a internet para descarga de

synaptic.

Page 7: Mysql Cluster Manual

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

Page 8: Mysql Cluster Manual

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)

Page 9: Mysql Cluster Manual

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

Page 10: Mysql Cluster Manual

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)

Page 11: Mysql Cluster Manual

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

Fig. # 9(Servidor)

Page 12: Mysql Cluster Manual

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.

Fig. # 10(Servidor)

Dirección IP estática asignada

Page 13: Mysql Cluster Manual

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)

Page 14: Mysql Cluster Manual

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)

Page 15: Mysql Cluster Manual

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)

Page 16: Mysql Cluster Manual

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)

Page 17: Mysql Cluster Manual

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

Figura #16(Nodo)

Page 18: Mysql Cluster Manual

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)

Page 19: Mysql Cluster Manual

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)

Page 20: Mysql Cluster Manual

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)

Page 21: Mysql Cluster Manual

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)

Page 22: Mysql Cluster Manual

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)

Page 23: Mysql Cluster Manual

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)

Page 24: Mysql Cluster Manual

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)

Page 25: Mysql Cluster Manual

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)

Page 26: Mysql Cluster Manual

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)

Page 27: Mysql Cluster Manual

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)

Page 28: Mysql Cluster Manual

Referencias

taller de base de datos . Recuperado el 20 de enero de 2012 de,

http://www.cursostapachula.com/blog/2010/11/mysql-cluster/