26
Bases de datos distribuidas

Bases de datos distribuidas

Embed Size (px)

Citation preview

Page 1: Bases de datos distribuidas

Bases de datos distribuidas

Page 2: Bases de datos distribuidas

¿Qué es una B.D. distribuida?

Page 3: Bases de datos distribuidas

Estructura B.D. Distribuida

Page 4: Bases de datos distribuidas

Estructura B.D. Distribuida

Page 5: Bases de datos distribuidas

Características B.D. Distribuida

Page 6: Bases de datos distribuidas

Componentes B.D. Distribuida

Page 7: Bases de datos distribuidas

Componentes B.D. Distribuida

Page 8: Bases de datos distribuidas

Componentes B.D. Distribuida

Page 9: Bases de datos distribuidas

Tipologías B.D. Distribuida

Page 10: Bases de datos distribuidas

Diferencias entre tipologías

Page 11: Bases de datos distribuidas

Ventajas B.D. distribuidas

Page 12: Bases de datos distribuidas

Inconvenientes B.D. distribuidas

Page 13: Bases de datos distribuidas

Ventajas e Inconvenientes

Page 14: Bases de datos distribuidas

B.D. centralizadas vs B.D. distribuidas

Page 15: Bases de datos distribuidas

Fragmentación B.D. distribuidas• Es necesaria por razones de rendimiento.• Los usuarios deben comportarse como si los

datos no estuvieran fragmentados.• Los datos deben estar almacenados en la

ubicación donde se usen más frecuentemente para que las operaciones sean locales y se reduzca el tráfico en la Red.

Page 16: Bases de datos distribuidas

Replicación B.D. distribuidas• Mejor rendimiento. Se opera sobre copias

locales en vez de acceder a sitios remotos.• Mejor disponibilidad. Un objeto replicado está

disponible mientras haya una copia.• Desventaja: propagar las actualizaciones.• El usuario debe comportarse como si los datos

no estuvieran replicados.

Page 17: Bases de datos distribuidas

Consultas en B.D. distribuidas• El rendimiento de una consulta debe ser

independiente del sitio donde se realiza.• Se debe maximizar la optimización de

consultas.

Page 18: Bases de datos distribuidas

Transacciones en B.D. distribuidas

• Debe mantenerse la atomicidad de las transacciones.

• Control de recuperación de la información.• Control de concurrencia.

Page 19: Bases de datos distribuidas

Diccionario de datos• Describe la base de datos y sus objetos.• Es un conjunto de metadatos que contiene las

características lógicas de los datos que se van a utilizar en el sistema, incluyendo nombre, descripción, alias, contenido y organización.

Page 20: Bases de datos distribuidas

PRÁCTICA• Crear un cluster MySQL. Se usaran como

servidores 4 máquinas virtuales pequeñas con 1 GB de RAM y como software un servidor Linux. Para cada servidor se usará una máquina virtual que será copia de la máquina virtual patrón. Cada servidor albergará uno o varios nodos componentes del cluster. Cada nodo tiene un identificador único dentro del cluster.

Page 21: Bases de datos distribuidas

PRÁCTICA1. Se prepara un servidor linux. Se crea un usuario llamado mysql.

groupadd mysqluseradd –g mysql mysqlpasswd mysql

2. Se prepara dentro del nodo una carpeta con el software MySQL necesario para que pueda formar parte del cluster. Este software se puede descargar de:http://dev.mysql.com/downloads/cluster/.Se clonará este servidor para tener 4 máquinas idénticas.

Page 22: Bases de datos distribuidas
Page 23: Bases de datos distribuidas

PRÁCTICA3. Se descomprimen los fuentes de MySQL cluster en la máquina virtual y se otorgan permisos necesarios.tar –C /usr –zxvf mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64.tar.gzchown mysql:mysql /usr/mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64/ -R4. Se crean los directorios donde se van a ubicar los archivos de datos del cluster.

mkdir /MySQL_Clusterchown mysql:mysql /MySQL_Cluster

5. Habilitar los puertos a traves de los cuales se van a comunicar los nodos del cluster.Iptables –I INPUT –p tcp –dport 6. Añadir al PATH la rutaPATH=$PATH:/usr/mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64/bin

Page 24: Bases de datos distribuidas

PRÁCTICA- Con esto se termina de configurar la máquina patrón. A continuación, se copian y generan 4 máquinas virtuales iguales, se configuran individualmente y se les asigna dirección IP a cada una de las máquinas que harán de servidores o nodos cluster.- Se configurarán dos nodos de gestión y SQL y dos nodos de datos.- Para poner en marcha el cluster se instala el software de MySQL Cluster para windows, se arranca el asistente de creación del cluster ejecutando setup.bat. Aquí se indican el nombre del cluster, los servidores que forman parte de él con sus direcciones IP, el tamaño de carga de trabajo y credenciales de conexión, a través de SSH indicando usuario y password mysql.- A continuación se indica la tipología que tendrá el cluster y los parámetros de cada proceso del cluster. - Se hace deploy para desplegar la configuración.

Page 25: Bases de datos distribuidas

PRÁCTICA- Una vez configurado y arrancado el cluster, se gestiona a través de los nodos de mantenimiento con el comando ndb_mgm.

ndb_mgm –e show : muestra el estado del cluster.- Se configurarán dos nodos de gestión y SQL y dos nodos de datos.- Para poner en marcha el cluster se instala el software de MySQL Cluster para windows, se arranca el asistente de creación del cluster ejecutando setup.bat. Aquí se indican el nombre del cluster, los servidores que forman parte de él con sus direcciones IP, el tamaño de carga de trabajo y credenciales de conexión, a través de SSH indicando usuario y password mysql.- A continuación se indica la tipología que tendrá el cluster y los parámetros de cada proceso del cluster. - Se hace deploy para desplegar la configuración.

Page 26: Bases de datos distribuidas

PRÁCTICA- El nodo SQL se configura con una instancia normal de MySQL a través del fichero de configuración my.cnf.- Se puede crear una tabla de pruebas con la opcion engine=ndbcluster. mysql> create table database pruebas; mysql> use pruebas; mysql> create table test (campo1 varchar (100)) engine =ndbcluster; mysql> insert into test values (‘prueba nodo cluster’);

- La replicación es automática e instantánea como se puede comprobar en el otro nodo haciendo: mysql> select * from pruebas.test;