replicacion en postgresql

6
Replicación en PostgreSQL Por: Ernesto García Ramírez Concepto de Replicación La replicación es el proceso de intercambiar datos de transacciones para asegurar la consistencia entre nodos de bases de datos redundantes. Es el proceso de copiar y mantener los elementos de una base de datos en múltiples bases de datos que forman un sistema de bases de datos distribuido. Entre las distintas ventajas que ofrece este proceso encontramos: Alta disponibilidad (high availability): Se puede incrementar la disponibilidad de una basede datos mediante la replicación en un sistema distribuido. Si una de las máquinas delsistema falla, las otras podrán satisfacer las necesidades del cliente. Balance de carga (load balancing): La replicación se puede utilizar para hacer un balance decarga. Ésta es una técnica usada para compartir el trabajo a realizar entre variascomputadoras. Soporte para aplicaciones de alto consumo: Se puede satisfacer las necesidades de ciertosclientes que requieren un alto consumo en consultas, que sería muy costo en rendimiento, ohasta imposible, en una base de datos sin replicación. Confiabilidad: Debido a que existen varias copias de los datos disponibles en el sistema, secuenta con un

Upload: ricardo-benavente

Post on 26-Sep-2015

9 views

Category:

Documents


1 download

DESCRIPTION

Replicación en PostgreSQL ubuntu server

TRANSCRIPT

Replicacin en PostgreSQL

Por: Ernesto Garca Ramrez

Concepto de Replicacin

La replicacin es el proceso de intercambiar datos de transacciones para asegurar la consistencia entre nodos de bases de datos redundantes. Es el proceso de copiar y mantener los elementos de una base de datos en mltiples bases de datos que forman un sistema de bases de datos distribuido. Entre las distintas ventajas que ofrece este proceso encontramos:

Alta disponibilidad (high availability): Se puede incrementar la disponibilidad de una basede datos mediante la replicacin en un sistema distribuido. Si una de las mquinas delsistema falla, las otras podrn satisfacer las necesidades del cliente.

Balance de carga (load balancing): La replicacin se puede utilizar para hacer un balance decarga. sta es una tcnica usada para compartir el trabajo a realizar entre variascomputadoras.

Soporte para aplicaciones de alto consumo: Se puede satisfacer las necesidades de ciertosclientes que requieren un alto consumo en consultas, que sera muy costo en rendimiento, ohasta imposible, en una base de datos sin replicacin.

Confiabilidad: Debido a que existen varias copias de los datos disponibles en el sistema, secuenta con un mecanismo confiable de recuperacin de datos ante fallos en algn nodo.

Los servidores de bases de datos de slo lectura son relativamente fciles de combinar, ya que los datos de slo lectura deben ser almacenados slo una vez en cada servidor. Sin embargo, la mayora de los servidores de bases de datos tienen consultas variadas de lectura y escritura. Este tipo deservidores son mucho ms difciles de combinar debido a que una consulta de escritura hecha a un servidor debe poder actualizar el resto de los servidores para que en las prximas consultas puedan entregar datos consistentes.

Con la replicacin surgen los problemas de sincronizacin. Existen distintos modelos que dan solucin a este problema, cada uno lo enfoca de manera distinta.

Replicacin sncrona: una transaccin de modificacin de datos no es considerara hasta que todos los servidores confirmaron la transaccin. Esto garantiza que ante un eventual error en la transaccin no se perdern datos y que todos los servidores de carga balanceada devolvern resultados consistentes sin importar cual de los servidores haya sido consultado.

Replicacin asncrona: permiten un retraso entre el momento en que se realiza una consulta y el tiempo de propagacin a los otros servidores. Aqu existe la posibilidad de que algunas transacciones se pierdan cuando se cambia a un servidor de respaldo y que los servidores de carga balanceada devuelvan resultados ligeramente antiguos. La comunicacin asncrona es utilizada cuando la comunicacin sincrnica sera muy lenta. Algunas soluciones permiten modificar los datos solo a un servidor. A este servidor se lo conoce como servidor de lectura/escritura (read/write server), primario (primary server), o maestro (master server).

Los servidores que rastrean los cambios del maestro son llamados servidores de reserva (standby servers), o esclavos (slave servers). Un servidor de reserva que no puede ser conectado hasta que sea ascendido al nivel de servidor maestro se llama servidor en espera semiactiva (warm standby server) y uno que acepta conexiones y sirve a consultas de slo lectura es llamado servidor de reserva caliente (hot standby server).

