replicacion_postgresql
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