2. ¿Por que estamos aqui?
Divulgar el Software Libre
Profundizar el uso de Software Libre
Potenciar las capacidades de desarrollo tecnológico
Aprender, compartir, disfrutar, debatir
Autodesarrollo, autodeterminación.
Conocimiento Libre
4 Libertades
3. Gracias a
Universidad Nacional
Experimental Romulo Gallegos
“Un viaje de mil leguas comienza con un primer paso”
@leninmhs 2012
4. ¿Por qué PostgreSQL?
#aptitude install postgres postgresql8.4
Proyectos de interfaces de administración WEB y por GUI
Proyectos para datos geográficos/geométricos (PostGIS)
Proyectos de uso de indices avanzados (OpenFTS)
Proyectos para soportar diversos lenguajes de programación como
lenguajes de funciones internas del motor (pl/Php, pl/Java, pl/Python,
pl/Perl, pl/Tcl,pl/Javascript, pl/C etc.)
Licencia BSD, la mas permisiva de todas.
Corre en casi todos los principales sistemas operativos : (Linux, Unix,
Solaris, BSDs, Mac OS, Beos)
Soporte para los lenguajes mas populares del medio: PHP, C, C++, Java,
Perl, Python, Ruby,etc.
Máximo de base de datos : ILIMITADO
Máximo de tamaño de tabla : 32TB
5. Y la competencia???
Imagen por: http://www.exprimetuhost.com/2010/10/mysql-o-postgresql/mysql-vs-postgresql/ @leninmhs 2012
6. En algún momento...
Imagen por: http://www.seofaction.com/postgres @leninmhs 2012
8. Cluster Alta Disponibilidad
Nos enfocamos en la disponiblidad del servicio.
Lo medimos en tiempos en linea y tiempos fuera de linea
Lo medimos en tiempos en linea y tiempos fuera de linea
9. 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 @leninmhs 2012
10. Cuando hablamos de alta disponibilidad hablamos de:
Replicación
Balanceo de Cargas (Load Balance)
Tolerancia a fallos (FailOver)
Conexiones Agrupadas (Pool
Connection)
Consultas Distribuidas (Parallel
Query)
Gestión de Divergencias
@leninmhs 2012
11. Replicación
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
12.
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
13.
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
14. Divergencia
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
15. Tolerancia a Fallos
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
16. Replicación Síncrona
Se realiza tan pronto como se realiza una transacción la
misma se ejecuta en todos los nodos. Esto es muy costoso
en términos de latencia y la cantidad de mensajes que se
enviarán, pero evita la divergencia
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
17. Replicación Asíncrona
Los nodos del 'cluster' pueden aplicar los datos de
transacciones en cualquier momento posterior, por lo que
los nodos pueden servir diferentes simultáneamente distinta
data.
18. Soluciones Alta Disponibilidad
PostgreSQL 9 Slony RubyRep Londiste
Mammoth
PgPool-II
PgPool Bucardo PgCluster
Solución mágica y esotérica
● Scripts automaticos, semiautomaticos
● Restaurar, replicar etc.. a partir de logs
@leninmhs 2012
19. Consideraciones a tomar en cuenta
al elegir una solución:
Software Libre. 4 Libertades
Linux,FreeBSD,Solaris y xUnix
PostgreSQL y Solución versión estable
Comunidad y Desarrollo activo
Sinergia [Solución - Organización]
@leninmhs 2012
20. Instalar & Implementar alguna de las soluciones:
Camino 1 Camino 2
aptitude search tu_solucion Camino largo, doloroso y recomendado
aptitude install tu_solucion para entornos en producción
Configuración, adaptación,pruebas etc..
Descargar
Descomprimir
PD: aptitude solo disponible en: Ingresar directorio
y derivados... ./configure
make
make install
Configuración, adaptación,pruebas etc..
If pruebas = ok
anotar_chuleta();
compartir_internet();
Else
intenter_nuevamente();
probar_otra_herramienta();
@leninmhs 2012
21. 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.
22. pgpool-II
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
IP IP IP
Puerto Puerto Puerto
Usuario Usuario Usuario
Contraseña Contraseña Contraseña
nodo1 nodo2 nodo3
Pool de servidores PostgreSQL
@leninmhs 2012
23. 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.
@leninmhs 2012