miércoles, 1 de mayo de 2013

Replicación


Que es Replica (replication) de una base de datos .

 
Es el proceso de copiar y mantener objetos de las base de datos, como por ejemplo relaciones, en múltiples bases de datos que forman un sistema de bases de datos distribuido.


Beneficios de la réplica de Datos en un DBMS
·         Disponibilidad

·         Fiabilidad

·         Rendimiento

·         Reducción de la carga

·         Procesamiento desconectado

·         Soporta muchos usuarios

·         Soporta aplicaciones avanzadas

La replicación es útil para:

Copia de seguridad:


En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.

Además se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.
  1. Mejorar la escalabilidad:
Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.

Podríamos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualización de datos al maestro.
  1. Alta disponibilidad:
En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continue prestando servicio.
 
Ejemplo de una replicación de base de datos ( puede ser video o descripción)

Requerimos de 2 hosts con cualquier distribución de linux instalado.

Estos 2 hosts tienen 2 roles.

  • Maestro
  • Esclavo
PASOS PARA CONFIGURACIÓN DEL SERVIDOR MAESTRO:
1.-Modificar el archivo /etc/my.cnf agregando las siguientes líneas dentro del apartado [mysqld]

log-bin=mysql-bin

server-id=1

sync_binlog=1

El primer parámetro indica el nombre el archivo a utilizar para el log donde almacena todas las operaciones sobre la base de datos en cuestión.

El segundo parámetro indica el identificador único de los motores de bases de datos a configurar.

El tercer parámetro es para garantizar la consistencia en la replicación usando InnoDB que es el caso de la base de datos de prueba.

2.-Reiniciar el servicio de MySQL

3.-Crear un usuario en el servidor maestro para uso exclusivo de la replicación, esto con motivos de seguridad, estableciendo el permiso de REPLICATION SLAVE

CREATE USER ‘user’@ ‘host_esclavo’ IDENTIFIED BY ‘password’ ;

GRANT REPLICATION SLAVE ON *.* TO ‘replicadb’@’host_esclavo’ IDENTIFIED BY ‘password’;

PASOS PARA CONFIGURAR EL SERVIDOR ESCLAVO:

1.-Modificar el archivo /etc/my.cnf agregando las siguientes líneas dentro del apartado [mysqld]

server-id=2

log-bin = /var/log/mysql/bin.log

log-bin-index = /var/log/mysql/log-bin.index

log-error = /var/log/mysql/error.log

relay-log = /var/log/mysql/relay.log

relay-log-info-file = /var/log/mysql/relay-log.info

relay-log-index = /var/log/mysql/relay-log.index

2.-Crear directorio /var/log/mysql

mkdir /var/log/mysql

chown mysql.mysql mysql

3.-Reiniciar el servicio de MySQL

4.-Ejecutar los comandos siguientes en la consola de MySQL del servidor esclavo.
SHOW MASTER STATUS;
CHANGE MASTER TO MASTER_HOST=’host_maestro’;
CHANGE MASTER TO MASTER_USER=’user’;
CHANGE MASTER TO MASTER_PASSWORD=’password’;
CHANGE MASTER TO MASTER_PORT=3306;
5.-En la consola de MySQL ejecutar el siguiente comando:
 START SLAVE;
En este momento ya se encuentran sincronizando los motores de bases de datos

REFERENCIAS:http://www.slideshare.net/luisfe/replicacin-base-de-datos-488210
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=mysql_replicacion
http://cimatzacatecas.blogspot.mx/2012/03/replicacion-en-bases-de-datos-mysql.html
http://systemadmin.es/2010/03/como-montar-replicacion-en-master-slave-con-mysql


No hay comentarios:

Publicar un comentario