You are on page 1of 18

Ao 2017 Replicacin de

Bases de Datos
Slony-I

ABAD, Martn GERN, Enzo MORALES, Juan


218904 - 218217 - 217689
REPLICACIN DE BASES DE DATOS

Tabla de contenidos
Introduccin ........................................................................................................................................... 2
Conceptos bsicos ................................................................................................................................ 3
Slony-I....................................................................................................................................................... 4
Qu es Slony? ................................................................................................................................... 4
Por qu utilizar Slony? ................................................................................................................. 4
Bitcora .................................................................................................................................................... 6
Configuracin de mquinas virtuales ...................................................................................... 6
Instalacin de PostgreSQL y PGAdmin .................................................................................... 6
Instalacin de Stack Builders y Slony-I ................................................................................... 7
Configuracin de las mquinas ................................................................................................ 10
Comando Slonik ............................................................................................................................. 10
Comando Slon ................................................................................................................................. 10
Replicacin en marcha................................................................................................................. 13
Ventajas y desventajas de Slony .................................................................................................... 14
Ventajas ............................................................................................................................................. 14
Desventajas ...................................................................................................................................... 14
Conclusiones ........................................................................................................................................ 15
Bibliografa ........................................................................................................................................... 16

1
REPLICACIN DE BASES DE DATOS

Integrantes del grupo:


ABAD, Martn Gabriel LU 218.904
GERN, Enzo Norberto LU 218.217
MORALES, Juan Antonio LU 217.689

Introduccin

En el presente informe se describe conceptos y herramientas necesarias para


ejecutar una correcta replicacin en una base de datos.
Para ello, se proporciona la definicin de una terminologa bsica referente al
tema, en primer lugar, y luego se describe los complementos a utilizar.
Se utiliza como motor de bases de datos PostgreSQL y PGAdmin III como IDE.
Se determin, por cuestiones de practicidad, realizar la replicacin utilizando una
computadora con SO Windows 10 como servidor esclavo, y dos mquinas virtuales
con distribuciones de Windows y Linux correspondientes a los nodos stand-by.
La herramienta a utilizar para la resolucin del problema planteado es Slony-I, la
cual posee distintas versiones y es de cdigo abierto.
Los objetivos planteados son los siguientes:
Implementar una replicacin utilizando como motor de bases de datos
PostgreSQL.
Investigar sobre el software Slony-I y su utilidad para la replicacin.
Poner en funcionamiento de manera correcta un cluster en el que un
servidor lea y escriba, mientras que los dos restantes slo lean. Es decir, un
nodo maestro y dos esclavos.
La metodologa a implementar ser la siguiente:
Se definirn los conceptos claves, de manera breve, para un mejor
entendimiento.
Se describirn las herramientas a utilizar, acompaadas por capturas de
pantalla.
Se aadir una bitcora en la que se pueda observar el trabajo realizado y la
secuencia de pasos a seguir.
Se evaluarn los resultados obtenidos, detallando los problemas que
surgieron y las posibles soluciones encontradas y aplicadas.

2
REPLICACIN DE BASES DE DATOS

Conceptos bsicos

Cluster: Es el conjunto de instancias de bases de datos PostgreSQL que estn


implicadas en la replicacin.
Nodo: Es cada una de las bases de datos que intervienen en la replicacin. Se tiene,
en este caso particular, un nodo origen (maestro) y dos nodos suscriptores
(esclavos o Stand-By).
Replicacin: Es el proceso mediante el cual se desea mantener y copiar los datos de
una base de datos a otras, para poder transportarlos y almacenarlos, reduciendo
cargas al servidor maestro.
Replication set: Es el conjunto de tablas y/o secuencias a ser replicadas. En un
mismo cluster puede haber varios sets.
Origin o Master: Es el nodo principal, denominado maestro. Es el nico en el que se
puede modificar valores de las tablas.
Subscribers o Stand-By: Son todos los dems nodos en el clster (esclavos), son los
que reciben los datos en la rplica. Slo permiten la lectura de datos.
Trigger: Tambin denominados disparadores, son objetos asociados a las tablas
que se almacenan en la base de datos. Se ejecutan cuando ocurre algn evento
sobre las tablas a las que est relacionado. Su funcionamiento acciona una funcin
previamente definida.

3
REPLICACIN DE BASES DE DATOS

Slony-I

Qu es Slony?

