Sie sind auf Seite 1von 23

LABORATORIO 9.

Replicación de base de datos en PostgreSQL

GUÍA DE LABORATORIO Nº 9

Actividad de Proyecto No. 11: ESTABLECER PLANES DE


SINCRONIZACIÓN PARA BASE DE DATOS Y OBJETOS
DISTRIBUIDOS.
Replicación de base de datos en PostgreSQL

Estructura de contenidos.

1. Introducción..............................................................................3

2. Objetivos...................................................................................4

3. Consideraciones.........................................................................5

4. Procedimiento............................................................................6

4.1. Instalación del software de replicación Slony...........................6

4.1.1. Instalación manual de Slony.............................................6

4.1.2. Instalación de Slony mediante el stackbuilder.exe................7

4.2. Configuración del Firewall de Windows................................. 12

4.3. Configuración del SMBD pgAdmin3...................................... 14

4.4. Configuración del SMBD PostgreSQL.................................... 15

4.5. Creación de una maquina virtual y configuración en red......... 16

4.6. Configuración de la herramienta de replicación Slony............. 16

4.6.1. Script de configuración del nodo maestro......................... 16

4.6.2. Script de configuración del nodo esclavo........................... 18

4.7. Puesta en funcionamiento del clúster replicación con Slony..... 18

5. Evidencias a entregar................................................................22

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

1. Introducción.

Los sistemas computacionales que albergan los SMBD deben asegurar que
los datos que se almacenan en ellas, cuentan con esquemas de replicación
que garanticen la persistencia de los mismos ante cualquier situación que
represente una amenaza para la disponibilidad e integridad de las bases
de datos.

En este laboratorio se realizaran un conjunto de procedimientos que


conducirán a la implementación de un sistema de bases de datos
distribuido, para ello se utilizara el método de replicación maestro –
esclavo. El SMBD instalado en los equipos que conforman el clúster de
replicación seráPostgreSQL 8.4 y el software utilizado para realizar la
replicación será SLONY-I.

Slony-I es un software de replicación asíncrono que sirve para crear y


mantener sincronizadas una o varias copias de cualquier base de datos
hecha en PostgreSQL. Slony-I realiza la sincronización de los datos a
través de disparadores o triggers por lo que actualmente solo se puede
realizar replicación de tablas y secuencias.

Al momento de diseñar esta practica, Slony-I esta soportado para trabajar


solo con bases de datos que utilicen PostgreSQL 8.4, esto demandara
que para realizar esta practica satisfactoriamente, se tenga que utilizar
la unidad de almacenamiento “.vdi” que se le suministro al inicio de la
formación, la cual se encuentra vacía y con ella, crear un nueva maquina
virtual en la que se realizara la instalación del SMBD PostgreSQL 8.4.

3
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

2. Objetivos.

Objetivo General.

Replicar la base de datos de la Secretaria de


Salud de la Alcaldía de San Antonio SENA,
utilizando el software de replicación Slony y el
SMBD PostgreSQL.

Objetivos Específicos.

• Utilizar el software de replicación Slony


para replicar una base de datos hecha en
PostgreSQL, mediante la implementación del
método maestro-esclavo.

• Crear un clúster de replicación con 2


maquinas virtuales en donde una de ellas
estará configurada como nodo maestro y la
otra como nodo esclavo.

4
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

3. Consideraciones.

Antes de realizar los procedimientos planteados en este laboratorio, se


recomienda al aprendiz haber considerado los siguientes ítems:

Ítem Descripción
Soporte Teórico Previo al desarrollo de este laboratorio se debe
haber revisado:

• AA11OA1 - Bases de Datos Distribuidas.

• Material complementario: Manual para crear una


red con maquinas virtuales.
Productos Base de datos de la Secretaria de Salud de la alcaldía
requeridos de San Antonio del SENA o en su defecto el script de
construcción de estas bases de datos.

Herramientas SW Se requiere tener instalado el software de


virtualización Oracle VM VirtualBOX y haber
descargado la unidad de almacenamiento “.vdi”
que tiene instalado el sistema operativo Microsoft
Windows Server 2003.

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

4. Procedimiento.

El laboratorio aborda los principales aspectos que deben ser tenidos en


cuenta para realizar el proceso de replicación en un clúster utilizando el
SMBD PostgreSQL y el software de replicación Slony-I.

Para iniciar con el procedimiento de replicación se debe ingresar a VirtualBox


y crear una nueva maquina virtual llamada “Servidor Maestro”, la cual debe
utilizar la unidad de almacenamiento “.vdi” que se proporciono al iniciar
el proceso de formación. Es importante que la unidad de almacenamiento
utilizada solo tenga instalado el sistemas operativo Microsoft Windows
Server 2003.

