Top Banner
UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE DEPARTAMENTO DE INGENIERÍA Y ARQUITECTURA “REPLICACION CON POSTGRESQL” CARRERA: INGENIERIA DE SISTEMAS INFORMATICOS DOCENTE: ING. ERNESTO ALEXANDER CALDERON ALUMNOS: BATRES CISNEROS, DEYMI CORINA CASTRO MARTINEZ,JUAN CARLOS MENDEZ CADENAS, JOHANNA NATHALIE QUIÑONEZ GUERRERO, ROSA ESMERALDA
14
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Replicacion con  postgresql y slony

UNIVERSIDAD DE EL SALVADORFACULTAD MULTIDISCIPLINARIA DE OCCIDENTE

DEPARTAMENTO DE INGENIERÍA Y ARQUITECTURA

“REPLICACION CON POSTGRESQL”

CARRERA:INGENIERIA DE SISTEMAS INFORMATICOS

DOCENTE:ING. ERNESTO ALEXANDER CALDERON

ALUMNOS:

BATRES CISNEROS, DEYMI CORINA

CASTRO MARTINEZ,JUAN CARLOS

MENDEZ CADENAS, JOHANNA NATHALIE

QUIÑONEZ GUERRERO, ROSA ESMERALDA

Page 2: Replicacion con  postgresql y slony

REPLICACION CON POSTGRESQL-SLONY-I EN WINDOWS

POSTGRESQL

Es el gestor de bases de datos de codigo abierto mas avanzado hoy en dia, ofreciendo control de concurrecia multiversion, soportando casi toda la sintaxis SQL,contando tambien con un amplio conjunto de enlaces con lenguajes de programación.

Es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD, como su nombre lo indica, utiliza el lenguaje SQL para llevar a cabo sus búsquedas de información, las bases de datos generadas dentro de servidores de SQL son bases de datos relacionales.

Las herramientas de replicación de bases de datos son imprescindibles para centros de datos, Slony es una excelente elección cuando se requiere realizar una replicación asíncrona de bases de datos de PostgreSQL.

Cumple completamente con las características atomicidad, consistencia, aislamiento y durabilidad (Atomicity, Consistency, Isolation and Durability: ACID) para realizar transacciones seguras, es multiplataforma, está disponible para 34 plataformas en su última versión estable. Posee interfaces nativas para lenguajes como ODBC, JDBC, C, C++, PHP, PERL, TCL, ECPG; PYTHON y RUBY, además de traer soporte para la herencia y la seguridad de la capa de dispositivo de transportación de datos (Secure Sockets Layer: SSL). Además, PostgreSQL puede ser personalizado por el usuario en muchas formas, según sus necesidades, por ejemplo, adicionando entre otros, un nuevo:

Tipo de datos.

Funciones.

Operadores.

Funciones agregadas.

Lenguajes procedurales.

Page 3: Replicacion con  postgresql y slony

HERRAMIENTA DE REPLICACION

Slony-I

MODELOS DE REPLICACION

PgAdmin3: Entorno de escritorio visual. PgAccess : Entorno de escritorio visual. PhpPgAdmin: Entorno Web. Psql: Cliente de consola.

SLONY-I:

Es un sistema de replicacion asincrono para PostgreSql de una base de datos maestra hacia multiples bases de datos hijas que realiza las actualizaciones utilizando triggers, lo que significa que no puede propagar cambios de esquemas y operaciones con objetos . Actualmente Slony solamente replica cambios a tablas y secuencias.

La ventaja que tenemos con Slony es que el servidor primario manda las actualizaciones en tiempo real a la base de datos esclava y en caso de que falle el servidor primario, continuamos trabajando con la base de datos esclava.

En el "origen" de cada tabla replicada, un trigger adicional se agrega y se almacena schemadoclogtrigger () . Por cada suscriptor, las tablas son aumentadas con un trigger que ejecuta la funcion schemadocdenyaccess (), esta función evita que cualquier cosa que no sea el proceso slon actualice los datos en tablas replicadas. Además, todos los otros factores desencadenantes y las normas sobre las tablas replicadas se suprimen en los suscriptores. No se maneja "de forma automática," usted, como administrador de base de datos, tendrá que construir una secuencia de comandos SQL DDL y lo presentará, a través de slonik execute script.

PREREQUISITOS

Instalar POSTGRESQL 8.4 Instalar Slony-I v.2.0.4-1

Page 4: Replicacion con  postgresql y slony

PGADMIN-III

Interfaz gráfica soporta todas las características de PostgreSQL y facilita enormemente la administración. La aplicación también incluye un editor SQL con resaltado de sintaxis, un editor de código de la parte del servidor, un agente para lanzar scripts programados, soporte para el motor de replicación Slony-I y mucho más.