Slony-I es un sistema de replicacin "maestro a mltiples esclavos"


para PostgreSQL que admite la conmutacin por error y la conexin en cascada, es
decir, que un nodo alimente a otros nodos.
Es un sistema de replicacin maestro-esclavo que incluye todas las caractersticas
y capacidades necesarias para replicar grandes bases de datos a un nmero
razonablemente limitado de sistemas esclavos.
Slony-I es un sistema diseado para su uso en centros de datos y sitios de respaldo,
donde el modo normal de operacin es que todos los nodos estn disponibles.

Por qu utilizar Slony si Postgres incluye replicacin?

PostgreSQL 9.0 incluye la replicacin de transmisin que, para una serie de casos
de uso, es probable que sea ms simple y ms conveniente que Slony-I.
Sin embargo, hay tres tipos de casos caractersticos en los que necesitar algo
como Slony-I, donde la replicacin basada en WAL no funcionar:
Necesita interactuar entre las versiones de PostgreSQL. Slony puede hacer
frente a tener nodos ejecutando diferentes versiones de PostgreSQL.
La replicacin basada en WAL requiere que todas las bases de datos
usen versiones idnticas de PostgreSQL, ejecutndose en arquitecturas
idnticas.
Solo pretende replicar partes de los cambios que estn ocurriendo.
La replicacin basada en WAL duplica absolutamente todo.
Es necesario que haya comportamientos adicionales en los suscriptores, por
ejemplo, rellenando la informacin de gestin del cach.
La replicacin basada en WAL duplica absolutamente todo, y nada adicional
que cambie los datos se puede ejecutar en una rplica basada en WAL.
Como se observ al principio, la replicacin de transmisin incorporada en
PostgreSQL, que ha progresado desde sus inicios en la versin 8.1, puede satisfacer
los requisitos de replicacin de algunos usuarios. Para aquellos con requisitos que
no son compatibles con sus restricciones, los sistemas de replicacin como Slony-I
seguirn siendo tiles.

4
REPLICACIN DE BASES DE DATOS

PostgreSQL 9.4 introdujo la Replicacin lgica, que utiliza la decodificacin lgica


de los datos WAL como alternativa a la captura de datos basada en triggers.
A largo plazo, es probable que esta estrategia sea ms eficiente que Slony y
eventualmente obsoleto para muchos casos de uso que no involucran
actualizaciones entre las versiones de PostgreSQL. Sin embargo, Logical
Replication / Logical Decoding solo admitir versiones recientes de PostgreSQL (y
la compatibilidad con la versin inter-PostgreSQL puede ser ms ambiciosa que
real), por lo que si tiene una base de datos ejecutada en 9.3 o anterior, es probable
que se produzca una interrupcin breve. Las actualizaciones requerirn algo as
como Slony que se ejecuta contra un conjunto diverso de versiones de PostgreSQL.

5
REPLICACIN DE BASES DE DATOS

Replicacion con SLONY - Bitcora

Como la estrategia elegida es operar con dos mquinas virtuales, el primer paso est
ligado directamente a las mismas. Se deber:

Instalar VM VirtualBox de Oracle o alguna herramienta que proporcione los


mismos servicios.
Configurar cada una de las mquinas virtuales, asignando memoria RAM y
tamao de disco.
Instalar el correspondiente Sistema Operativo. En nuestro caso, el servidor
maestro tiene Windows 10, un nodo esclavo Windows 7 y el restante posee
una distribucin de Linux (Debian).

A continuacin, se debe instalar Postgres en cada maquina y alguna versin de


PgAdmin(por cuestiones de rapidez, recomendamos la versin PgAdmin III). Es una
instalacin tpica y muy simple.
En el proceso de instalacin, se debe instalar una herramienta recomendada por
Postgres: Stack Builders.

6
REPLICACIN DE BASES DE DATOS

El motivo de la instalacin de esa aplicacin es el siguiente: Este tipo de replicacin


soporta distintas versiones de Postgres, pero en distribuciones idnticas de Slony.
Para asegurarnos que la versin sea la misma, instalamos Stack Builders, que es un
proveedor de complementos, y dentro de esa aplicacin seleccionamos la misma
versin de Slony.
Se prob instalar slony mediante la terminal en la computadora de distribucin
Linux, pero las versiones detectadas mediante el comando search eran anteriores.
Luego, con todo lo explicado anteriormente, se selecciona una misma versin de
Slony en cada computador y se procede a instalarla, teniendo en cuenta si el sistema
operativo es de 32 o 64 bits.

