Você está na página 1de 21

UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE DEPTO.

DE INGENIERIA Y ARQUITECTURA

REPLICACION EN POSTGRESQL CON SLONY-I EN WINDOWS CATEDRA: BASE DE DATOS CATEDRATICO: ING. ALEXANDER CALDERON PRESENTADO POR: GARAY CALDERON KEVIN ALONSO MENJIVAR SALAS JOSE ALBERTO NUEZ EDVIN MANOLO HERRERA MEJIA LUIS ALBERTO

SANTA ANA, 22 DE MAYO DE 2012

ndice general Contenido pag

Sobre PostgreSQL .......................................................................................................................... 1 Caractersticas de PostgreSQL ........................................................................................................ 1 Herramientas graficas de administracin de bases de datos en PostgreSQL................................... 1 La replicacin de datos................................................................................................................... 2 Herramientas de replicacin para PostgreSQL ................................................................................ 2 Sobre Slony-I .................................................................................................................................. 3 Aspectos importantes antes de poner en marcha una replicacin .................................................. 4 Replicando una base de datos de PostgreSQL con Slony-I en Windows .......................................... 5

POSTGRESQL Y REPLICACION

Sobre PostgreSQL
PostgreSQL es una potente herramienta de gestin de bases de datos relacional y orientada a objetos (SGBDOO en sus siglas en ingles). PostgreSQL se distribuye bajo licencia BSD (Berkeley Software Distribution). Es una licencia de software libre permisiva, lo que permite su uso, redistribucin, modificacin con la nica restriccin de mantener el copyright del software a sus autores.

Caractersticas de PostgreSQL
Entre las caractersticas de PostgreSQL podemos destacar las siguientes: Es multiplataforma, PostgreSQL en sus versiones ms recientes est disponible para 34 plataformas. Cuenta con un rico conjunto de tipo de datos, permitiendo adems su extensin mediante tipos y operadores definidos y programados por el usuario. Sus opciones de conectividad abarcan TCP/IP, sockets Unix y NT adems de soportar completamente ODBC. Soporte para vistas, claves forneas, integridad referencial, disparadores (triggers), procedimientos almacenados y casi todos los tipos de datos y operadores soportados en SQL. Su administracin se basa en usuarios y privilegios.

Herramientas graficas de administracin de bases de datos en PostgreSQL.


Existen varias herramientas que se pueden utilizar para la manipulacin de bases de datos en PostgreSQL, dichas herramientas nos permiten ver y trabajar con casi todos los objetos de la base de datos, examinar sus propiedades o realizar tareas administrativas. Entre estas herramientas podemos mencionar: PHPPGadmin: esta herramienta est basada en interfaz web.
1

PGexplorer: entorno de escritorio. PGadmin: entorno de escritorio. PGaccess: entorno de escritorio. Psql: Cliente de consola. Etc.

Todas estas pueden encontrar en sus respectivas versiones.

La replicacin de datos
La replicacin es una tcnica que se basa en mantener objetos de las bases de datos en mltiples ubicaciones. De esta forma se puede tener una rplica exacta o parcial de la base de datos que puede usarse para una restauracin de emergencia o bien para realizar consultas sobre ella y aligerar la carga del servidor principal. La replicacin es una buena alternativa para tener disponibilidad de informacin cuando un servidor se cae. La replicacin no suplanta los backups, sino, simplemente garantiza la operatividad. Existen algunos mtodos de replicacin entre los cuales se pueden mencionar: Multimaestro Maestro -esclavo Multimaestro: es un mtodo de replicacin de bases de datos que permite que los datos sean almacenados por un grupo de computadoras y adems estos datos pueden ser actualizados por cualquier nodo de este grupo. Con este tipo de replicacin todos los nodos participantes son de lectura/escritura. Maestro-esclavo: con este mtodo de replicacin los datos tambin son almacenados en un grupo de computadoras con la diferencia de que aqu solamente el nodo maestro es de lectura/escritura y el esclavo solo de lectura.

Herramientas de replicacin para PostgreSQL

Hay varias herramientas que actan como middleware (intermediario) entre PostgreSQL y la replicacin de datos, entre las que se pueden destacar: Slony-I Rubyrep PGpool Hot Standby / Streaming Replication

De estas herramientas se elegir la que ms se ajustes a las necesidades que se tengan, en nuestro caso hemos elegido Slony-I y ser en la cual profundizaremos nuestro estudio. SLONY-I

Sobre Slony-I
Slony-I es un sistema de replicacin asncrono para PostgreSQL de una base de datos maestra hacia una o mltiples bases de datos hijas. Slony-I realiza las actualizaciones a travs de disparadores o triggers por lo que actualmente solo puede realizar replicacin de tablas y secuencias. Replicacin asncrona Que una replicacin sea asncrona significa que cuando una transaccin para la base de datos es enviada al servidor maestro no se garantiza que est disponible para los nodos esclavos. Triggers Un trigger (o disparador) en una Base de datos, es un procedimiento que se ejecuta cuando se cumple una condicin establecida al realizar una operacin. Dependiendo de la base de datos, los triggers pueden ser de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. Situaciones en las cuales no es recomendable utilizar slony-I Bases de datos donde regularmente se hagan cambios a esquemas y definiciones de tablas (DDL). Cuando se quiere un sistema de replicacin que por s mismo de notificaciones sobre fallos como por ejemplo nodos cados.
3

De lo contrario Slony-I es una opcin para tomar muy en cuenta al querer realizar una replicacin.

Aspectos importantes antes de poner en marcha una replicacin


Antes de poner en marcha una replicacin usando Slony-I es importante tener claro algunos conceptos como: Clster Nodo Set de replicacin Origen, Proveedores y Suscriptores Demonio slon Comando slonik

Cluster: conjunto de bases de datos PostgreSQL dentro de las cuales ocurre la replicacin. Nodo: un nodo es una base de datos que participa en el proceso de replicacin. Set de replicacin: Es un conjunto de tablas y secuencias que se replicaran. Ntese que no se replican todas las tablas, sino que se tienen que especificar explcitamente. Origen, proveedores y suscriptores: Cada set de replicacin tiene un nodo de origen, que es la base de donde se obtiene informacin. Los nodos que reciben la informacin se denominan nodos suscriptores. Dichos nodos suscriptores se pueden convertir en proveedores si a su vez tienen otros nodos suscriptores. Demonios slon: Para cada nodo en el clster, existe un proceso slon que administra la actividad de replicacin para ese nodo. Comandos slonik: es un pequeo intrprete de comandos que incluye comandos utilizados para la manipulacin del clster de replicacin. Tambin se recomienda tomar en cuenta las siguientes consideraciones: Utilizar exactamente la misma versin de Slony en todos los nodos. Utilizar versiones 8.3 o superior de PostgreSQL para utilizar Slony-I 2.0.4
4

Sincronizacin de hora de sistemas operativos donde estn las bases involucradas en la replicacin.

Replicando una base de datos de PostgreSQL con Slony-I en Windows


Requisitos: Para la realizacin de nuestra replicacin es necesario tener instaladas las siguientes herramientas: PostgreSQL 8.4 o compatible PGadmin III Slony-I 2.0.4 Descripcin de los elementos: PostgreSQL 8.4: es el gestor de base de datos, el cual puede ser instalado desde el gestor de paquetes de Linux o se puede descargar desde su sitio oficial (http://www.postgresql.org/ftp/binary) tanto para Linux como para Windows. PGadmin III: como se dijo anteriormente existen varias herramientas para la manipulacin de bases de datos PostgreSQL entre los que esta PGadmin. PGadmin III es una interfaz grfica que soporta todas las caractersticas de PostgreSQL y facilita enormemente la administracin. La aplicacin tambin incluye un editor SQL con resaltado de sintaxis, un editor de cdigo de la parte del servidor, un agente para lanzar scripts programados, soporte para el motor de replicacin Slony-I y mucho ms. Al igual que PostgreSQL esta herramienta tambin se encuentra disponible en los repositorios de Linux y se puede instalar de esa forma o descargndolo de su sitio web oficial (http://www.postgresql.org/ftp/pgadmin3/release/). Slony-I 2.0.4: como ya vimos anteriormente Slony es el software que permite la replicacin en PostgreSQL, su instalacin puede ser tambin desde el gestor de paquetes en Linux o utilizando el Stack Builder que es una herramienta que se instala cuando instalamos el gestor PostgreSQL en windows y sirve para instalar complementos para dicho gestor.

Para instalar Slony-I desde el Stack Builder debemos seguir los siguientes pasos: 1234Inicio Todos los programas PostgreSQL Aplicacin Stack Builder, clic derecho ejecutar administrador y nos aparecer la siguiente pantalla.

como

5- En la pestaa seleccionamos PostgreSQL 8.4 on port 5432 como se muestra en la siguiente imagen. Presionamos siguiente.

6- Al dar clic en siguiente se no muestra una ventana con las categoras de complementos que podemos instalar para el caso debemos elegir soluciones de replicacin.

7- Y chequeamos Slony-I y siguiente.

8- Nos aparecer la ventana con el resumen de los paquetes seleccionados para instalar.

9- Para el caso solo instalaremos Slony-I. Si todo es correcto presionamos siguiente. Se instalaran los paquetes seleccionados y le damos finalizar. Cabe mencionar que para realizar la instalacin de este modo debemos de tener conexin a internet. Con los pasos anteriores ya tendremos a disposicin Slony-I 2.0.4 para PostgreSQL 8.4

CASO PRACTICO DE REPLICACION. Ya teniendo todo lo necesario pasamos a lo que es la replicacin en s. A continuacin se muestra como realizar dicha replicacin de tipo maestroesclavo en Windows 7 con los detalles mostrados en la imagen.

Consideraciones: Ambos nodos debern tener instalado PostgreSQL 8.4, Slony-I y PGadmin. La base de datos a replicar deber crearse tanto en el nodo maestro como en el nodo esclavo y debe de ser idntica, a sea debe llamarse igual tanto la BD como las tablas y campos, tener los mismos campos, etc. Paso 1: Crear la base de datos 1.1Crear la base de datos que queremos replicar (si ya se tiene creada la BD saltar a siguiente paso) para el caso utilizaremos la base de datos mini_agenda la cual se muestra a continuacin:

1.2-

El siguiente paso ser pasar la base de datos al gestor PostgreSQL 8.4 para ello utilizaremos PGadmin III, deber quedar de la siguiente manera:

1.3-

Esta configuracin debe de estar en ambos nodos

Paso 2: Configurar el Slony-I 2.1- Ya teniendo creada la base de datos, el siguiente paso es agregar desde el PGadmin la ruta a Slony-I para ello nos vamos a FileOpciones slony_I pathc:\program Files\ PostgreSQL\8.4 recordemos que esta es la ruta donde se instalo Slony-I por lo que si especificamos otro directorio al instalarlo esta ruta variara.

10

2.2- Ademas de agregar la ruta anterior, debemos de verificar que tengamos disponible el lenguaje plpgsql.

Si no esta disponible debemos agregarlo de la siguiente manera


11

FileOptionsdisplay y chequiamos Lenguages

Luego clic derecho sobre lenguajenuevo lenguajeplpgsql

12

Paso 3: configurar firewall de windows 3.1- Crear una nueva regla de entrada para que nuestro firewall permita la conexin a travs del puerto 5432. Para ello nos dirigimos a Panel de controlSistema y seguridadfirewall de Windowsconfiguracin avanzadareglas de entradanueva reglapuerto.

Al hacer clic en siguiente nos aparece la ventana para especificar puerto y protocolo para el caso elegimos TCPPuertos locales especificos. El puerto en este caso es el de postgeSQL o sea 5432

13

Siguiente y permitir conexin

Despus seleccionamos dominio y privado

14

Luego le colocamos un nombre y finalizar

Listo ya tenemos creada nuestra entrada para permitir conexiones remotas en Windows. Paso 4: configurar el archivo pg_hba.conf 4.1abrir el archivo C:\Program Files \PostgreSQL \8.4\data\pg_hba.conf. Este deber ser abierto con el bloc de notas. 4.2-modificar el archivo para que quede de la siguiente manera # TYPE DATABASE USER CIDR-ADDRESS md5 md5 md5 md5 METHOD

# IPv4 local connections: host all all 127.0.0.1/32 #maestro host all all 10.0.10.2/24 #esclavo host all all 10.0.10.3/24 # IPv6 local connections: host all all ::1/128

Esto se realizar para todas las maquinas donde se desea replicar.


15

5- Crear un script con el bloc de notas para el nodo maestro y lo llamaremos Maestro.txt: cluster name = slony_MINI_AGENDA; node 1 admin conninfo = 'dbname = MINI_AGENDA host = 10.0.10.2 user = postgres password = admin'; node 2 admin conninfo = 'dbname = MINI_AGENDA host = 10.0.10.3 user = postgres password = admin'; init cluster (id=1, comment = 'nodo maestro'); create set (id=1, origin=1, comment= 'aqui van todas mis tablas'); set add table (set id=1, origin=1, id=1, fully qualified name = 'public.Contacto', comment= 'mi tabla contacto'); set add table (set id=1, origin=1, id=1, fully qualified name = 'public.Telefono', comment= 'mi tabla telefono');

store node (id = 2, comment = 'nodo esclavo', EVENT NODE = 1); store path (server = 1, client = 2, conninfo = 'dbname = MINI_AGENDA host = 10.0.10.2 user = postgres password = admin'); store path (server = 2, client = 1, conninfo = 'dbname = MINI_AGENDA host = 10.0.10.3 user = postgres password = admin'); store listen (origin = 1, provider = 1, receiver = 2); store listen (origin = 2, provider= 2, receiver = 1);

Este archive debera guardarce en la siguiente ubicacion C:\Archivos de Programas\PostgreSQL\8.4\bin\ 6- de la misma manera crearemos un script llamado Suscriptor.txt para el nodo esclavo, este ser guardado en C:\Archivos de Programas\PostgreSQL\8.4\bin\ pero del nodo esclavo.

16

cluster name = slony_MINI_AGENDA; node 1 admin conninfo = 'dbname= MINI_AGENDA host = 10.0.10.2 user = postgres password = admin'; node 2 admin conninfo = 'dbname= MINI_AGENDA host =10.0.10.3 user = postgres password = admin'; subscribe set (id = 1, provider = 1, receiver = 2, forward = yes);

8- Ejecutar el script en el nodo maestro. 8.1- abrir la consola de Windows y ejecutamos la siguiente lnea: C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik Maestro.txt

9- Ejecutar el script en el nodo esclavo. 9.1- abrir la consola de Windows y ejecutamos la siguiente lnea: C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik Suscriptor.txt

17

10- Ejecutar siempre desde la consola de Windows en la maquina maestra y esclava la siguiente instruccin: C:\Archivos de Programas\PostgreSQL\8.4\bin\slon slony_MINI_AGENDA dbname = MINI_AGENDA user = postgres password = admin

18

Desde este momento la base de datos MINI_AGENDA estar replicando cualquier modificacin de sus tablas. OjO NO DEBEMOS CERRAR LA CONSOLA EN NINGUN NODO.

19

Você também pode gostar