Arranque la maquina virtual presionando el botón “Iniciar” el cual


tiene como imagen el siguiente icono . Posteriormente descargue el
instalador de PostgreSQL versión 8.4.15 desde el siguiente enlace http://
www.enterprisedb.com/products-services-training/pgdownload#windows
y luego realice el procedimiento de instalación ejecutando el archivo
“postgresql-8.4.15-1-windows.exe”. Recuerde que la contraseña de
acceso debe ser “especializacion” y el puerto utilizado por PostgreSQL es
el 5432.

4.1. Instalación del software de replicación Slony.

Este procedimiento puede ser realizado de dos formas, la primera


descargando los archivos que componen el software de replicación y la
segunda usando la aplicación “stackbuilder.exe”.

4.1.1. Instalación manual de Slony

Para instalar el Slony de esta forma, primero se debe dirigir al siguiente


enlace http://developer.pgadmin.org/~hiroshi/Slony-I/ y descargar el
paquete “slony-I-1.2.20R-pg84.zip”, luego se debe abrir el archivo para
extraer el directorio que lleva por nombre “8.4”.

6
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 1: Archivo de descarga del Slony-I

En el interior del directorio 8.4 hay tres directorios mas denominados bin,
lib y share; los archivos que hay en cada uno de ellos deberán ser copiados
dentro de los directorios donde se encuentra instalado PostgreSQL de la
siguiente manera:

Contenido del directorio “bin” copiarlo a C:\Archivos de programa\


PostgreSQL\8.4\bin
Contenido del directorio “lib” copiarlo a C:\Archivos de programa\
PostgreSQL\8.4\lib
Contenido del directorio “share” copiarlo a C:\Archivos de programa\
PostgreSQL\8.4\share

4.1.2. Instalación de Slony mediante el stackbuilder.exe.

Cuando se usa la aplicación “stackbuilder.exe” para descargar y


posteriormente instalar el Slony, surgen problemas con algunas librerías
usadas al momento de colocar en ejecución el software de replicación.
Por esta razón dejo a manera de ejemplo el procedimiento que aparece a
continuación:

Importante: Para desarrollar esta práctica instale el Slony-I de forma


manual.

Cuando haya iniciado la maquina virtual, ingrese a la ruta C:\Archivos


de programa\PostgreSQL\8.4\bin y ejecute la aplicación “stackbuilder.
exe”, posteriormente en la ventana que se abre seleccione en la lista
desplegable, la opción “PostgreSQL8.4 onport 5432”, luego presione el
botón “Next”:

7
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 2. Conexión a internet del Stack Builder

Importante: Cabe señalar que para realizar la instalación del software de


replicación Slony mediante la aplicación “stackbuilder.exe” es necesario
disponer de conexión a internet.

En la siguiente ventana del “stackbuilder.exe” despliegue la opción


“Replication solutions” y luego seleccione el cuadro de chequeo que
corresponde a “Slony-I forPostgreSQL 8.4 v2.0.7-1” , luego presione el
botón “Next”:

8
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 3. Selección del paquete Slony

En la siguiente ventana se muestra un resumen con los paquetes que


se seleccionaron para descargar y en la parte inferior de la misma, se
observa la ruta del directorio donde serán almacenados, si se desea esta
puede ser modificada; luego presione el botón “Next” para comenzar con
la descarga:

Imagen 4. Selección del Directorio de Descarga

En la ventana que aparece a continuación se informa que todos los

9
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

archivos han sido descargados con éxito, luego presione el botón “Next”
para comenzar la descarga del software de replicación Slony:

Imagen 5. Notificación de terminación de la descarga

Inmediatamente se abrirá una ventana con el setup de instalación del


software de replicación Slony, luego presione el botón “Next”:

Imagen 6. Inicio de la Instalación del Slony

10
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

En esta ventana se solicitara la ruta donde se almacenaran los archivos


correspondientes a la instalación del software de replicación Slony.

Imagen 7. Selección de directorio de Instalación del Slony

En esta ventana se notifica al usuario que el programa de instalación de


Slony esta listo para comenzar a realizarse en su computador. Cualquier
cambio puede ser realizado pulsando el botón “Back”, de lo contrario
presione el botón “Next” para continuar.

11
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 8. Notificación de la Instalación a realizarse

Cuando se complete la instalación del Slony, se mostrara la siguiente ventana


confirmando la finalización del proceso, luego presione el botón “Finish”:

Imagen 9. Notificación de finalización de la instalación del Slony

Inmediatamente después regresaremos a la ventana del “StackBuilder”