Se verifica el directorio donde se guardar la descarga.

7
REPLICACIN DE BASES DE DATOS

Se aguarda a que se realice la descarga.

Se procede a instalar lo descargado.

8
REPLICACIN DE BASES DE DATOS

Se espera a que concluya la instalacin.

9
REPLICACIN DE BASES DE DATOS

Configuracin de las mquinas

En este paso se debe ser muy cauteloso, ya que en nuestra experiencia tuvimos
muchos inconvenientes, principalmente de comunicacin entre las mquinas.
Cada paso es absolutamente necesario, y su omisin provocar que las mquinas no
puedan conectarse, o bien, que alguno de los nodos no pueda inicializarse y por lo
tanto replicar.
Se procede a configurar los archivos pg_hba.conf en cada ordenador. El archivo est
alojado en la carpeta PostgreSQL/9.*/data.
La configuracin a realizar es la siguiente:

En la carpeta PostgreSQL/9.*/bin del directorio del servidor maestro crear un


archivo de extensin .txt que corresponde a la descripcin del nodo maestro y al
cluster. Se detallan los campos que intervienen:

10
REPLICACIN DE BASES DE DATOS

A continuacin, en la carpeta PostgreSQL/9.*/bin del servidor de cada uno de los


esclavos, se requiere crear un archivo de texto en el que se realizan las siguientes
configuraciones, modificando el valor de cada nodo el nmero de IP y las claves,
segn corresponda:
Esclavo Windows:

Esclavo Linux:

11
REPLICACIN DE BASES DE DATOS

Comando Slonik

El siguiente paso es compilar Slony-I de la siguiente manera:


En la mquina del servidor maestro, en nuestro caso de Windows 10, se debe abrir
una consola terminal e ir al directorio donde se encuentra la carpeta bin de
PostgreSQL. Luego, ejecutar la siguiente instruccin:

Mismo procedimiento para los servidores esclavos, aunque cambiando el nombre


del archivo .txt por su correspondiente.

Comando Slon

Una vez compilado los archivos con la aplicacin slonik, las computadoras aguardan
por una instruccin de conexin definitiva.
Esta comunicacin se lleva a cabo mediante el comando slon, y debe realizarse en
cada una de las mquinas, iniciando por el nodo maestro y luego, en orden, por cada
uno de los esclavos.
Nuevamente, en una terminal de sistema, se debe ejecutar la siguiente instruccin,
habiendo accedido previamente a la carpeta bin de PostgreSQL:
Slon.exe slony_ultimo dbname=librera user=postgres password=postgres.
Al finalizar este paso, veremos que en cada terminal se imprimen constantes
mensajes indicando estadsticas de funcionamiento.
Las consolas no deben ser cerradas mientras se busca una replicacin, ya que al
cerrarlas, el comando slon no est en marcha y los servidores no estn conectados.

12
REPLICACIN DE BASES DE DATOS

Replicacin en marcha

Al concluir con esta serie de pasos, iniciando PgAdmin en cada ordenador, se


observa que dentro de la base de datos elegida, ya se encuentra instanciado el
clster previamente definido.
Adems, se tiene una subcarpeta llamada Slony Replication, correspondiente a la
replicacin detallada.
Otro punto a destacar es que dentro de la raz esquemas, en cada una de las tablas
replicadas, se aade un cono que indica replicacin.

13
REPLICACIN DE BASES DE DATOS

Por ltimo, slo queda probar que efectivamente el servidor maestro replica su
informacin y los esclavos la reciben.
Tambin es bueno destacar que, a pesar de intentarlo, en los servidores esclavos no
se puede modificar ningn campo. Eso se debe a que existe una relacin esclavo
maestro, y no una relacin bidireccional (Slony-I no lo permite).
Cualquier modificacin que se produzca en el servidor maestro mientras algn
esclavo se encuentre dormido (a excepcin de los mencionados cambios de
estructuras) se replicar cuando ejecute el comando slon y d inicio la replicacin
correspondiente.
Con esto, nos aseguramos que el proceso de replicacin concluy con xito y que,
adems, podemos confiar en que la informacin ser integra y coherente.

14
REPLICACIN DE BASES DE DATOS

Ventajas y Desventajas de Slony


