UNIVERSIDAD DE EL SALVADOR
FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE
DEPARTAMENTO DE INGENIERIA Y ARQUITECTURA
Cátedra:
Bases de Datos
Catedrático:
Ing. Alexander Calderón Peraza
Tema:
MySQL Cluster
Integrantes
Yanci Karina Nerio
Alexander Enrique Gonzalez
Carlos Eduardo Carcamo
Luis Eduardo Ramírez Ruiz
Introducción:
MySQL clúster es una tecnología que permite hacer clustering de bases de datos en memoria en un ambiente de no compartición. La arquitectura de no compartición 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. Cuando hablamos de clúster (raíz) se aplica a los conjuntos o conglomerados de ordenadores unidos entre sí normalmente por una red de alta velocidad y que se comportan como si fuesen una única computadora, la tecnología de clústeres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software para aplicaciones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos. Como todo sistema de clustering, está diseñado para no tener un sólo punto de falla, sino que cada componente tiene su propia porción de disco y memoria para trabajar. Bajo este esquema no se recomienda el uso de mecanismos de almacenamiento compartido como carpetas compartidas por red, sistemas de archivos de red, etc.
En su implementación más sencilla, 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.
Las tablas de la base de datos se almacenan utilizando el motor NDB en los nodos de almacenamiento. La manera de acceder a los datos almacenados en el clúster es a través de cualquiera de los nodos MySQL. Los nodos de datos funcionan utilizando un esquema de espejado, permitiendo soportar sin impacto la caída de nodos individuales de datos dentro de cluster. La única consecuencia que tendría un suceso como la caída de un nodo de datos, es que un pequeño conjunto de transacciones relacionados al nodo caído serán abortadas. Estas transacciones deben cumplir con el esquema transaccional, tal y como si estuvieran trabajando directamente con un servidor no clusterizado de MySQL.
Guía de creación de un Clúster MySql
A continuación se configurara un clúster Mysql sobre un sistema operativo Basado en Debian 8 que puede ser Ubuntu, Linux mint o cualquier otro sistema compatible con debian, la estructura del clúster que se desarrolará es de 4 computadoras. Las computadoras se denominan con las letras de la A a la D y el rango de IPV4 desde 192.168.1.101 to 192.168.1.104.
- A: Nodo Management (Management Nodes)
- B & C: Nodos de datos (Data Nodes)
- C: Nodo Sql (Sql Node)
Descargar MySql Cluster:
El MySql Cluster puede ser descargado del siguiente vínculo http://dev.mysql.com/downloads/cluster/, La versión que utilizaremos es la 7.4.11.
Instalación del Management Node
Instalación de ndb_mgmd y ndb_mgm: Procedemos con la instalación de ndb_mgmd y ndb_mgm, luego de haber efectuado la descarga del archivo mysql-cluster-gpl-7.4.11-linuxglibc2.5-x86_64.tar.gz
Paso 1: lo extraemos, para eso nos posicionamos en el directorio de descarga y ejecutamos en la terminal:
# tar -zxvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
al extraerlo nos movemos dentro del directorio que resultante
# cd mysql-cluster-gpl-7.4.11-linux-libc2.5-x86_64
Luego copiamos los archivos ndb_mgm y ndb_mgmd
# cp bin/ndb_mgm* /usr/local/bin
Paso 2: Otorgar permisos de ejecución a los archivos ndb_mgm y ndb_mgmd
# cd /usr/local/bin
# chmod +x ndb_mgm*
# chmod +x ndb_mgm*
Configuración de Management Node
Para iniciar la configuración del management node procedemos a crear un archivo de configuración.
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster && nano config.ini
El contenido del archivo config.ini debe de contener lo siguiente:
Instalación de el Data Node
Instalar ndbd y ndbmtd
Paso 1:
Luego para poder instalar ndbd y ndbmtd, nos ubicamos en el directorio de descarga del archivo, y luego extraemos ndbd y ndbmtd. los movemos a /usr/local/bin
# tar -zxvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
# cd mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64
# cp bin/ndbd /usr/local/bin
Paso 2: Hacer ejecutables a ndbd y ndbmtd.
# cd /usr/local/bin
# chmod +x ndb*
# chmod +x ndb*
Nota: El directorio de datos de cada Data node se ubica en /usr/local/mysql/data Este directorio es esencial sobretodo si se piensa configurar el Management Node, si no existe debe crearse.
Configuración del Data Node
my.cnf es un archivo necesario para cada Nodo de datos, se ubica en /etc.
# nano /etc/my.cnf
El contenido de este archivo debe de verse de la siguiente manera:
Instalación de Nodo SQL
Instalar mysql server
Paso 1: Revisar los archivos /etc/passwd y /etc/group para verificar si ya existe un grupo mysql y usuario mysql en el sistema. Si no existe crear un grupo de usuarios mysql y luego agregar el usuario mysql a dicho grupo.
# groupadd mysql
# useradd -g mysql mysql
# tar -zxvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
# cp mysql-cluster* /usr/local/mysql-cluster-gpl-7.3.7-linuxglibc2.5-x86_64.tar.gz
# ln -s /usr/local/ mysql-cluster-gpl-7.3.7-linux-glibc2.5- x86_64 /usr/local/mysql
Paso 3: Cambiar la ubicación del directorio mysql y ejecutar el script para crear el sistema de base de datos.
# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
Paso 4: Dar los permisos necesarios para el servidor MySQL y los directorios.
# chown -R mysql data
# chgrp -R mysql .
Paso 5: Copiar el script de arranque de MySQL al directorio apropiado, para iniciar el servicio cuando el sistema operativo se arranque.
# cp support-files/mysql.server /etc/init.d
# chmod +x /etc/init.d/mysql.server
# update-rc.d mysql.server defaults
# update-rc.d mysql.server defaults
Para configurar el nodo sql, solamente tenemos que seguir los mismos pasos de configuración del nodo de datos(Data node).
Iniciar Cluster Mysql
Una vez se haya configurado apropiadamente, el inicio de un proceso debería ser fácil de ejecutar. Notese que el nodo manejador (Management Node) debe iniciarse primero, seguido de los nodos de datos (Data nodes), y finalmente los nodos sql (Sql nodes.) Para el
Management node:
# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Para cada Data node:
# /usr/local/bin/ndbd
Para cada Sql node:
# /etc/init.d/mysql.server start
Y eso es todo, una vez terminamos el proceso podemos usar ndb_mgm management client para ver si el cluster está corriendo correctamente y si todo va bien, deberíamos ver algo como eso:
3 comentarios:
Muy buen contenido de Base de Datos
te dejo este link con un entrenamiento completo en mysql
https://thedevelopmentstages.com/entrenamiento-en-linea-mysql-y-mariadb/
entrenamiento mysql con videos gratis
Publicar un comentario