RE: Ayuda con PgPool2 y funciones en pl/Pgsql

From: Lazáro Rubén García Martínez <lgarciam(at)vnz(dot)uci(dot)cu>
To: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
Cc: "Andres A(dot) Mamani" <andres(dot)abel(at)gmail(dot)com>, Miguel Angel Hernandez Moreno <miguel(dot)hdz(dot)mrn(at)gmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Ayuda con PgPool2 y funciones en pl/Pgsql
Date: 2012-07-21 18:31:23
Message-ID: 294D3D02D5E18D42827B2ECFEADEB6884C70EA7F35@mx-interno.vnz.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Exatamente Jaime, lo que le quise decir fue que configurara pgpool en master-slave usando streaming replication y que configurara black_function_list para que las funciones que modificaran la db fueran al master y no al standby. Ya la parte de actualizar la replica es cosa de streaming replication y entonces quedaría pgpool para balance de carga y failover.

Aunque es importante ir revisando que retardo hay en la réplica, no vaya a ser que ciertas consultas se ejecuten en el standby y devulevan resultados erróneos.

Para esto debe configurar en el el fichero pgpool.conf estos parámetros:

delay_threshold
sr_check_user
sr_check_password
log_standby_delay

Saludos a todos.

________________________________________
From: jcasanov(at)systemguards(dot)com(dot)ec [jcasanov(at)systemguards(dot)com(dot)ec] On Behalf Of Jaime Casanova [jaime(at)2ndquadrant(dot)com]
Sent: Saturday, July 21, 2012 1:11 PM
To: Lazáro Rubén García Martínez
Cc: Andres A. Mamani; Miguel Angel Hernandez Moreno; pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Ayuda con PgPool2 y funciones en pl/Pgsql

2012/7/19 Lazáro Rubén García Martínez <lgarciam(at)vnz(dot)uci(dot)cu>:
> Si configuras pgpool en modo maestro-esclavo, entonces cuando realizas un select de una función, se verificará la lista
> black_function_list y en caso de confirmar que sea una función, pgpool la enviará al servidor maestro y no al standby.
>

lo que causara que la replica este inconsistente porque en este caso
esas funciones escriben en la base. eso funciona si solo estoy
haciendo balanceo, pero el tambien quiere replicar (es decir, que vaya
a ambos nodos)

la solucion para el esta en setear replicate_select en la
configuracion de pgpool pero eso hara que todos los selects se
replican a ambos lados (es decir, tambien select de solo consulta
eliminando el balanceo) o marcar en la aplicacion con /* REPLICATION
*/ todos los selects que deban ser replicados.

Nota para Andres: pones el /* REPLICATION */ antes del SELECT que
ejecuta la funcion, algo asi:
/* REPLICATION */ SELECT graba_datos(valor1, valor2);

aun asi hay forma de dañar eso, por ejemplo si te olvidas de poner el
/* REPLICATION */ o si en la funcion ejecutas cosas como now() (al
menos si las fechas no coinciden en el maestro y el esclavo), random()
y cosas asi.

mejor replica por abajo usando SR y solo balancea consultas con pgpool
http://www.pgpool.net/docs/latest/doc/pgpool-en.html#master_slave_mode

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Armando Venegas Pérez 2012-07-22 16:16:18 RE: Tabla cliente y dividirla por sexo
Previous Message Jaime Casanova 2012-07-21 17:41:26 Re: Ayuda con PgPool2 y funciones en pl/Pgsql