replicacion_postgresql

Upload: mariana-hernandez-meneses

Post on 14-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 REPLICACION_POSTGRESQL

    1/13

    1

    REPLICACION CON POSTGRESQL-SLONY-I EN WINDOWS

    POSTGRESQL

    Es el gestor de bases de datos de cdigo abierto ms avanzado hoy en da, ofreciendo

    control de concurrencia multiversion, soportando casi toda la sintaxis SQL, contando

    tambin con un amplio conjunto de enlaces con lenguajes de programacin.

    Es un sistema de gestin 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 bsquedas de informacin, las bases de datos generadas dentro de servidores de SQL

    son bases de datos relacionales.

    Las herramientas de replicacin de bases de datos son imprescindibles para centros dedatos, Slony es una excelente eleccin cuando se requiere realizar una replicacin asncrona

    de bases de datos de PostgreSQL.

    Cumple completamente con las caractersticas atomicidad, consistencia, aislamiento y

    durabilidad (Atomicity, Consistency, Isolation and Durability: ACID) para realizartransacciones seguras, es multiplataforma, est disponible para 34 plataformas en su ltima

    versin estable. Posee interfaces nativas para lenguajes como ODBC, JDBC, C, C++, PHP,

    PERL, TCL, ECPG; PYTHON y RUBY, adems de traer soporte para la herencia y la

    seguridad de la capa de dispositivo de transportacin de datos (Secure Sockets Layer: SSL).Adems, PostgreSQL puede ser personalizado por el usuario en muchas formas, segn sus

    necesidades, por ejemplo, adicionando entre otros, un nuevo:

    Tipo de datos. Funciones. Operadores. Funciones agregadas. Lenguajes procedurales.

    HERRAMIENTAS GRAFICAS DE ADMINISTRACIN DE BASES DE DATOSEN 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 objetosde la base de datos, examinar sus propiedades o realizar tareas administrativas. Entre estas

    herramientas podemos mencionar:

    PHPPGadmin: esta herramienta est basada en interfaz web. PGexplorer: entorno de escritorio.

  • 7/27/2019 REPLICACION_POSTGRESQL

    2/13

    2

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

    LA REPLICACIN DE DATOS

    La replicacin es una tcnica que se basa en mantener objetos de las bases de datos enmltiples 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 datossean 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 nodosparticipantes 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 delectura/escritura y el esclavo solo de lectura.

    HERRAMIENTA DE REPLICACION

    SLONY-I:

    Es un sistema de replicacin asncrono para PostgreSql de una base de datos maestra haciamltiples 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 almacenaschemadoclogtrigger (). Por cada suscriptor, las tablas son aumentadas con un trigger que

    ejecuta la funcin schemadocdenyaccess (), esta funcin evita que cualquier cosa que no

  • 7/27/2019 REPLICACION_POSTGRESQL

    3/13

    3

    sea el proceso slon actualice los datos en tablas replicadas. Adems, todos los otros factoresdesencadenantes y las normas sobre las tablas replicadas se suprimen en los suscriptores.

    No se maneja "de forma automtica," usted, como administrador de base de datos, tendr

    que construir una secuencia de comandos SQL DDL y lo presentar, a travs de slonikexecute script.

    REQUISITOS

    POSTGRESQL 8.4

    PGadmin III

    Slony-I v.2.0.4-1

    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.

    Slony-I 2.0.4: Como ya vimos anteriormente Slony es el software que permite lareplicacin 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:

    1- Inicio2- Todos los programas3- PostgreSQL4- Aplicacin Stack Builder, clic derecho ejecutar como administrador y nos

    aparecer la siguiente pantalla.

  • 7/27/2019 REPLICACION_POSTGRESQL

    4/13

    4

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

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

    replicacin.

  • 7/27/2019 REPLICACION_POSTGRESQL

    5/13

    5

    7- Y chequeamos Slony-I y siguiente.

  • 7/27/2019 REPLICACION_POSTGRESQL

    6/13

    6

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

    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

  • 7/27/2019 REPLICACION_POSTGRESQL

    7/13

    7

    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 maestro-esclavo en Windows 7 con los

    detalles mostrados en la imagen.

    PGADMIN-III

    Interfaz grfica 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.

  • 7/27/2019 REPLICACION_POSTGRESQL

    8/13

    8

    CONCEPTOS IMPORTANTES ANTES DE EMPEZAR LA REPLICACION

    Cluster: Conjunto de bases de datos PostgreSql dentro de las cuales sucede lareplicacin.

    Nodo: Es una base de datos que participara en el proceso de replicacin. Set de Replicacin: Conjunto de tablas y secuencias que se replicaran. Origen: proveedores y suscriptores: Los nodos que reciben la informacin se

    denomina nodos suscriptores, dichos nodos suscriptores se pueden en proveedores y

    s u vez tienen otros nodos suscriptores.

    Comandos Slonik: E s un pequeo interprete que incluye comandos utilizados parala manipulacin del clster de replicacin.

    Suscriptores: Son todos los dems nodos en el clster(esclavos), son los quereciben los datos en la rplica.

    Proveedores: Es un nodo de subscribir (esclavo) que sirve como proveedor para unsubconjunto de nodos en el clster (acta como un nodo origen pero no se permite aninguna aplicacin escribir en l.

  • 7/27/2019 REPLICACION_POSTGRESQL

    9/13

    9

    INSTALACION Y CONFIGURACION DE POSTGRESQL-SLONY-I

    REPLICANDO

    1. Creamos la misma base de datos en nuestro nodo maestro utilizando nuestraaplicacin PostgreSQL Maestro. Asignamos tablas y campos a nuestra base dedatos.

    La base de datos se llama prueba. En este caso agregaremos la tabla people con dos campos id y nombre.

  • 7/27/2019 REPLICACION_POSTGRESQL

    10/13

    10

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

    3. Crear una nueva regla de entrada para que nuestro firewall permita la conexin atraves del puerto 5432 o desactivar el firewall.

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

    Agregar las siguientes lneas al final del txt:

    #replic

    host all all 10.0.10.2/24 md5

    host all all 10.0.10.3/24 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

  • 7/27/2019 REPLICACION_POSTGRESQL

    11/13

    11

    queremos replicar nuestra informacin, etc.

    Abre el bloc de notas, copia lo siguiente y modifica los parmetros de este script:

    Para el nodo maestro:

    cluster name = slony_pruebaRE;

    node 1 admin conninfo = 'dbname=prueba host=10.0.10.2 user=postgres password=

    i1991t09t28g ';

    node 2 admin conninfo = 'dbname=prueba host=10.0.10.3 user=postgres

    password=maihzme';

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

    create set (id=1, origin=1, comment='Aqui van 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=10.0.10.2 user=postgres

    password= i1991t09t28g ');

    store path (server=2, client=1, conninfo='dbname=prueba host=10.0.10.3 user=postgres

    password=maihzme');

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

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

    Para el nodo esclavo:

    cluster name = slony_prueba;

    node 1 admin conninfo = 'dbname = prueba host = 10.0.10.2 user = postgres password =i1991t09t28g';

    node 2 admin conninfo = 'dbname = prueba host = 10.0.10.3 user = postgres password =

    maihzme';

  • 7/27/2019 REPLICACION_POSTGRESQL

    12/13

    12

    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 maestro.txt

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

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

    8. En Windows con tan solo ir a la lnea de comandos en C:\ProgramFiles\PostgreSQL\8.4\bin> slon.exe slony_prueba "dbname=prueba user=postgres

    password=maihzme"

    Este es para el esclavo, para crear el servicio en el maestro solamente se le coloca elpassword del maestro a la lnea de comandos anterior.

    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 estemomento los nodos ya estn 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 rplica.

  • 7/27/2019 REPLICACION_POSTGRESQL

    13/13

    13

    BIBLIOGRAFIA