Manual Cluster Mysql

19
Base de Datos Distribuidas ALUMNOS: LAURA IRIS AGUILAR CASTILLO FATIMA YOJANA PEREZ GODINEZ OMAR FERNANDO JIMENEZ ARRAZATE MATERIA: BASE DE DATOS DISTRIBUIDAS CATEDRÁTICO: MTRA. y L.S.C: TERESA DEL CARMEN CABRERA GÓMEZ TITULO: “CLUSTER CON MYSQL EN UBUNTU 9.04TAPACHULA, CHIAPAS; A 06 DE MAYO DE 2011.

Transcript of Manual Cluster Mysql

Page 1: Manual Cluster Mysql

Base de Datos Distribuidas

ALUMNOS:

LAURA IRIS AGUILAR CASTILLO FATIMA YOJANA PEREZ GODINEZ

OMAR FERNANDO JIMENEZ ARRAZATE

MATERIA: BASE DE DATOS DISTRIBUIDAS

CATEDRÁTICO: MTRA. y L.S.C: TERESA DEL CARMEN CABRERA GÓMEZ

TITULO: “CLUSTER CON MYSQL EN UBUNTU 9.04”

TAPACHULA, CHIAPAS; A 06 DE MAYO DE 2011.

Page 2: Manual Cluster Mysql

Base de Datos Distribuidas

INTRODUCCIÓN

¿QUE ES UN CLUSTER?

El término clúster se aplica a los conjuntos o conglomerados de computadoras

construidos mediante la utilización de componentes de hardware comunes y

que se comportan como si fuesen una única computadora.

Simplemente, un clúster es un grupo de múltiples ordenadores unidos mediante

una red de alta velocidad, de tal forma que el conjunto es visto como un único

ordenador, más potente que los comunes de escritorio.

Para que un clúster funcione como tal, no basta solo con conectar entre sí los

ordenadores, sino que es necesario proveer un sistema de manejo del clúster,

el cual se encargue de interactuar con el usuario y los procesos que corren en

él para optimizar el funcionamiento.

En MySQL Cluster, un conjunto de procesos ndbd cooperan para tratar datos.

Estos procesos pueden ejecutarse en la misma máquina (equipo) o en

máquinas distintas. Las correspondencias entre nodos de datos y máquinas

cluster son completamente configurables.

Page 3: Manual Cluster Mysql

Base de Datos Distribuidas

CLUSTER CON MYSQL:

Para hacer una configuración de Clúster con MySQL primero tenemos que tener

instaladas algunas cosas:

1. Se debe de tener instalado una distribución Linux, en las maquinas a utilizar

2. Se debe de tener una conexión de red entre las computadoras que se utilizaran

para realizar el clúster

3. La IP debe de ser fija para cada uno de los equipos

4. Se deben de instalar los siguientes paquetes, esto se hace desde el sistema

Synaptic para lo cual te vas a sistema, Administración, Gestor de Paquetes Synaptic:

mysql-server-5.0

mysql-client-5.0

mysql-admin

Se le da clic derecho Marcar y después aplicar. Al término de esto, ya se puede

configurar el administrador y los nodos.

En este ejemplo se va a realizar con 3 maquinas las cuales son:

1. Administrador: IP 192.168.1.101

2. Nodo 1: IP 192.168.1.53

3. Nodo 2: IP 192.168.1.54

Page 4: Manual Cluster Mysql

Base de Datos Distribuidas

Para la configuración de las IP dinámicas se van a la Barra de herramientas donde

están las maquinas para conexión a internet se le da clic derecho, editar conexión.

En la pestaña cableada elegimos Auto eth0 y le damos Editar. Posteriormente nos

pide los permisos de usuario y tenemos que poner contraseña para autenticar.

En la nueva ventana que aparecerá (Editando Auto eth0) se escoge la pestaña Ajustes

de Ipv4, en Métodos se busca Manual y le damos Añadir, ahí añadimos la IP fija con

su mascara de red y la Puerta de enlace le damos aplicar y cerrar.

Page 5: Manual Cluster Mysql

Base de Datos Distribuidas

CONFIGURACIÓN DEL ADMINISTRADOR

1.- Primero hay que crear un archivo que se llame ndb_mgmd.cnf en la dirección

/etc/mysql:

2.- Luego hay que llenar dicho archivo con el siguiente contenido. Asi posteriormente