CONCEPTOS IMPORTANTES ANTES DE EMPEZAR LA REPLICACION

• Cluster : Conjunto de bases de datos PostgreSql dentro de las cuales sucede la replicacion.

• Nodo : Es una base de datos que participara en el proceso de replicacion.

• Set de Replicacion: Conjunto de tablas y secuencias que se replicaran.

Page 5: Replicacion con  postgresql y slony

• Origen: proveedores y suscriptores: Los nodos que reciben la informacion se denomina nodos suscriptores, dichos nodos suscriptores se pueden en proveedores y s u vez tienen otros nodos suscriptores.

• Comandos Slonik: E s un pequeño interprete que incluye comandos utilizados para la manipulacion del cluster de replicacion.

Suscriptores: Son todos los demás nodos en el cluster(esclavos), son los que reciben los datos en la réplica.

Proveedores: Es un nodo subscriber (esclavo) que sirve comoproveedor para un subconjunto de nodos en el cluster (actúa como un nodo origin pero no se permite a ninguna aplicación escribir en él.

Page 6: Replicacion con  postgresql y slony

INSTALACION Y CONFIGURACION DE POSTGRESQL-SLONY-I

REPLICANDO!!!

1. crear la base de datos en ambos nodos maestro y esclavo.

Abrir el programa pgAdmin III , clic derecho sobre servers y se nos mostrara una imagen como la siguiente en donde asignamos el nombre de nuestro Server(en nuestro caso ejemplo) y la direccion ip de nuestro nodo maestro .

Creamos la misma base de datos en nuestro nodo maestro utilizando nuestra aplicación PosgreSQL Maestro.Asignamos tablas y cmpos a nuestra base de datos.

Page 7: Replicacion con  postgresql y slony

Clic en commit para agregar nuestra tabla.

Page 8: Replicacion con  postgresql y slony

En este caso agregaremos el campo nombre a nuestra primera tabla y

Page 9: Replicacion con  postgresql y slony

2. Agregamos la ruta para Slony desde file>options>slony_I path>c:\program Files\ PostgreSQL\8.4\share

Page 10: Replicacion con  postgresql y slony

3. Crear una nueva regla de entrada para que nuestro firewall permita la conexión a traves del puerto 5432.

4. Configurar el archivo pg_hba

C:\Program Files \PostgreSQL \8.4\data\pg_hba.conf

Agregar las siguientes líneas

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:host all all 127.0.0.1/32 md5#maestrohost all all 192.168.0.1/24 md5

#esclavohost all all 192.168.0.2/24 md5# IPv6 local connections:host all all ::1/128 md5

5. Ahora vamos a crear un script al cual se le introduce que tablas queremos replicar, se especifica quien será el nodo maestro y el nodo o nodos secundarios a los cuales queremos replicar nuestra información, etc...

Abre el bloc de notas, copia lo siguiente y modifica los parámetros de este script:

Page 11: Replicacion con  postgresql y slony

Para el nodo maestro:

cluster name = slony_pruebaRE;

node 1 admin conninfo = 'dbname=prueba host=192.168.0.2 user=postgres password=soloyo';node 2 admin conninfo = 'dbname=prueba host=192.168.0.1 user=postgres password=soloyo';

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

create set (id=1, origin=1, comment='mis tablas');set add table (set id=1, origin=1, id=1, fully qualified name='public.tabla1', comment='mi tabla ');

store node (id=2, comment='Nodo Esclavo', EVENT NODE=1);

store path (server=1, client=2, conninfo='dbname=prueba host=192.168.0.2 user=postgres password=soloyo');store path (server=2, client=1, conninfo='dbname=prueba host=192.168.0.1 user=postgres password=soloyo');

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

Para el nodo esclavo:

cluster name = slony_pruebaRE;

node 1 admin conninfo='dbname=prueba host=192.168.0.2 user= postgres password=soloyo';node 2 admin conninfo='dbname=prueba host=192.168.0.1 user= postgres password=soloyo';

SUBSCRIBE SET ( ID=1, PROVIDER=1, RECEIVER=2, FORWARD= yes);

6. Ejecutar desde la consola de Windows en la maquina maestra:

C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik maestra.txt

7. Ejecutar desde la consola de Windows en la maquina esclava:

C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik suscriptor.txt

8. En Windows con tan solo ir a la línea de comandos en C:\Program Files\PostgreSQL\8.4\bin> ejecutar:

- slon –regservice

Page 12: Replicacion con  postgresql y slony

Con esto hemos creado el servicio, ve a Servicios de Windows y busca el servicio llamado Slony-I para verificar que todo se haya ejecutado correctamente, pero no lo actives.En este momento los nodos ya están replicando, y no se deben cerrar las consolas. Cada vez que inicies postgres debes iniciar el servicio de nuevo para actualizar los datos de la replica.