1. 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
2. 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.
3. 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
4. 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.
5. • 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.
6. 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.
8. • En este caso agregaremos el campo nombre a nuestra primera tabla y
9. 2. Agregamos la ruta para Slony desde file>options>slony_I path>c:program
Files PostgreSQL8.4share
10. 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.4datapg_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
#maestro
host all all 192.168.0.1/24 md5
#esclavo
host 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...
11. Abre el bloc de notas, copia lo siguiente y modifica los parámetros de este script:
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 ProgramasPostgreSQL8.4binslonik maestra.txt
7. Ejecutar desde la consola de Windows en la maquina esclava:
12. C:Archivos de ProgramasPostgreSQL8.4binslonik suscriptor.txt
8. En Windows con tan solo ir a la línea de comandos en C:Program
FilesPostgreSQL8.4bin> ejecutar:
- slon –regservice
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.