Upload
nahiely-natalie-ovando-lopez
View
103
Download
4
Tags:
Embed Size (px)
Citation preview
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.
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.
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
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.
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]
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
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.
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
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.
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.
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.
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.
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.
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
Base de Datos Distribuidas
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
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.
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 !!!
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.