Está en la página 1de 9

14/10/2014 Slony I en Windows

http://slony.blogspot.com/ 1/9
sbado, 3 de marzo de 2007
Instalacin de Slony I en Windows XP, Windows Server y
Windows Vista
Hola, me llamo Sergio Lpez Tosca, en la empresa en la que trabajo se implement un
sistema utilizando la base de datos PostgreSQL cuya informacin es sumamente
importante, por lo que se necesita tener una copia de la base de datos en caso de que el
servidor primario falle por cualquier motivo.
Buscando en la red, me top con Slony, sin embargo no es la nica herramienta para
replicar una base de datos en Postgresql, existen muchos, pero leyendo comentarios de
otros usuarios en distintos foros, encontr que la que se lleva el premio es Slony I.
La ventaja que tenemos aqu 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.
A continuacin, presento un tutorial que te va ayudar a instalar Slony I en tus
computadoras (Maestro Esclavo)...
Pre requisitos
- Haber instalado PostgreSQL 8.1 o superior, puedes bajarlo en http://www.postgresql.org/
- Bajar el software de Slony I con instalacin para Windows, lo puedes bajar de
http://developer.pgadmin.org/~hiroshi/Slony-I/. Hay dos versiones de Slony I, para la versin 8.1 y la 8.2.
Baja la que corresponda a tu PostgreSQL.
1. Ejecuta el instalador de Slony I y sigue las instrucciones.
Archivo del blog
2007 (1)
marzo (1)
Instalacin de Slony I en Windows
XP, Windows Se...
Datos personales
Sergio
Ver todo mi perfil
0
Ms Siguiente blog Crear blog Acceder
Slony I en Windows
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 2/9
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 3/9
Regresa a C:\Program Files\PostgreSQL\8.2\bin> y pon el comando: Slon y debe salir algo como esto:
2. Abre el programa pgAdmin III dale doble clic a la base de datos que quieras replicar y vas a ver un icono
que dice replicacin seleccinalo, pon botn derecho del Mouse, luego "Nuevo Slony-I cluster" y vas a
ver un cuadro que dice No hay comandos de creacin de Slony I disponibles; slo es posible
Bien, por el momento no podemos realizar ninguna replicacin, es necesario decirle a nuestro pgAdmin III
donde tenemos instalado nuestros archivos de Slony I. Por lo tanto, para esto damos doble clic a Archivo
-- > Opciones e introducimos la ruta que en este caso es: C:\Program Files\PostgreSQL\8.2\share y si
regresamos al paso anterior vamos a ver algo como esto.
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 4/9
3. 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 informacin,
etc...
Abre el bloc de notas, copia lo siguiente y modifica los parmetros de este script:
#####################################################################################
#
#--
# define the namespace the replication system uses in our example it is
# slony_example
#--
cluster name = slony_example;
#--
# admin conninfo's are used by slonik to connect to the nodes one for each
# node on each side of the cluster, the syntax is that of PQconnectdb in
# the C-API - replace the parameters which are appropriate for your setup
#
# this section tells slonik how to connect to the various nodes when running
# this script.
# --
node 1 admin conninfo = 'dbname=exampledb host=192.168.1.8 user=postgres
password= postgres';
node 2 admin conninfo = 'dbname=exampledb host=192.168.1.9 user=postgres
password= postgres';
#--
# init the first node. Its id MUST be 1. This creates the schema
# _$CLUSTERNAME containing all replication system specific database
# objects.
#--
init cluster ( id=1, comment = 'Nodo Maestro');
#--
# this is an example of how to work around a table that has no primary key
# and is based on an example by Robert Treat. The history table referred to
# is one of the tables being replicated.
#
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 5/9
# Because the history table does not have a primary key or other unique
# constraint that could be used to identify a row, we need to add one.
# The following command adds a bigint column named
# _Slony-I_$CLUSTERNAME_rowID to the table. It will have a default value
# of nextval('_$CLUSTERNAME.s1_rowid_seq'), and have UNIQUE and NOT NULL
# constraints applied. All existing rows will be initialized with a
# number
#--
# Traduccin: Esto solo es necesario usarlo si tienes una tabla que no tenga
una llave primaria, procura hacer un buen diseo en tu base de datos.
#table add key (node id = 1, fully qualified name =
'public.mi_tabla_sin_llave_primaria');
#--
# Slony-I organizes tables into sets. The smallest unit a node can
# subscribe is a set. The following commands create one set containing
# all tables to be replicated. Tables not named here will not be replicated.
# The master or origin of the set is node 1. Note that the second id must be
# incremented for each table added.
#--
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.tabla1',
comment='mi tabla de tabla1');
set add table (set id=1, origin=1, id=2, fully qualified name =
'public.tabla2',
comment='mi tabla de tabla2');
#set add table (set id=1, origin=1, id=3, fully qualified name =
'public.mi_tabla_sin_llave_primaria', key = serial, comment='la tabla sin llave
primaria');
#--
# Create the second node (the slave) tell the 2 nodes how to connect to
# each other and how they should listen for events.
# we have to repeat the conninfo detils here, because these details are written
into
# the slony database.
#--
store node (id=2, comment = 'Nodo Esclavo');
store path (server = 1, client = 2, conninfo='dbname=exampledb host=192.168.1.8
user=postgres password=postgres');
store path (server = 2, client = 1, conninfo='dbname=exampledb host=192.168.1.9
user=postgres password=postgres');
store listen (origin=1, provider = 1, receiver =2);
store listen (origin=2, provider = 2, receiver =1);
#####################################################################################
#
Nota: Los campos en rojo son los que debes modificar.
4. una vez creado tu script y haber modificado los parmetros correspondientes, gurdalo en C:\Program
Files\PostgreSQL\8.2\bin>, yo lo guard con el nombre maestro.txt, pero tu ponle el que quieras. Ahora,
vamos a ejecutarlo como se muestra a continuacin:
En la linea de comando y estando en el directorio C:\Program Files\PostgreSQL\8.2\bin> ejecuta:
- slonik maestro.txt
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 6/9
Si todo sale bien, debes de ver algo como esto:
En caso contrario, si ves algo como esto:
Verifica los archivos pg_hba.conf y postgresql.conf tanto de la computadora maestra como la esclava y comprueba que se
comuniquen entre las dos. Yo asumo que previamente ya configuraste tu PostgreSQL e incluso que ya aadiste el puerto
5432 en el firewall de Windows, sino no te dejar conectar.
5. Ahora abre PgAdmin III en la computadora maestra, ve a la base de datos que vas a replicar y vers algo como esto:
Repite el paso 5 en la computadora que tendr la base de datos esclava y vers que tambin aadi las instrucciones para la replica.
6. Ahora ve a la computadora que tendr la base de datos esclava (Suscriptor). Vamos a crear el siguiente script, este script es para indicarle a que
computadora se va a conectar.
Abre el bloc de notas, copia lo siguiente y modifica los parmetros de este script:
######################################################################################
CLUSTER NAME = slony_example;
node 1 admin conninfo = 'dbname=exampledb host=192.168.1.8 user= postgres password= postgres';
node 2 admin conninfo = 'dbname=exampledb host=192.168.1.9 user= postgres password= postgres';
SUBSCRIBE SET (ID = 1, PROVIDER = 1, RECEIVER = 2, FORWARD = YES);
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 7/9
######################################################################################
Nota: Los campos en rojo son los que debes modificar.
Una vez creado tu script y habiendo modificado los parmetros correspondientes, gurdalo en C:\Program Files\PostgreSQL\8.2\bin>, yo lo guard
con el nombre de suscriptor.txt, pero tu ponle el nombre que quieras.
Ahora, vamos a ejecutarlo como se muestra a continuacin:
En la linea de comando y estando en el directorio C:\Program Files\PostgreSQL\8.2\bin> ejecuta:
- slonik suscriptor.txt
y debers ver algo como lo siguiente:
7. Ahora regresa a la computadora donde est la base de datos maestra, abre la lnea de comandos y ejecuta lo siguiente en C:\Program
Files\PostgreSQL\8.2\bin>:
slon slony_example "dbname= exampledb user=postgres" &
Nota: Los campos en rojo son los que debes modificar.
8. Perfecto, ahora repite este paso, pero en la computadora esclava:
slon slony_example "dbname= exampledb user=postgres" &
Nota: Los campos en rojo son los que debes modificar.
Debers de ver algo como en la foto de arriba
9. A partir de este momento la base de datos se estn replicando a la computadora esclava, pero todava no hemos acabado.
Ser molesto que cada vez que enciendas las computadoras tengas que introducir el comando para que se repliquen las
bases de datos. Para esto, vamos a crear un servicio en Windows.
10. En Windows XP y en Windows Server con tan solo ir a la lnea de comandos en C:\Program Files\PostgreSQL\8.2\bin> y
ejecuta:
- 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.
11. Abre el bloc de notas, copia lo siguiente, modifcalo segn tus parmetros y guardalo. Yo lo guard con el nombre de
slon.conf en C:\Program Files\PostgreSQL\8.2\bin>
Esto lo vas hacer tanto en el servidor esclavo con en el maestro.
######################################################################################
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 8/9
cluster_name = 'exampledb' conn_info = 'dbname=exampledb host=192.168.1.8 user=postgres
password=postgres'
######################################################################################
Nota: Los campos en rojo son los que debes modificar.
12. Prueba que el archivo slon.conf funcione correctamente, para esto lo que debers hacer es en la linea de comandos
C:\Program Files\PostgreSQL\8.2\bin> Ejecutar:
- slon f slon.conf
Esto lo vas hacer en las dos computadoras y verifica que se estn replicando los datos. Debers de ver algo como en la
figura del punto 7.
13. Vuelve abrir la lnea de comandos en C:\Program Files\PostgreSQL\8.2\bin>, pero cierra las ventanas donde se estn
replicando, ahora ejecuta el comando:
- slon -addengine slon.conf
Esto lo hars en las dos computadoras.
14. Abre los servicios de Windows, busca el que se llama Slony-I, ponle iniciar y LISTO! Tu base de dato se est
replicando!.
Referencias:
- Configuring Slony-I on PostgreSQL/Win32 http://www.idep.org.uk/cgi-bin/blosxom.cgi/2006/
- Database Replication with Slony-I http://www.linuxjournal.com/article/7834
14/10/2014 Slony I en Windows
http://slony.blogspot.com/ 9/9
- Alpha testing Slony on win32 Crib Notes http://people.planetpostgresql.org/xzilla/index.php?/archives/200-Alpha-testing-
Slony-on-win32-Crib-Notes.html
Publicado por Sergio en 23:01 18 comentarios:
Etiquetas: base de datos, cluster, instalacin slony, postgres, postgresql,
replicacion, replicacin, replicar, slon, slonik, slony, slony installation,
slony-I, windows
Pgina principal
Suscribirse a: Entradas (Atom)

También podría gustarte