Está en la página 1de 5

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