Mostrando entradas con la etiqueta slony. Mostrar todas las entradas
Mostrando entradas con la etiqueta slony. Mostrar todas las entradas

sábado, 29 de enero de 2011

Replicación PostgreSQL - Slony I

PostgreSQL es un  sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
Es un software que nos permite hacer replicaciones maestro/esclavo asíncrono, realizando actualizaciones en cascada...
UNIVERSIDAD DE EL SALVADOR FMOcc
Base de datos
Replicación de base de datos PostgreSQL Slony I en Windows

Ing. Alexander Calderón

Alumnos
Br. García Cáceres, Gilbert Alfredo
Br. Gómez Hernández. Carlos Miguel Angel
Br. Gómez García, Wil Edely
Br. Juárez Ramírez, Iris del Carmen

  • PostgreSQL
    PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
  • Slony I
    Es un software que nos permite hacer replicaciones maestro/esclavo asíncrono, realizando actualizaciones en cascada.
  • Slony-I es un maestro "a varios esclavos" sistema de replicación en cascada de apoyo (por ejemplo - un nodo puede alimentar a otro nodo que se alimenta de otro nodo) y de conmutación por error.
    El panorama para el desarrollo de Slony-I es que es un esclavo de replicación del sistema principal que incluye todas las características y las capacidades necesarias para replicar bases de datos de gran tamaño a un número razonablemente limitado de los sistemas esclavistas.
    Slony-I es un sistema diseñado para su uso en centros de datos y sitios de respaldo, en el modo normal de operación es que todos los nodos están disponibles.

  • Replicación: Es el proceso por el cual se desea mantener y copiar los datos de una base de datos, de esta manera los datos son transportados y son totalmente almacenados.
  • Cluster: Es el conjunto de instancias de bases de datos PostgreSQL que están envueltos en la replicación.
  • Nodo: Se le llama así a cada una de las bases de datos envueltas en la replicación
    Es la base de datos que se encuentra envuelta en el proceso de la replicación
    Entre los principales nodos tenemos:
    1.Nodo Origen
    2.Nodo Suscriptor

(ver video de los conceptos)


TOPOLOGIA DE LA RED




Configuración para la replicación
NOTA: Instalar PostgreSQL y el software Slony I (stack builder)




1. Crear la base de datos que se quiere replicar (en ambas:maestran y esclava), deben tener la misma estructura

2. Configurar el archivo pg_hba
C:\Program Files \PostgreSQL \8.4\data\pg_hba.conf

Agregar las siguientes líneas

#Maestro
host all all 192.168.1.2/24 md5

#Esclavo
host all all 192.168.1.10/24 md5

(Esto se realizará para todas las maquinas donde se desea replicar)

3. Abrir el gestor de PostgreSQL y crear una base de datos (para este ejemplo se llamará EMPRESA)

4. Asignar la ruta del slony
Menu Archivo/Opciones/Seleccionar la ruta de slony I

C:\Archivos de Programa\PostgreSQL\8.4\Share\

5. Agregar puerto para PostgreSQL

• Panel de control
• Firewall de Windows
• Configuración avanzada (en Windows XP lo siguiente es seleccionar la ficha excepción y agregar el puerto (nombre postgres y número 5432)
• Reglas de entrada
• Nueva Regla
Clic en puerto y siguiente:
Clic en protocolo TCP, número de puerto 5432 y siguiente:
Permitir conexión y siguiente:
Seleccionar Dominio, Privado y Público
Digitar el nombre de la excepción y clic en finalizar

6. Crear un script para el nodo maestro (Maestro.txt) en la ruta:
C:\Archivos de Programas\PostgreSQL\8.4\bin\

------------------------------------------------------------
cluster name = slony_empresa;

node 1 admin conninfo = 'dbname = EMPRESA host = 192.168.1.2 user = postgres password = alfredo';
node 2 admin conninfo = 'dbname = EMPRESA host = 192.168.1.10 user = postgres password = alfredo';

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.empleado', comment= 'mi tabla empleado');

store node (id = 2, comment = 'nodo esclavo', EVENT NODE = 1);
store path (server = 1, client = 2, conninfo = 'dbname = EMPRESA host = 192.168.1.2 user = postgres password = alfredo');
store path (server = 2, client = 1, conninfo = 'dbname = EMPRESA host = 192.168.1.10 user = postgres password = alfredo');
store listen (origin = 1, provider = 1, receiver = 2);
store listen (origin = 2, provider= 2, receiver = 1);

7. Crear un script para el nodo esclavo (suscriptor.txt) en la ruta:
C:\Archivos de Programas\PostgreSQL\8.4\bin\

cluster name = slony_empresa;

node 1 admin conninfo = 'dbname= EMPRESA host = 192.168.1.2 user = postgres password = alfredo';

node 2 admin conninfo = 'dbname= EMPRESA host = 192.168.1.10 user = postgres password = alfredo';

subscribe set (id = 1, provider = 1, receiver = 2, forward = yes);

8. Ejecutar desde la consola de Windows en la maquina maestra:
C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik maestra.txt

9. Ejecutar desde la consola de Windows en la maquina esclava:
C:\Archivos de Programas\PostgreSQL\8.4\bin\slonik suscriptor.txt

10. Ejecutar desde la consola de Windows en la maquina maestra y esclava:
C:\Archivos de Programas\PostgreSQL\8.4\bin\slon slony_empresa “dbname = EMPRESA user = postgres password = alfredo”

A partir de este momento los nodos ya están replicando, y no se deben cerrar las consolas.
Ahora ya se puede ver que se está replicando en las máquinas y podemos agregar tuplas, modificar o borrar y los cambios se van a ver reflejados en los nodos esclavos


Leer nota completa...