REPLICACIÓN DE POSTGRESQL 9.4 EN
SISTEMAS OPERATIVOS WINDOWS
ADMINISTRACIÓNDEBASEDE DATOS
1
AUTOR
3 HUAMÁN CHUQUE Julio Antonio
1. Introducción
2
Un buen número de aplicaciones informáticas están accesibles a través de la red, siguiendo
un modelo cliente-servidor. En algunos casos, tiene gran importancia que tales servicios se
presten de manera continua. Para esto, se deben utilizar técnicas de replicación.
La replicación es un mecanismo utilizado para propagar y diseminar datos en
un ambiente distribuido, con el objetivo de tener mejor performance y confiabilidad,
mediante la reducción de dependencia de un sistema de base de datos centralizado.
Para garantizar que una aplicación distribuida sea altamente disponible (es decir, que pueda
proporcionar servicio de manera continua) se deben instanciar múltiples réplicas de ésta en
distintos ordenadores. Se debe conseguir que cada uno de los ordenadores que mantenga una
réplica de la aplicación sea independiente del resto ante la ocurrencia de fallos.
2. Beneficios de la réplica de Datos en un SGBD
 Disponibilidad: El modo en que la replicación incrementa la disponibilidad de los
datos para los usuarios y aplicaciones.
 Fiabilidad: Al haber múltiples copias de los datos disponibles en el sistema, se
dispone de un mecanismo excelente de recuperación cuando existan fallos en
nodos.
 Rendimiento: Se mejora para las transacciones de consulta cuando se introduce
la replicación en un sistema que estuviera aquejado de sobrecarga de recursos
centralizados.
 Reducción de la carga: Modo en que se utiliza la replicación para distribuir datos
en ubicaciones remotas.
 Copia de seguridad: En condiciones normales, una base de datos replicada de
forma correcta es válida como copia de seguridad. Además, se puede realizar
copias de seguridad usando un servidor esclavo para así no interferir al servidor
maestro.
 Mejorar la escalabilidad: Podríamos configurar nuestras aplicaciones para
balancear las consultas de lectura (SELECT) entre los servidores replicados.
 Alta disponibilidad: En aplicaciones y entornos en donde sólo se requieren
lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas
de lectura (SELECT) entre los servidores replicados de manera que si uno se cae
se continúe prestando servicio.
 Las réplicas locales constituyen una ayuda especialmente útil cuando se desea
