Está en la página 1de 8

Protocolo de Inicio Cluster PostgreSQL 8.

Con el fin de disponer de un esquema de alta disponibilidad para el Sistema de


Gestión Documental Orfeo/GPL ofreciendo un mejor servicio y proveyendo la
solución de una arquitectura robusta a fallos se dispuso de un cluster en
PostgreSQL versión 8.3 en un esquema en el cual la organización física de los
servidores se encuentra distribuida de la siguiente forma:

Dos (2) Balanceadores de bases de datos los cuales son:

172.18.26.3 y 172.18.26.4

Dos (2) Servidores de bases de datos los cuales son:

172.18.26.5 y 172.18.26.6

Dos (2) Replicadores de Base de Datos los cuales son:

172.18.26.5 y 172.18.26.6

Dicho esquema si bien provee una solución robusta exige una secuencia
definida para iniciar los servicios, la cual se explica a continuación:

A. Inicio de todos los servicios.

1. Ingrese a uno de los servidores donde se encuentran la base de datos con


un usuario que posea privilegios de administración, en este caso seleccione
el 172.18.26.5 y ejecute el siguiente comando

a. # /etc/init.d/pgcluster start-alone

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando

# ps –aux | grep postgres

Página 1 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803


Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
Se debe encontrar los procesos indicado el estado del servidor, mínimo deben
coincidir tres elementos.

2. Luego de tener seguro que el paso anterior es exitoso, ingrese a uno de los
replicadores de base de datos, en este caso al servidor 172.18.26.5 con un
usuario que posea privilegios de administración y ejecute el siguiente
comando

a. # /etc/init.d/pgcluster_rep start

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando

# ps –aux | grep postgres

3. Si el paso 2 fue exitoso ingrese al segundo servidor de base de datos con un


usuario que posea privilegios de administración, en este caso el 172.18.26.6
y ejecute el siguiente comando

a. # /etc/init.d/pgcluster start

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando

# ps –aux | grep postgres

4. Una vez culminado exitosamente el paso tres, ingrese a uno de los


balanceadores de base de datos con un usuario que posea privilegios de
administración en este caso el 172.18.26.3 y ejecute el siguiente comando:

a. # /etc/init.d/pgcluster_bal start

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando:

# ps –aux | grep postgres


Página 2 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803
Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
5. Ingrese nuevamente al servidor de base de datos 172.18.26.5 y ejecute el
siguiente comando:

a. # /etc/init.d/pgcluster stop

b. Revise que los servicios no se encuentren ejecutándose para lo cual


verifique que no existan los procesos de postgres en ejecución utilizando el
siguiente comando:

# ps –aux | grep postgres

6. Luego de finalizar el paso anterior ejecute el siguiente comando, en el


mismo servidor del paso anterior

a. # /etc/init.d/pgcluster start

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando:

# ps –aux | grep postgres

7. Luego de tener seguro que el paso anterior es exitoso, ingrese al otro


replicador de base de datos, en este caso al servidor 172.18.26.6 con un
usuario con privilegios de administración y ejecute el siguiente comando

a. # /etc/init.d/pgcluster_rep start

b. Revise que los servicios se encuentren ejecutándose para lo cual verifique


que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando:

# ps –aux | grep postgres

8. Una vez el paso anterior ha culminado exitosamente ingrese a uno de los


balanceadores de base de datos con un usuario que posea privilegios de
administración en este caso el 172.18.26.4 y ejecute el siguiente comando:

a. # /etc/init.d/pgcluster_bal start
Página 3 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803
Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
b. Revise que los servicios se encuentren ejecutándose para lo cual verifique
que se encuentren los procesos de postgres en ejecución utilizando el
siguiente comando:

# ps –aux | grep postgres

B. Reiniciar Servicios de Base de Datos

En ocasiones, como por ejemplo al reiniciar al tiempo todos los servidores tras
una pérdida de potencia, se puede presentar que el sistema quede en un dead-
lock (bloqueo irreversible) para lo cual se debe reiniciar los servicios lo cual se
realiza en la secuencia que a continuación se define:

1. ingrese a un servidor de base de datos con un usuario con privilegios de


administración en este caso el 172.18.26.5, y realice la siguiente secuencia
de comandos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

/etc/init.d/pgcluster stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

2. ingrese a un servidor balanceador de base de datos con un usuario que


posea privilegios de administración en este caso el 172.18.26.3 y ejecute la
siguiente secuencia de comandos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute


Página 4 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803
Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
#/etc/init.d/pgcluster_bal stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

3. ingrese a un servidor de replicación de base de datos con un usuario que


posea privilegios de administración en este caso el 172.18.26.6 y ejecute la
siguiente secuencia de comandos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

#/etc/init.d/pgcluster_rep stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

4. ingrese a un servidor de base de datos con un usuario con privilegios de


administración en este caso el 172.18.26.6 y ejecute la siguiente secuencia
de comandos

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

#/etc/init.d/pgcluster stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres


Página 5 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803
Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
5. ingrese a un servidor balanceador de base de datos con un usuario que
posea privilegios de administración en este caso el 172.18.26.4 y realice la
siguiente secuencia de comandos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

#/etc/init.d/pgcluster_bal stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

6. ingrese a un servidor de replicación de base de datos con un usuario que


posea privilegios de administración en este caso el 172.18.26.5 y ejecute la
siguiente secuencia de comandos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

#/etc/init.d/pgcluster_rep stop

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

Una vez los servicios se encuentran fuera, puede proceder a subirlos de nuevo
de una forma segura. Para ello siga la secuencia descrita anteriormente en el
punto A “Inicio de todos los servicios”.

Página 6 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803


Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
C. Reinicio de cada servidor individual

Cuando no se tiene una caída total del cluster (por perdida de potencia por
ejemplo) los servidores que han fallado pueden ser reiniciados
individualmente, en particular, esto es posible cuando no se presente el caso
de que los dos servidores de bases de datos hayan fallado.

Para reiniciar un servidor individualmente siga los siguientes pasos:

a. verifique los procesos de postgres que se encuentran en ejecución con

#ps –aux | grep postgres

b. si se encuentran procesos de postgres ejecute

#/etc/init.d/pgcluster_bal stop (en el caso de balanceadores)

#/etc/init.d/pgcluster_rep stop (en el caso de replicadores)

#/etc/init.d/pgcluster stop (en el caso de servidores de bases de datos)

NOTA: En el caso de los servidores de bases de datos también es posible


utilizar pgcluster stop-immediate y sólo es recomendable que se utilice esta
opción en el caso de que la base de datos no responda a la opción stop,
entonces se debe utilizar la opción stop-immediate.

c. Verifique nuevamente. Si no han finalizado los procesos de postgres ejecute

#killall postgres

#ps –aux | grep postgres

d. Una vez se asegure que no hay procesos postgres ejecute

#/etc/init.d/pgcluster_bal start (en el caso de balanceadores)

Página 7 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803


Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com
#/etc/init.d/pgcluster_rep start (en el caso de replicadores)

#/etc/init.d/pgcluster start (en el caso de servidores de bases de datos)

e. Verifique que los procesos postgreSQL estén ejecutándose con:

#ps –aux | grep postgres

Página 8 / 8 Bogotá Colombia: Carrera 7 No. 16 - 56 - Of. 803


Teléfono: (57-1) 2816646 – (57-1) 4809322
Fax: (57-1) 2847878
info@infometrika.com