Presentación realizada en el 3er Encuentro de Bases de Datos Libres realizado por CNTI en CANTV el 04/05/2012. mas información en http://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool
2. Camino recorrido
Agradecimiento a CNTI por la determinación de impulsar las
bases de datos libres en la Administración Publica Nacional
“Un viaje de mil leguas comienza con un primer paso”
* 1er Encuentro -Sensibilización Técnica de directores de tecnología y DBA
Asistentes : 20 instituciones (incluyendo AP y UP) ,total personas: 62; fecha: 07-04-2011;
Auditorio Contraloría Gral de la República
2 talleres Demostrativos de migración de BD Oracle a Postgresql: Instituciones: 24; Personas:
63; fecha Junio 2011, en MTC y CANTV
* 2do Encuentro - Servicios, soluciones y formación
Asistentes: 41 instituciones; 296 personas; fecha: 04-10-2011; auditorio CANTV
Taller de Alta Disponibilidad en PostgreSQL
Orientado a alta disponibilidad en bases de datos libres
Asistentes; 30 instituciones; personas: 90; Fecha: Noviembre y diciembre 2011; lugar: ONCOP y
CANTV
*3er Encuentro Plataforma Tecnológica y Soporte Técnico 04-05-2012
Orientado a alto rendimiento en bases de datos libres
Dirigido a 300 personas de 61 Instituciones (incluyendo UP, sector académico y colectivos)
Aproximadamente 811 personas con voz y voto de hacer la
diferencia en la adopción de bases de datos libres en APN
3. Alta Disponibilidad (High Availability)
<=>
Continuidad operativa del servicio.
24 - 7
Por lo general, consiste en
● Servidor maestro (s)
● Servidor esclavo (s)
● Software para detectar la falta de un maestro
● Software para promover un esclavo a maestro
● Software o hardware para garantizar la coherencia de datos
● entre el maestro (s) y el esclavo (s)
● Software para restaurar el servicio luego de caída o falla
¿Que NO es alta disponibilidad en Bases de Datos?
● Una forma de aumentar el rendimiento
● Una manera de simplificar tu trabajo, la red, el mantenimiento
● Fácil de implementar
4. pgpool-II
Es una capa intermedia de software (middleware), que nos provee de una
interfaz de conexión con uno o mas nodos de PostgreSQL. Nuestros clientes
se conectaran en realidad al PgPool y este a su vez repartirá el trabajo a los
Nodos según se haya configurado. Es una de las soluciones mas completa
de alta disponibilidad en software libre.
Nos Proporciona :
● Replicación
● Balanceo de Cargas (Load Balance)
● Tolerancia a fallos (FailOver)
● Conexiones Agrupadas (Pool Connection)
● Consultas Distribuidas (Parallel Query)
● Limite de Conexiones Excedidas
5. Una imagen vale más que mil palabras
Q Q Q Q
R
E
R
R
E
R
Clientes R
E
R
R
E
R
y y y y
IP
Puerto
Usuario
PgPool-II
Contraseña Se comporta como cliente y servidor
Q Q Q
R R R
E E E
R R R
y y y
Agregar o eliminar
nodos en caliente
IP IP IP
Puerto Puerto Puerto
Usuario Usuario Usuario
Contraseña Contraseña Contraseña
nodo1 nodo2 nodo3
Pool de servidores PostgreSQL
6. Puntos a favor de PgPool
● Es Software Libre. Licencia BSD
● Funciona sobre Linux,FreeBSD,Solaris y
xUnix
● PostgreSQL >= 6.4 , más óptimo en >= 9.0
● Comunidad y Desarrollo muy activo
Versiones: 3.1.3 (23/04/12) – 3.1.2 (31/01/12) – 3.1.1 (6/12/11)
● Colabora con Slony y Streaming Replication
Otras soluciones de alta disponibilidad:
Bucardo Slony RubyRep
PostgreSQL 9 Londiste
PgCluster Mammoth
7. Instalar PgPool-II
Camino largo, doloroso y recomendado
para entornos en producción
Camino corto, varias
Descargar versiones atras, recomendado
Compilar
Descomprimir
solo para pruebas
cd pgpool3.1 aptitude install pgpool2
./configure –prefix=/opt/pgpool3/ Cargar reglas y catálogos
make
make install
Cargar reglas y catálogos
Configurar PgPool-II
listen_addresses = '*'
Tres (3) archivos port = 9999
de configuración: replication_mode = true
load_balance_mode = true
parallel_mode = true
●pgpool.conf master_slave_mode = on
backend_hostname0 = '192.168.0.10'
●pcp.conf
backend_port0 = 5432
●pool_hba.conf backend_weight0 = 1
backend_hostname1 = '192.168.0.20'
backend_port1 = 5433
backend_weight1 = 1
8. PgPoolAdmin
Herramienta de Administración de PgPool de interfaz web,
similar a PhpPgAdmin, escrita en PHP que nos permite
administrar, configurar, monitoriar y aplicar algunas
acciones sobre nuestra instalación de PgPool ó nuestros
nodos.