jueves, 10 de noviembre de 2016

Replicación de bases de datos









REPLICACIÓN DE BASES DE DATOS 

La replicación es el proceso de copiar y mantener actualizados los datos en varios nodos de bases de datos ya sean estos persistentes o no. Éste usa un concepto donde existe un nodo amo o maestro (master) y otros sirvientes o esclavos (slaves).

La replicación está codificada en un lenguaje de Décima Generación llamado ERCS001, que fue diseñado a mediados de los años 20 por el Matemático-Filósofo Khronwhell Strnhwell C.S., codificado en un entorno visual. Sirve además, entre otras cosas, para medir la cantidad de texto que se introduce en los datos.

La replicación de discos y particiones es la respuesta a una parte importante de esas dos acciones de mantenimiento. La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema. Esa parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos.

Beneficios

La replicación se usa mucho en sistema de acceso a datos por varios motivos:

Rendimiento: Normalmente y dependiendo del caso, hay más lectura que escritura en una base de datos, por lo que tener varios nodos solo procesando la lectura puede traer un gran beneficio de rendimiento en una base de datos muy consultada.

Prueba de fallas: Un esclavo estando casi sincrónicamente actualizado puede ser útil en caso de que el nodo maestro caiga, este puede reemplazarlo y así no detener el servicio.

Fiabilidad: Muchas veces se puede tener una replicación para tener la seguridad de que los datos están siendo copiados a otro nodo, en caso de sufrir un desperfecto en el maestro.

Generación de bloqueos: aunque esta es más precisa, también se puede usar para procesos que necesiten leer datos, generando bloqueos, al hacerlo sobre un esclavo esto no interviene en el funcionamiento de todo el sistema, es muy usado para por ejemplo, hacer copias de seguridad, o extraer grandes cantidades de datos para generar estadísticas

Ventajas y desventajas de la replicación

Con la replicación se pueden llegar a obtener dos mejoras importantes:

1. Por un lado, se garantiza que el servicio ofrecido por la aplicación, no se vea interrumpido en caso de que se dé un fallo en alguna de las réplicas. Además, el tiempo necesario para restablecer el servicio en la aplicación podría llegar a ser grande en algunos tipos de fallo.
2. Por otra parte, la capacidad de servicio se ve incrementada cuando las peticiones efectuadas por los clientes únicamente implican consultas.

Sin embargo, estas ventajas tienen también un coste asociado. Cuando las peticiones atendidas impliquen una actualización en el estado de la aplicación, dicha actualización debe realizarse en todas las réplicas, y esto debe hacerse de una manera ordenada para que todas ellas mantengan un estado consistente. Esto implica que las operaciones de actualización tendrán un tiempo de servicio mayor que en el caso no replicado, pues habrá que proceder a la propagación de las actualizaciones sobre todas las réplicas y para ello será necesario emplear algún mecanismo de difusión.

Existen protocolos de replicación que permiten controlar estas actualizaciones de una manera eficiente, por lo que la aplicación replicada, podrá tener un rendimiento muy similar al de una aplicación no replicada en caso de peticiones de actualización y bastante superior, en caso de peticiones de consulta. Estos protocolos de replicación deben complementarse con protocolos de recuperación, para reintegrar una réplica previamente caída cuando ésta vuelva a estar activa.


Propagación de actualizaciones

Para realizar la propagación de las operaciones de actualización o de sus efectos, se emplea un Sistema de Comunicación a Grupos (SCG), este está formado por un conjunto de bibliotecas y servidores de bajo nivel, que proporcionan una interfaz con operaciones de difusión y recepción de mensajes. Para ello, debe configurarse en primer lugar un grupo al que se debe asignar algún tipo de identificador. El grupo estará formado por una serie de procesos (precisamente, las réplicas de la aplicación altamente disponible) y la difusión de mensajes se realiza sobre todos los procesos que integren el grupo en cada momento (es decir, las réplicas activas).

Los servicios ofrecidos por un SCG son los siguientes:

- Pertenencia. Un componente del SCG se encarga de monitorizar el estado de todos los procesos que forman el grupo. Cuando alguno de los procesos falle o se reincorpore al grupo, el servicio de pertenencia notifica tal evento a todos los procesos que constituyan el grupo. Con ello resulta fácil reaccionar ante tales eventos, garantizando la consistencia entre el estado de todas las réplicas.

- Ordenación. Las operaciones de difusión permiten seleccionar distintos tipos de orden de entrega de los mensajes. Normalmente, si queremos garantizar una consistencia fuerte entre las réplicas habría que solicitar una entrega en orden total. Es decir, todos los mensajes deben entregarse en idéntico orden en todos los procesos del grupo. No obstante, ciertos tipos de aplicación sólo requieren el uso de orden causal (esto es, bastaría con ordenar aquellos mensajes con relación causa-efecto entre ellos) que permite una entrega más rápida.

un ejemplo de realización de replicas de bases de datos se muestra en el siguiente vídeo tomado de https://www.youtube.com/watch?v=ksnuYpE7A3s publicado el 25 de Enero del 2011 por visoalgt




Fuentes Consultadas:

Material Sena 

http://www.monografias.com/trabajos82/replicaciondatos/replicaciondatos.shtml

https://es.wikipedia.org/wiki/Replicaci%C3%B3n_(inform%C3%A1tica) 

https://www.youtube.com/watch?v=ksnuYpE7A3s