vamos a guardar los cambios efectuados y regresamos a consola.

[NDBD DEFAULT] NoOfReplicas=2 DataMemory=80M # cantidad de memoria que le vamos a asignar IndexMemory=18M # cantidad de memoria que le vamos a asignar #Configuracion del Cluster [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] #En esta sección vamos a configurar el nodo administrativo del clúster [NDB_MGMD] #IP del nodo administrativo (este sistema) HostName=192.168.1.101 [NDBD] #Sección de los nodos de almacenamiento #IP del primer nodo HostName=192.168.1.53 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=128M [NDBD] #Sección de los nodos de almacenamiento #IP del segundo nodo HostName=192.168.1.54 DataDir=/var/lib/mysql-cluster BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=128M #Por cada nodo debemos de incluir un [MYSQLD] [MYSQLD] [MYSQLD]

Page 6: Manual Cluster Mysql

Base de Datos Distribuidas

3.- En el archivo my.cnf que esta ubicado en /etc/mysql debemos de comentar la

siguiente línea, comentarlo con el símbolo de # bind-address = 127.0.0.1

Page 7: Manual Cluster Mysql

Base de Datos Distribuidas

4.- Se debe de reiniciar el servicio de mysql-ndb.mgm

5.- Se ingresa al ndb_mgm

6.- Una vez estando adentro de esa aplicación se ejecuta un show; para poder

visualizar los nodos que tenemos conectados (aquí en la siguiente imagen ya tenemos

todos los nodos conectados, puestos que ya los tenemos configurados). Pero mas

adelante enseñamos como se debe configurar cada nodo de almacenamiento.

Con estos pasos ya tenemos configurado nuestro nodo Administrador.

Page 8: Manual Cluster Mysql

Base de Datos Distribuidas

CONFIGURANDO EL NODO DE ALMACENAMIENTO 1 (192.168.1.53)

1.- Desde el Gestor de Aplicaciones Synaptic se selecciona mysql-client 5.0 se marca

para instalar y se aplica.

2.- Vamos a configurar el nodo para ello abrimos el archivo my.cnf que se encuentra

ubicado en /etc/mysql. Con la siguiente instrucción sudo gedit /etc/mysql/my.cnf

Page 9: Manual Cluster Mysql

Base de Datos Distribuidas

3.- Abierto el archivo buscamos la etiqueta [mysqld] y se agregan las siguientes líneas:

ndbcluster

ndb-connectstring=192.168.1.101, Es la dirección IP del administrador.

4.- En el mismo archivo se busca la etiqueta [MYSQL_CLUSTER] y se descomenta

quitándole el símbolo de #, agregándole las siguiente etiqueta.

ndb-connectstring=192.168.1.101, Es la dirección IP del administrador.

Page 10: Manual Cluster Mysql

Base de Datos Distribuidas

5.- Se busca la etiqueta bind-address=127.0.0.1 y lo cometamos agregando el símbolo

de #. Cerramos y guardamos el archivo.

6.- Cómo se pudo observar en el archivo que hemos creado en el paso anterior, el

cluster estará utilizando /var/lib/mysql-cluster en las máquinas de almacenamiento.

Este directorio es creado cuando se instala MySQL server pero el dueño es root.

Ahora vamos a crear un directorio de respaldo (backup). Con sudo mkdir

/var/lib/mysql-cluster/backub

7.- Lo que sigue es cambiar el propietario de esta carpeta a mysql, ejecutando el

comando sudo chown mysql: mysql /var/lib/mysql-cluster.

Page 11: Manual Cluster Mysql

Base de Datos Distribuidas

8.- Inicializamos el servicio de Mysql con sudo /etc/init.d/mysql restart

9.- Ahora se inicializara el servicio d mysql-ndb para ello tecleamos la siguiente

instrucción: sudo /etc./init.d/mysql-ndb restart.

Con estos pasos ya tenemos configurado nuestro nodo de almacenamiento 1, estos

son los pasos que debemos seguir para configurar los demás nodos. Ahora solo nos

queda comprobar que los nodos estén conectados.

Page 12: Manual Cluster Mysql

Base de Datos Distribuidas

CONFIGURANDO EL NODO DE ALMACENAMIENTO 2 (192.168.1.54)

Como se ha mencionado anteriormente los pasos de configuración son exactamente

iguales en todos los nodos que se quieran arrancar con el servicio de cluster, la única