donde también se debe presionar el botón “Finish” para terminar este
proceso.

12
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 10. Notificación de finalización de la instalación

4.2. Configuración del Firewall de Windows

En la maquina virtual, diríjase a Inicio → Panel de control → Firewall de


Windows.

Imagen 11. Acceso al Firewall de Windows

En el cuadro de dialogo que se abre, pulse el botón “Si” para iniciar el


servicio de Firewall de Microsoft Windows 2003 Server.

13
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 12: Inicio del servicio de Firewall de WIndows

En la ventana de Firewall de Windows seleccione la pestaña “Excepciones”


y verifique este activado el cuadro de chequeo “Mostrar una notificación
cada vez que el Firewall de Windows bloquee un programa”, luego pulse
el botón “Agregar puerto”.

Imagen 13. Configuración de Firewall de Windows

En la ventana “Agregar un puerto”, ingrese en el campo “Nombre” las


palabras “SlonyPostgres” y en “Numero de puerto” el puerto “5432”, luego

14
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

seleccione la opción “TCP” y después pulse el botón “Aceptar”.

El puerto 5432 es utilizado por PostgreSQL y con este procedimiento se


dejara abierto este puerto en el servidor para aceptar conexiones de las
maquinas hacia las que se transmiten los datos que serán replicados.

Imagen 14. Agregar puerto TCP

4.3. Configuración del SMBD pgAdmin3.

Ingrese al pgAdmin3, luego despliegue en el menú superior y seleccione


“Options...”

Imagen 15. Acceso a las opciones de configuración

En la ventana Options pulse el botón que se encuentra enfrente Slony-I

15
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

path y en el explorador de archivos que se abre, navegue hasta la


siguiente ruta C:\Archivos de programa\PostgreSQL\8.4\ luego pulse el
botón “Aceptar” y después “Ok”.

Imagen 16. Opciones de configuración

4.4. Configuración del SMBD PostgreSQL.

En el explorador de archivos de Windows diríjase a la ruta C:\Archivos de


programa\PostgreSQL\8.4\data, luego abra el archivo pg_hba.conf con
un editor de texto y agregue las siguientes líneas a continuación de la
sección “# IPv4 local connections:”

TYPE DATABASE USER ADDRESS METHOD


#MaquinaMaestra
host all all 192.168.1.101/32 md5
#MaquinaEsclava
host all all 192.168.1.102/32 md5

16
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Nota: Si desea agregar mas nodos esclavos al clúster, debe ingresar las
direcciones IP’s de cada una de las maquinas en este archivo.

4.5. Creación de una maquina virtual y configuración en red.

Diríjase al manual para crear una red con maquina virtuales y realice cada
uno de los procedimientos indicados en ese documento cuando finalice,
retome el desarrollo de este laboratorio en este mismo punto.

4.6. Configuración de la herramienta de replicación Slony.

4.6.1. Script de configuración del nodo maestro

En la maquina virtual que fue seleccionada como nodo maestro; cree un


nuevo documento de texto y copie el siguiente script dentro de él, luego
guárdelo en la ruta C:\Archivos de programa\PostgreSQL\8.4\bin, con el
nombre de “maestro.txt”.

# Nombre del closter


clustername = slony;

node 1 adminconninfo = ‘dbname = secsalud host =


192.168.1.101 user = postgrespassword = especializacion’;
node 2 adminconninfo = ‘dbname = secsalud host =
192.168.1.102 user = postgrespassword = especializacion’;

init cluster (id=1, comment = ‘Nodo Maestro’);

# set de replicación
create set (id=1, origin=1, comment= ‘tablas’);

# se crea un set por cada tabla que se va a replicar de la


base de datos de la secSalud:

set add table (set id=1, origin=1, id=1, fully qualified name

17
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

= ‘public.eps’, comment = ‘tablaeps’);


set add table (set id=1, origin=1, id=2, fully qualified name
= ‘public.estadoeps’, comment = ‘tablaestadoeps’);
set add table (set id=1, origin=1, id=3, fully qualified name
= ‘public.estadopersona’, comment = ‘tablaestado persona’);
set add table (set id=1, origin=1, id=4, fully qualified name
= ‘public.historialpersona’, comment = ‘tablahistorial perso-
na’);
set add table (set id=1, origin=1, id=5, fully qualified name
= ‘public.persona’, comment = ‘tabla persona’);
set add table (set id=1, origin=1, id=6, fully qualified
name = ‘public.servicioeps’, comment = ‘tablaservicioservi-
cioeps’);
set add table (set id=1, origin=1, id=7, fully qualified name
= ‘public.tipoafiliado’, comment = ‘tablatipoafiliado’);
set add table (set id=1, origin=1, id=8, fully qualified name
= ‘public.tipoidentificacion’, comment = ‘tablatipoidentifica-
cion ‘);
set add table (set id=1, origin=1, id=9, fully qualified name
= ‘public.tiposervicioacion’, comment = ‘tablatipoidentifica-
cion ‘);

