20
[REPLICACIÓN DE BASE DE DATOS EN POSTGRESQL.] La replicación es una técnica que se basa en mantener objetos de las bases de datos en múltiples ubicaciones. De esta forma se puede tener una réplica exacta o parcial de la base de datos que puede usarse para una restauración de emergencia o bien para realizar consultas sobre ella y aligerar la carga del servidor principal. Anamías Martinez Martinez Luis Alberto Ballesteros Hernández 2013 UT RIVIERA MAYA

Postgres Base

Embed Size (px)

Citation preview

Page 1: Postgres Base

[ ]

La replicación es una técnica que se basa en mantener objetos de las bases de datos en

múltiples ubicaciones. De esta forma se puede tener una réplica exacta o parcial de la base de

datos que puede usarse para una restauración de emergencia o bien para realizar consultas

sobre ella y aligerar la carga del servidor principal.

Anamías Martinez Martinez

Luis Alberto Ballesteros Hernández

2013

UT RIVIERA MAYA

Page 2: Postgres Base

Tabla de contenidoIntroducción 1

Replicando una de base de datos de postgresql con slony-I en Windows 7 2

Page 3: Postgres Base

INTRODUCCION

PostgreSQL

PostgreSQL es una potente herramienta de gestión 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, redistribución, modificación con la única

restricción de mantener el copyright del software a sus autores.

Características de PostgreSQL

Entre las características de PostgreSQL podemos destacar las siguientes:

Es multiplataforma, PostgreSQL en sus versiones más recientes está

disponible para 34 plataformas.

Cuenta con un rico conjunto de tipo de datos, permitiendo además su

extensión mediante tipos y operadores definidos y programados por el

usuario.

Sus opciones de conectividad abarcan TCP/IP, sockets Unix y NT además

de soportar completamente ODBC.

Soporte para vistas, claves foráneas, integridad referencial, disparadores

(triggers), procedimientos almacenados y casi todos los tipos de datos y

operadores soportados en SQL.

Su administración se basa en usuarios y privilegios.

Page 4: Postgres Base

La replicación de datos

La replicación es una técnica que se basa en mantener objetos de las bases de

datos en múltiples ubicaciones. De esta forma se puede tener una réplica exacta o

parcial de la base de datos que puede usarse para una restauración de

emergencia o bien para realizar consultas sobre ella y aligerar la carga del

servidor principal. La replicación es una buena alternativa para tener disponibilidad

de información cuando un servidor se cae. La replicación no suplanta los backup’s,

sino, simplemente garantiza la operatividad. Existen algunos métodos de

replicación entre los cuales se pueden mencionar:

Multimaestro

Maestro -esclavo

Multimaestro: es un método de replicación de bases de datos que permite que

los datos sean almacenados por un grupo de computadoras y además estos datos

pueden ser actualizados por cualquier nodo de este grupo. Con este tipo de

replicación todos los nodos participantes son de lectura/escritura.

Maestro-esclavo: con este método de replicación los datos también 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 replicación para PostgreSQL

Hay varias herramientas que actúan como middleware (intermediario) entre

PostgreSQL y la replicación de datos, entre las que se pueden destacar:

Slony-I

Rubyrep

PGpool

Hot Standby / Streaming Replication

Page 5: Postgres Base

De estas herramientas hemos elegido Slony-I .

Slony-I

Slony-I es un sistema de replicación asíncrono para PostgreSQL de una base de

datos maestra hacia una o múltiples bases de datos hijas. Slony-I realiza las

actualizaciones a través de disparadores o triggers por lo que actualmente solo

puede realizar replicación de tablas y secuencias. Replicación asíncrona Que

una replicación sea asíncrona significa que cuando una transacción para la base

de datos es enviada al servidor maestro no se garantiza que esté disponible para

los nodos esclavos.

Page 6: Postgres Base

REPLICANDO UNA BASE DE DATOS DE POSTGRESQL CON SLONY-I EN WINDOWS 7

Requisitos: Para la realización de nuestra replicación 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 gráfica que 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.

Slony-I 2.0.4: Es el software que permite la replicación en PostgreSQL.

Consideraciones:

Ambos nodos deberán tener instalado PostgreSQL 9.2, Slony-I y PGadmin.

Page 7: Postgres Base

La base de datos a replicar deberá crearse tanto en el nodo maestro como

en el nodo esclavo y debe de ser idéntica, a sea debe llamarse igual tanto

la BD como las tablas y campos, tener los mismos campos, etc.

Page 8: Postgres Base

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 replicación.

Page 9: Postgres Base

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 después click en

Options como se muestra a continuación.

Page 10: Postgres Base

Luego click slony_I path---c:\program Files\ PostgreSQL\9.2\Share y

posteriormente aceptar.

Page 11: Postgres Base

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.

Page 12: Postgres Base

Paso 3: configurar firewall de windows

Crear una nueva regla de entrada para que nuestro firewall permita la conexión a

través del puerto 5432. Para ello nos dirigimos a Panel de control--Sistema y

seguridad---firewall de Windows---configuración avanzada---reglas de

entrada---nueva regla

Page 13: Postgres Base

Al hacer click en nueva regla veremos la siguiente ventana, elegimos puerto y

después 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.

Page 14: Postgres Base

Seleccionamos permitir conexión y hacemos click en siguiente.

Seleccionamos dominio y privado y presionamos el botón siguiente.

Page 15: Postgres Base

Luego le colocamos un nombre y finalizar

Ya tenemos creada nuestra entrada para permitir conexiones remotas en

Windows.

Page 16: Postgres Base

Paso 4: configurar el archivo pg_hba.conf

Abrir el archivo C:\Program Files \PostgreSQL \9.2\data\pg_hba.conf.

Lo modificamos quedando más 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\

Page 17: Postgres Base

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

línea: C:\Archivos de Programas\PostgreSQL\9.2\bin\slonik maestro.txt

Abrimos la consola de Windows en el nodo ESCLAVO y ejecutamos la siguiente

línea: C:\Archivos de Programas\PostgreSQL\9.2\bin\slonik esclavo.txt

Page 18: Postgres Base

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 replicación estará replicando cualquier

modificación de las tablas. NO DEBEMOS CERRAR LA CONSOLA EN NINGÚN NODO.