trabajar en una computadora que en ocasiones no estará conectada a la red donde
se encuentra el servidor en el que reside el curso.
3. Replicación en PostgreSQL 9.4
3
A continuación, mostraremos los pasos a seguir para realizar la replicación en nuestro
SGBD PostgreSQL de manera correcta, teniendo como conexión 2 computadores
(Laptop) que estarán conectadas mediante un cable cruzado haciendo conexión entre ellas
sin necesidad de estar conectados a una red.
3.1. Lo primero que debemos de hacer es conectar nuestros 2 computadores, de manera
que estos hagan ping entre sí, para ello conseguiremos un cable cruzado o sino
construirlo uno mismo. Cuando ya tengamos el cable necesario conectaremos a
nuestros puertos Ethernet de nuestras máquinas para enlazarlas. Posteriormente
configuraremos nuestra IP de la siguiente manera. Las IP pueden ser también otras.
Para asegurarnos que están comunicándose nos aseguraremos de permitir los puertos
5432 tanto conexión TCP como UDP en nuestro Firewall de Windows.
Máquina maestro Máquina Esclavo
4
Con estos pasos nuestras máquinas deberías comunicarse de manera correcta. Para
comprobarlo abrimos nuestra consola y ejecutamos desde la máquina maestro el
comando ping 192.168.1.2 de caso contrario desde la máquina esclavo ejecutar el
comando ping 192.168.1.1 dándonos respuesta inmediata. Por algún motivo si sale
un error de respuesta al realizar ping, lo recomendable es desactivar nuestro antivirus
o desactivar nuestro Firewall totalmente (no recomendado).
3.2. El siguiente paso es realizar la descarga del complemento de PostgreSQL llamado
Slony, éste se encarga de realizar la replicación entre ambas máquinas. Para su
descarga usaremos el Stackbuilder del propio gestor donde nos mostrarán varias
opciones entre ellas SlonyI para las arquitecturas de 32 y 64 bits. Escogeremos de
acuerdo a la arquitectura de las máquinas a instalarse.
Una vez seleccionado nuestra opción procederemos a descargarlo. Al finalizar la
descarga se auto ejecutará el instalable y lo que tendremos que hacer continuar con
la instalación correspondiente.
Al momento de instalar el Slony por algún motivo sale un error del tipo
removeFiles.bat es un error donde la posible solución es restaurar nuestra PC a un
punto anterior de instalación. Este es un error poco común y no fácil de solucionarlo
debido a problemas de Windows.
Aquí finaliza lo que es la configuración de comunicación entre nuestras
computadoras y la descarga de las aplicaciones necesarias para la replicación en
nuestro gestor de base de datos PostgreSQL.
5
3.3. En esta parte de entraremos a detallar la configuración de nuestros servidores en
ambas máquinas. Para ello comenzaremos modificando la ruta en nuestro SGBD
para compartir nuestros archivos durante la replicación, si no se realiza este paso no
podremos replicar aun así tengamos nuestra configuración correctamente. Entonces
nos dirigiremos a la pestaña File y seleccionamos la opción Options (file>options).
En la ventana que se nos muestra nos dirigimos a la opción Binary Paths donde
encontraremos un campo vacío que está designado para Slony-I path. En el botón
asignado Browse buscaremos la ruta de la carpeta Share que se encuentra en nuestra
carpeta de instalación de nuestro gestor de base de datos: "C:Program
FilesPostgreSQL9.4share"
Le damos clic en OK y estará listo para compartir datos entre nuestras máquinas a la
ruta asignada en el path de Slony-I.
6
3.4. Antes de conectarnos a nuestro servidor desde el PgAdminIII realizaremos la
siguiente configuración. Seleccionaremos nuestro servidor y le damos clic derecho
y seleccionamos la opción Properties. En esa ventana nos iremos a la pestaña
Advanced y en el campo Host Address colocaremos nuestra dirección IP de la
máquina asignada anteriormente. Si es la máquina maestra en este manual es sería el
192.168.1.1 pero si la máquina es esclava su IP sería el 192.168.1.2
3.5. Cuando los IP estén asignados concorde a cada máquina aún no podremos
conectarnos a nuestro servidor porque falta definir en nuestro archivo pg_hba.conf
que se encuentra en nuestra carpeta de instalación de PostgreSQL en la siguiente
ruta: "C:Program FilesPostgreSQL9.4data", una vez ubicado el archivo lo
abriremos con algún editor de texto (en este manual se usará el Notepad++), si no se
cuenta con ningún editor de texto también se puede abrirlo con el bloc de notas del
propio Windows.
Estando en el modo de edición buscamos al final del archivo la siguiente línea "#
IPv4 local connections" donde aquí definiremos nuestras direcciones IP usadas en el
nodo maestro (192.168.1.1) y esclavo (192.168.1.2). Este proceso se realizará en
ambas máquinas. La sentencia a usar es la siguiente:
#Maestro
host all all 192.168.1.1/24 md5
#Esclavo
host all all 192.168.1.2/24 md5
El primer parámetro significa el tipo de conexión a permitirse (host), el segundo hace
referencia a las bases de datos a usar (all: usar todas las BD), el tercero son los
usuarios a usar en la conexión (all: usar todos los usuarios), el cuarto parámetro es
Máquina maestro Máquina Esclavo
7
la dirección IP con su respectiva máscara de red de manera convertida (::/XX) y por
último el quinto parámetro es el método de encriptación de los datos a replicarse
(MD5, SHA1, Etc.).
3.6. Una vez realizado el paso anterior procedemos a
conectarnos a nuestro servidor. Si hay algún error
revisar nuevamente el manual y seguir las pautas de
configuración.
Si la conexión se realizó sin ningún inconveniente lo
siguiente será crear en ambas máquinas la misma base
de datos o bien crearla y luego y realizar un backup
para restaurarlo en la otra máquina; ero el punto es que
en ambas computadoras deben estar la misma base de
datos con sus correspondientes tablas y campos.
Para el ejemplo creamos una base de datos prueba con
una tabla usuario.
CREATE TABLE usuario(
código SERIAL PRIMARY KEY NOT NULL;
nombre VARCHAR(50) NOT NULL
)
8
3.7. El siguiente paso es la creación de los archivos maestro y esclavo que estos serán
colocados correspondientemente a cada máquina: maestro.txt -> máquina maestra,
esclavo.txt -> máquina esclava.
La ruta donde se copiarán los archivos es: "C:Program FilesPostgreSQL9.4bin"
3.8. Ya copiado los archivos abriremos la consola de Windows y ejecutaremos los
siguientes comandos. (cd..) Con este comando nos colocaremos en la carpeta bin y
slonik maestro.txt (máquina maestra), slonik esclavo.txt (máquina esclava).
9
3.9. Ejecutando ambos comandos realizaremos la conexión entre nodos maestro y
esclavo. En este paso ejecutaremos otro comando:
slon cluster_name "dbname=db_name user=user password=password_user",
donde las letras marcadas en negrita significan los parámetros a cambiar de acuerdo
a cada servidor. En el parámetro cluester_name se coloca el nombre del cluester que
pusimos en el archivo maestro.txt (línea 1).
Ejemplo: slon slony_rep "dbname=prueba user=postgres password=root", este
commando se ejecutarán en ambas máquinas cambiando sus respectivos parámetros.
10
Para comprobar como paso final es probar insertando registros en nuestra base de datos
maestra y esperar cierto tiempo para obtener datos en nuestra máquina esclava.
Si seguiste todoslospasoslareplicaciónnotendráerroralguno.Es recomendableusarlaversión
9.4 ya que la 9.5 noreplicacorrectamente.