diferencia es que para el nodo de almacenamiento 2 le asignaremos otra dirección IP

diferente que será 192.168.1.54, por lo que a manera de evitar redundancia de

información únicamente visualizaremos la parte de conexión del siguiente nodo de

almacenamiento 2, con el administrador y el nodo de almacenamiento 1.

1.- Inicializamos el servicio Mysql.

2.- Se inicializa ahora con el servicio mysql-ndb

Importante: En este momento es cuando el nodo administrador está esperando las

conexiones de los nodos de almacenamiento. En todo este proceso, no se debe cerrar

la Shell del nodo administrador, pues de lo contrario se cancelan las conexiones. Así

se deje abierto el shell donde escribiste el ndb_mgs: show; para que puedas ver los

cambios.

Page 13: Manual Cluster Mysql

Base de Datos Distribuidas

3.- Para eso en el nodo administrador vamos a reiniciar los servicios de:

Y posteriormente vamos a ejecutar el comando ndb_mgm una vez estando allí le

damos show si todo está bien nos tiene que aparecer lo siguiente.

Page 14: Manual Cluster Mysql

Base de Datos Distribuidas

PROBANDO EL CLUSTER

1.- Vamos a crear una base de datos de prueba en ambos nodos. Inicializaremos

mysql desde consola con mysql –u root –p,

Con el comando show databases; vamos a visualizar cuales son las bases de datos

que tenemos en mysql y verificar que no exista la base de datos que vamos a crear.

Creamos la base de datos escuela y la usamos con el comando: use escuela; todo

esto es para ambos nodos de almacenamiento.

Nodo de almacenamiento 1

Nodo de almacenamiento 2

Page 15: Manual Cluster Mysql

Base de Datos Distribuidas

Page 16: Manual Cluster Mysql

Base de Datos Distribuidas

2.- Una vez echo en uno de los nodos de almacenamiento, creamos una tabla de

nombre alumno y le agregamos entradas (valores).

Nodo de almacenamiento 1. Aquí vamos a visualizar que no existen tablas en

nuestra base de datos y posteriormente que se crea la tabla en el nodo de

almacenamiento 2, vamos a utilizar nuevamente el comando show tables; para

ver si se crea la tabla en el nodo de almacenamiento 1.

Nodo de almacenamiento 2. (pues es el nodo en el que creamos la tabla, para

que se pueda ver la replica en el nodo 1)

Nota: engine=ndbcluster debe ser utilizado para hacerle conocer a mysql que la tabla

debe ser clusterizada, es decir aseguramos que la tabla se creó en el otro nodo. En el

momento de crear las tablas, para que éstas sean almacenadas en el Cluster y no

localmente

Page 17: Manual Cluster Mysql

Base de Datos Distribuidas

3.- Ahora vamos a insertar datos en un nodo, y los tenemos que visualizar en el otro

nodo.

Nodo de almacenamiento 2. Insertamos datos a la tabla con el comando insert

into alumno values (89, 'omar'); y con el comando select * from alumno;

checamos si los datos fueron insertados correctamente.

Nodo de almacenamiento 1. Vamos a verificar que también existan los datos

que se dieron de alta desde el nodo 2.

Page 18: Manual Cluster Mysql

Base de Datos Distribuidas

Nodo de almacenamiento 1. Aquí vamos a insertar datos desde nodo 1, para

que se vean reflejados en el nodo 2.

Nodo de almacenamiento 2. Y en esta siguiente pantalla, efectivamente

visualizamos que los datos que se insertaron en el nodo 1 ya se ven reflejados

en el nodo2.

¡¡¡ UUFFFF POR FIN FUNCIONA CORRECTAMENTE EL CLUSTER !!!

Page 19: Manual Cluster Mysql

Base de Datos Distribuidas

CONCLUSIÓN

Sin lugar a duda con la realización de la practica se manejaron conceptos

claves y básicos sobre cómo se trabajan las bases de datos distribuidas, en

cuanto al manejo de la información.

Podemos hacer infinidad de cosas como insertar, borrar, modificar, crear,

tablas, registros, vistas entre otras cosas y esto se estará replicando en la base

de datos así que si se cae un nodo no pasa nada se puede seguir trabajando

con los demás y cuando este nodo se levante no habrá perdido información al

contrario regresara como que si nunca se hubiese caído.