Modelos de replicacin de datos en PostgreSQL

Shared Disk Failover

Este mtodo evita el sobrecargo de sincronizacin utilizando una sola copia de la base de datos. Usa un arreglo de disco simple que es compartido por mltiples servidores. Si el servidor principal de la base de datos falla, el servidor standby es capaz de montarse y empezar la base de datos como si se tratase de una recuperacin de una cada de la base de datos. Esto permite una recuperacin rpida y sin prdida de datos.

File System Replication

Una versin modificada de la funcionalidad del hardware compartido es la replicacin del sistema de archivos, donde todos los cambios de dicho sistema estn duplicados en el sistema de archivos de otra computadora. La nica restriccin es que la duplicacin debe ser hecha de manera tal que se asegure que el servidor standby tiene una copia consistente del sistema de archivos.

Transaction Log Shipping

Los servidores warm standby y hot standby pueden mantenerse actualizados leyendo un flujo de registros de WAL (write-ahead log). Si el servidor principal falla, el servidor standby contiene casi todos los datos del servidor pincipal, y puede ser rpidamente convertido en el nuevo servidor master. Este modelo puede ser sincrnico o asincrnico, y slo puede ser implementado para el servidor de base de datos completo.

Trigger-Based Master-Standby Replication

Este tipo de replicacin enva todas las consultas de modificacin de datos al servidor master. El servidor master enva asincrnicamente las modificaciones de los datos al servidor standby. ste ltimo puede responder consultas de slo lectura mientras el servidor master est corriendo.

Statement-Based Replication Middleware

Con este tipo de replicacin, un programa intercepta todas las consultas SQL y las enva a uno o todos los servidores. Cada servidor opera independientemente. Las consultas de lectura-escritura deben ser enviadas a todos los servidores, as todos los servidores reciben cualquier cambio efectuado. Pero las consultas de slo lectura pueden ser enviadas a un nico servidor, permitiendo la distribucin de carga de trabajo de lectura a travs de los servidores disponibles.

Asynchronous Multimaster Replication

Para los servidores que no estn conectados regularmente, mantener los datos consistentes a travs de estos es un gran desafo. Usando este tipo de replicacin, cada servidor trabaja de manera independiente y peridicamente se comunica con los otros servidores para identificar las transacciones conflictivas. Estos conflictos pueden ser resueltos por el usuario o por reglas de resolucin de conflictos.

Synchronous Multimaster Replication

En este tipo de replicacin, cada servidor puede aceptar solicitudes de escritura y los datos modificados son transmitidos desde el servidor original al resto de los servidores antes de que cada transaccin sea confirmada. Una fuerte actividad de escritura puede causar un bloqueo excesivo, causando un bajo rendimiento. Las solicitudes de lectura pueden ser enviadas a cualquier servidor.

Justificacin

Debido a que las necesidades primordiales del cliente son la disponibilidad de la informacin, as como la confiabilidad e integridad del sistema, se decidi utilizar replicacin maestro a maestro, donde se tendrn los servidores trabajando todos como maestros para asegurar la disponibilidad y procesamiento de los datos en todo momento aunque alguno tenga algn fallo inesperado.

Se eligi el tipo de replicacin de Synchronous Multimaster Replication ya que es de gran importancia la disponibilidad e integridad de los datos en todo momento, por lo que en todo momento los servidores maestros se encontrarn sincronizados y trabajando los mismos datos sin prdida alguna.

En este tipo de replicacin, cada servidor puede aceptar solicitudes de escritura y los datos modificados son transmitidos desde el servidor original al resto de los servidores antes de que cada transaccin sea confirmada. Una fuerte actividad de escritura puede causar un bloqueo excesivo, causando un bajo rendimiento. Las solicitudes de lectura pueden ser enviadas a cualquier servidor.

Se tena una preocupacin debido a que este tipo de replicacin se da a bloqueos cuando se manejan varias entradas de escritura, pero como mximo se tienen contempladas seis actividades de escritura simultneas (un alumno por cada saln entrando al mismo tiempo), por lo que esto no representa un riesgo directo para este mtodo de replicacin. Cada entrada de alumno estar separada por microsegundos por lo que esta diferencia de tiempos permite el procesamiento sin bloqueos de los datos.

Bibliografas

https://es.scribd.com/doc/124248224/Replicacion-PostgreSQL

http://www.emiliopm.com/2014/03/replicacion-en-postgresql/

http://es.wikipedia.org/wiki/Replicaci%C3%B3n_multimaestra