Tras lo estudiado, se notaron ciertas falencias y virtudes de la herramienta Slony, las
cuales se deben remarcar.
Entre las grandes ventajas de Slony, se encuentra lo siguiente:
Es multi-hardware, es decir, tiene un amplio soporte en cuanto a
componentes de hardware de las pc involucradas.
Es multi-Sistema Operativo, lo cual es muy beneficioso porque ampla el
alcance de la herramienta y no limita al usuario.
Soporte amplio de versiones de Postgres. No importa la versin de
PostgreSQL instalada en cada ordenador, lo que es beneficioso por no
requerir un traslado de informacin.
Soporta replicacin en cascada, es decir que un servidor maestro puede
transferir su informacin a diversos nodos esclavos.
Optimiza el uso del ancho de banda.
Optimiza la carga del nodo maestro. Al trabajar con servidores Stand-By, las
tareas de lectura pueden ser ejecutadas por ellos, lo que reduce de manera
significativa el trabajo del servidor maestro.
Entre sus desventajas, se destaca que:

Requiere una misma versin de Slony


No detecta fallas de nodos del clster, con lo cual, al fallar alguno de ellos no
podramos operar de manera correcta y mucho menos aplicar polticas de
resguardo instantneas.
En algunos casos, requiere software adicional. Por ejemplo, en el caso de una
falla del servidor maestro, no se puede indicar directamente que un servidor
esclavo asuma el rol de maestro. Para ello, es necesario instalar herramientas
adicionales que lo resuelvan.
No permite cambios de esquemas.
No permite cambios de tablas.
Su configuracin, a pesar de no ser compleja, es demasiado quisquillosa.
Cualquier error u omisin provoca que no puedan comunicarse las mquinas
y la deteccin de estos no es tan simple.

15
REPLICACIN DE BASES DE DATOS

Conclusiones
En primer lugar, nos pareci sumamente correcto destacar que pudimos llevar a
cabo las tareas realizadas gracias al material de soporte facilitado por la ctedra.
Tambin fue clave la ayuda del profesor para detectar algunas fallas y decidirnos
por la virtualizacin.
Del trabajo en grupo, podemos concluir que fue eficiente y muy bien organizado. La
distribucin de tareas y los roles asumidos por los integrantes fueron correctos y
nos sirvieron para trabajar en tiempo y forma. Todos los problemas que surgieron
fueron resueltos de manera cooperativa y sin distinciones.
Pudimos cumplir con los objetivos previamente asumidos en conjunto, sin habernos
visto presionados en cuanto a los tiempos.
De la herramienta Slony-I queremos destacar que notamos una potencia
considerable y al mismo tiempo muy limitada. Sus restricciones limitan el uso y la
aplicacin en diversos contextos prcticos. A pesar de esto, su simpleza es fantstica
y permite configurar la replicacin sin muchas especificaciones tcnicas,
resolviendo de manera correcta la cuestin y basndose en el uso de disparadores
(concepto calve aprendido previamente en el cursado de la materia).
Probablemente, con el tiempo, la herramienta sea mucho ms abarcadora e incluso
pueda fusionarse desde algn punto de vista con herramientas propias de
PostgreSQL.

16
REPLICACIN DE BASES DE DATOS

Bibliografa

1. http://www.slony.info/
2. Apuntes proporcionados por la ctedra:
a. Triggers.
b. Bases de datos distribuidas
c. Replicacin Streaming y WAL Shipping.
3. http://www.grch.com.ar/docs/bdd/apuntes/unidad.iv/Replicacion%20Slo
nik.pdf
4. https://wiki.postgresql.org/images/b/b3/Slony_I.pdf
5. https://pornohardware.com/2014/06/24/replicacion-de-bases-de-datos-
postgresql-con-slony-en-centos/
6. https://senaintro.blackboard.com/bbcswebdav/institution/semillas/2172
19_1_VIRTUAL/OAAPs/OAAP4/aa7/lab_replicacionbd/manuales/lab7-
postgre.pdf
7. https://prezi.com/zz4233_hbbns/replicacion-postgresql-con-slony/
8. https://www.enterprisedb.com/resources/tutorials/how-setup-slony-i-
replication-postgres-plus
9. https://www.youtube.com/watch?v=n2V_7Ydhiho
10. https://www.youtube.com/watch?v=Ir3rW0aCqHI
11. https://www.youtube.com/watch?v=2TOjA_Dw1kw

17