# se indica cual sera el nodo(s) esclavo(s)


store node (id=2, comment = ‘nodoescavo’, EVENT NODE =1);

store path (server =1, client = 2, conninfo = ‘dbname =


secsalud host = 192.168.1.101 user = postgres password = es-
pecializacion’);
store path (server =2, client = 1, conninfo = ‘dbname =
secsalud host = 192.168.1.102 user = postgres password = es-
pecializacion’);

store listen (origin = 1, provider = 1, receiver = 2);


store listen (origin = 2, provider = 2, receiver = 1);

18
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

4.6.2. Script de configuración del nodo esclavo.

En la maquina virtual que fue seleccionada como nodo esclavo; cree un


nuevo documento de texto y copie el siguiente script dentro de él, luego
guárdelo en la ruta C:\Archivos de programa\PostgreSQL\8.4\bin, con el
nombre de “esclavo.txt”.

→ Nombre del cluster


clustername = slony;
node 1 adminconninfo = ‘dbname = secsalud host =
192.168.1.101 user = postgrespassword = especializacion’;
node 2 adminconninfo = ‘dbname = secsalud host =
192.168.1.102 user = postgrespassword = especializacion’;
subscribe set (id = 1, provider = 1, receiver = 2, forward =
yes);

4.7. Puesta en funcionamiento del clúster replicación con Slony.

En una terminal de símbolo del sistema del nodo maestro diríjase a la ruta
C:\Archivos de programa\PostgreSQL\8.4\bin, luego ejecute la sentencia:
slonik maestro.exe; como se muestra en la imagen 17.

Imagen 17 Sentencias ejecutadas en la terminal del nodo maestro

Posteriormente diríjase a la terminal del nodo esclavo y una vez ubicado


dentro de la ruta C:\Archivos de programa\PostgreSQL\8.4\bin, ejecute
la sentencia: slonik esclavo.exe, como se muestra en la imagen 18.

19
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Imagen 18 Sentencias ejecutados en la terminal del nodo esclavo

Ejecute la siguiente sentencia en las terminales del símbolo del sistema,


tanto del nodo maestro como del nodo esclavo; recuerde que debe estar
ubicado dentro del directorio C:\Archivos de Progra-mas\PostgreSQL\8.4\
bin\

Importante: Escriba la sentencia en su totalidad no la copie.

slon slony “dbname = secsalud user = postgres password = especializacion”

Inmediatamente después de ejecutar esta sentencia, la base de datos


“secsalud” estará replicando las modificaciones que se realicen en las
tablas del nodo maestro hacia las tablas de la base de datos ubicadas
en el nodo esclavo y se observara en ambas terminales una salida como
muestra la imagen 19.

Imagen 19 Puesta en funcionamiento del sistema de replicación

Importante: No se debe cerrar las consolas en ninguno de los nodos


donde se ejecuto esta sentencia.

20
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Diríjase al nodo maestro y en el explorador de objetos del pgAdmin3


verifique que en la opción “Replication” de la base de datos de la “secsalud”
se han creado el clúster, los nodos y los objetos replicados correctamente.

Imagen 20 pgAdmin3 del nodo maestro

21
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Diríjase al nodo esclavo y en el explorador de objetos del pgAdmin3 verifique


que en las opción “Re-plication” de la base de datos de la “secsalud” se
han creado el clúster, los nodos y los objetos replicados correctamente.

Imagen 21 pgAdmin3 del nodo esclavo

22
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Replicación de base de datos en PostgreSQL

Realice modificaciones desde el nodo maestro en las tablas de la base de


datos de la “secsalud” y verifique que están siendo replicadas correctamente
en las tablas de la base de datos ubicada en el nodo esclavo

5. Evidencias a entregar.
• Vídeo tutorial en donde se evidencie la replicación de la base de datos
de la Secretaria de Salud de la Alcaldía de San Antonio de SENA,
utilizando la maquina anfitrión y dos maquinas virtuales como parte
de un mismo clúster. En el clúster de replicación una de las maquinas
estará configurada como nodo maestro (lectura y escritura) y dos mas
como nodos esclavos (solo lectura). El videotutorial debe propender
en tener un tamaño inferior a 100 MB a efectos de enviar el archivo
resultante a través de herramientas dispuestas en la Web.

23
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje