[REPLICACIN DE BASE DE DATOS EN POSTGRESQL.] 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. Tabla de contenido Introduccin ........................................................................................................................................ 1 Replicando una de base de datos de postgresql con slony-I en Windows 7 .................................. 2
INTRODUCCION
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.
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 -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 hemos elegido Slony-I . 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.
REPLICANDO UNA BASE DE DATOS DE POSTGRESQL CON SLONY-I EN WINDOWS 7
Requisitos: Para la realizacin de nuestra replicacin es necesario tener instaladas las siguientes herramientas:
PostgreSQL 9.2 o compatible PGadmin III Slony-I 2.0.4
PostgreSQL 9.2: 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: 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.
Slony-I 2.0.4: Es el software que permite la replicacin en PostgreSQL.
Consideraciones:
Ambos nodos debern tener instalado PostgreSQL 9.2, 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
Crear 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 replicacin.
Paso 2: Configurar el Slony-I 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 File y despus click en Options como se muestra a continuacin.
Luego click slony_I path---c:\program Files\ PostgreSQL\9.2\Share y posteriormente aceptar.
Ademas de agregar la ruta anterior, debemos de verificar que tengamos disponible el lenguaje plpgsql.
Si no esta disponible lo agregamos de la siguiente manera File--Options--display y seleccionamos Lenguages.
Paso 3: configurar firewall de windows 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 control--Sistema y seguridad---firewall de Windows---configuracin avanzada---reglas de entrada---nueva regla
Al hacer click en nueva regla veremos la siguiente ventana, elegimos puerto y despus siguiente.
Al hacer clic en siguiente nos aparece la ventana para especificar puerto y protocolo para el caso elegimos TCP---Puertos locales especificos. El puerto en este caso es el de postgeSQL (5432). Luego siguiente.
Seleccionamos permitir conexin y hacemos click en siguiente.
Seleccionamos dominio y privado y presionamos el botn siguiente.
Luego le colocamos un nombre y finalizar
Ya tenemos creada nuestra entrada para permitir conexiones remotas en Windows. Paso 4: configurar el archivo pg_hba.conf Abrir el archivo C:\Program Files \PostgreSQL \9.2\data\pg_hba.conf. Lo modificamos quedando ms o menos de la siguiente manera:
Esto se realizar para todas las maquinas donde se desea replicar. Crear un script con el bloc de notas para el nodo maestro y lo llamaremos maestro.txt: Guardar archivo en C:\Program Files\PostgreSQL\9.2\bin\
Crearemos un script llamado esclavo.txt para el nodo esclavo, este ser guardado en C:\Archivos de Programas\PostgreSQL\9.2 \bin\ pero del nodo esclavo.
Abrimos la consola de Windows en el nodo MEASTRO y ejecutamos la siguiente lnea: C:\Archivos de Programas\PostgreSQL\9.2\bin\slonik maestro.txt
Abrimos la consola de Windows en el nodo ESCLAVO y ejecutamos la siguiente lnea: C:\Archivos de Programas\PostgreSQL\9.2\bin\slonik esclavo.txt
En la maquina MAESTRO ejecutamos lo siguiente Cd C:\Archivos de Programas\PostgreSQL\9.2\bin\slon slony_replicacion dbname = replicacion user = postgres password = 1408anet
En el nodo ESCLAVO ejecutamos lo siguiente Cd C:\Archivos de Programas\PostgreSQL\9.2\bin\slon slony_replicacion dbname = replicacion user = postgres password = semi14gm
Desde este momento la base de datos replicacin estar replicando cualquier modificacin de las tablas. NO DEBEMOS CERRAR LA CONSOLA EN NINGN NODO.