Replicación de Base de Datos en PostGreSQL 9.4 en Sistemas Operativos de Windows | MANUAL COMPLETO |

  • 1.
    REPLICACIÓN DE POSTGRESQL9.4 EN SISTEMAS OPERATIVOS WINDOWS ADMINISTRACIÓNDEBASEDE DATOS
  • 2.
    1 AUTOR 3 HUAMÁN CHUQUEJulio Antonio 1. Introducción
  • 3.
    2 Un buen númerode aplicaciones informáticas están accesibles a través de la red, siguiendo un modelo cliente-servidor. En algunos casos, tiene gran importancia que tales servicios se presten de manera continua. Para esto, se deben utilizar técnicas de replicación. La replicación es un mecanismo utilizado para propagar y diseminar datos en un ambiente distribuido, con el objetivo de tener mejor performance y confiabilidad, mediante la reducción de dependencia de un sistema de base de datos centralizado. Para garantizar que una aplicación distribuida sea altamente disponible (es decir, que pueda proporcionar servicio de manera continua) se deben instanciar múltiples réplicas de ésta en distintos ordenadores. Se debe conseguir que cada uno de los ordenadores que mantenga una réplica de la aplicación sea independiente del resto ante la ocurrencia de fallos. 2. Beneficios de la réplica de Datos en un SGBD  Disponibilidad: El modo en que la replicación incrementa la disponibilidad de los datos para los usuarios y aplicaciones.  Fiabilidad: Al haber múltiples copias de los datos disponibles en el sistema, se dispone de un mecanismo excelente de recuperación cuando existan fallos en nodos.  Rendimiento: Se mejora para las transacciones de consulta cuando se introduce la replicación en un sistema que estuviera aquejado de sobrecarga de recursos centralizados.  Reducción de la carga: Modo en que se utiliza la replicación para distribuir datos en ubicaciones remotas.  Copia de seguridad: En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad. Además, se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.  Mejorar la escalabilidad: Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.  Alta disponibilidad: En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continúe prestando servicio.  Las réplicas locales constituyen una ayuda especialmente útil cuando se desea trabajar en una computadora que en ocasiones no estará conectada a la red donde se encuentra el servidor en el que reside el curso. 3. Replicación en PostgreSQL 9.4
  • 4.
    3 A continuación, mostraremoslos pasos a seguir para realizar la replicación en nuestro SGBD PostgreSQL de manera correcta, teniendo como conexión 2 computadores (Laptop) que estarán conectadas mediante un cable cruzado haciendo conexión entre ellas sin necesidad de estar conectados a una red. 3.1. Lo primero que debemos de hacer es conectar nuestros 2 computadores, de manera que estos hagan ping entre sí, para ello conseguiremos un cable cruzado o sino construirlo uno mismo. Cuando ya tengamos el cable necesario conectaremos a nuestros puertos Ethernet de nuestras máquinas para enlazarlas. Posteriormente configuraremos nuestra IP de la siguiente manera. Las IP pueden ser también otras. Para asegurarnos que están comunicándose nos aseguraremos de permitir los puertos 5432 tanto conexión TCP como UDP en nuestro Firewall de Windows. Máquina maestro Máquina Esclavo
  • 5.
    4 Con estos pasosnuestras máquinas deberías comunicarse de manera correcta. Para comprobarlo abrimos nuestra consola y ejecutamos desde la máquina maestro el comando ping 192.168.1.2 de caso contrario desde la máquina esclavo ejecutar el comando ping 192.168.1.1 dándonos respuesta inmediata. Por algún motivo si sale un error de respuesta al realizar ping, lo recomendable es desactivar nuestro antivirus o desactivar nuestro Firewall totalmente (no recomendado). 3.2. El siguiente paso es realizar la descarga del complemento de PostgreSQL llamado Slony, éste se encarga de realizar la replicación entre ambas máquinas. Para su descarga usaremos el Stackbuilder del propio gestor donde nos mostrarán varias opciones entre ellas SlonyI para las arquitecturas de 32 y 64 bits. Escogeremos de acuerdo a la arquitectura de las máquinas a instalarse. Una vez seleccionado nuestra opción procederemos a descargarlo. Al finalizar la descarga se auto ejecutará el instalable y lo que tendremos que hacer continuar con la instalación correspondiente. Al momento de instalar el Slony por algún motivo sale un error del tipo removeFiles.bat es un error donde la posible solución es restaurar nuestra PC a un punto anterior de instalación. Este es un error poco común y no fácil de solucionarlo debido a problemas de Windows. Aquí finaliza lo que es la configuración de comunicación entre nuestras computadoras y la descarga de las aplicaciones necesarias para la replicación en nuestro gestor de base de datos PostgreSQL.
  • 6.
    5 3.3. En estaparte de entraremos a detallar la configuración de nuestros servidores en ambas máquinas. Para ello comenzaremos modificando la ruta en nuestro SGBD para compartir nuestros archivos durante la replicación, si no se realiza este paso no podremos replicar aun así tengamos nuestra configuración correctamente. Entonces nos dirigiremos a la pestaña File y seleccionamos la opción Options (file>options). En la ventana que se nos muestra nos dirigimos a la opción Binary Paths donde encontraremos un campo vacío que está designado para Slony-I path. En el botón asignado Browse buscaremos la ruta de la carpeta Share que se encuentra en nuestra carpeta de instalación de nuestro gestor de base de datos: "C:Program FilesPostgreSQL9.4share" Le damos clic en OK y estará listo para compartir datos entre nuestras máquinas a la ruta asignada en el path de Slony-I.
  • 7.
    6 3.4. Antes deconectarnos a nuestro servidor desde el PgAdminIII realizaremos la siguiente configuración. Seleccionaremos nuestro servidor y le damos clic derecho y seleccionamos la opción Properties. En esa ventana nos iremos a la pestaña Advanced y en el campo Host Address colocaremos nuestra dirección IP de la máquina asignada anteriormente. Si es la máquina maestra en este manual es sería el 192.168.1.1 pero si la máquina es esclava su IP sería el 192.168.1.2 3.5. Cuando los IP estén asignados concorde a cada máquina aún no podremos conectarnos a nuestro servidor porque falta definir en nuestro archivo pg_hba.conf que se encuentra en nuestra carpeta de instalación de PostgreSQL en la siguiente ruta: "C:Program FilesPostgreSQL9.4data", una vez ubicado el archivo lo abriremos con algún editor de texto (en este manual se usará el Notepad++), si no se cuenta con ningún editor de texto también se puede abrirlo con el bloc de notas del propio Windows. Estando en el modo de edición buscamos al final del archivo la siguiente línea "# IPv4 local connections" donde aquí definiremos nuestras direcciones IP usadas en el nodo maestro (192.168.1.1) y esclavo (192.168.1.2). Este proceso se realizará en ambas máquinas. La sentencia a usar es la siguiente: #Maestro host all all 192.168.1.1/24 md5 #Esclavo host all all 192.168.1.2/24 md5 El primer parámetro significa el tipo de conexión a permitirse (host), el segundo hace referencia a las bases de datos a usar (all: usar todas las BD), el tercero son los usuarios a usar en la conexión (all: usar todos los usuarios), el cuarto parámetro es Máquina maestro Máquina Esclavo
  • 8.
    7 la dirección IPcon su respectiva máscara de red de manera convertida (::/XX) y por último el quinto parámetro es el método de encriptación de los datos a replicarse (MD5, SHA1, Etc.). 3.6. Una vez realizado el paso anterior procedemos a conectarnos a nuestro servidor. Si hay algún error revisar nuevamente el manual y seguir las pautas de configuración. Si la conexión se realizó sin ningún inconveniente lo siguiente será crear en ambas máquinas la misma base de datos o bien crearla y luego y realizar un backup para restaurarlo en la otra máquina; ero el punto es que en ambas computadoras deben estar la misma base de datos con sus correspondientes tablas y campos. Para el ejemplo creamos una base de datos prueba con una tabla usuario. CREATE TABLE usuario( código SERIAL PRIMARY KEY NOT NULL; nombre VARCHAR(50) NOT NULL )
  • 9.
    8 3.7. El siguientepaso es la creación de los archivos maestro y esclavo que estos serán colocados correspondientemente a cada máquina: maestro.txt -> máquina maestra, esclavo.txt -> máquina esclava. La ruta donde se copiarán los archivos es: "C:Program FilesPostgreSQL9.4bin" 3.8. Ya copiado los archivos abriremos la consola de Windows y ejecutaremos los siguientes comandos. (cd..) Con este comando nos colocaremos en la carpeta bin y slonik maestro.txt (máquina maestra), slonik esclavo.txt (máquina esclava).
  • 10.
    9 3.9. Ejecutando amboscomandos realizaremos la conexión entre nodos maestro y esclavo. En este paso ejecutaremos otro comando: slon cluster_name "dbname=db_name user=user password=password_user", donde las letras marcadas en negrita significan los parámetros a cambiar de acuerdo a cada servidor. En el parámetro cluester_name se coloca el nombre del cluester que pusimos en el archivo maestro.txt (línea 1). Ejemplo: slon slony_rep "dbname=prueba user=postgres password=root", este commando se ejecutarán en ambas máquinas cambiando sus respectivos parámetros.
  • 11.
    10 Para comprobar comopaso final es probar insertando registros en nuestra base de datos maestra y esperar cierto tiempo para obtener datos en nuestra máquina esclava. Si seguiste todoslospasoslareplicaciónnotendráerroralguno.Es recomendableusarlaversión 9.4 ya que la 9.5 noreplicacorrectamente.