Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de...

26
 Alta Disponibilidad Alta Disponibilidad con PostgreSQL con PostgreSQL Lenin Hernández Junio 2012 @leninmhs 2012

Transcript of Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de...

Page 1: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Alta Disponibilidad Alta Disponibilidad con PostgreSQLcon PostgreSQL

Lenin Hernández Junio 2012

@leninmhs 2012

Page 2: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

¿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

Page 3: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Gracias a Universidad Nacional

Experimental Romulo Gallegos

“Un viaje de mil leguas comienza con un primer paso”

@leninmhs 2012

Page 4: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

¿Por qué PostgreSQL? #aptitude install postgres postgresql­8.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

Page 5: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Y la competencia???

@leninmhs 2012Imagen por: http://www.exprimetuhost.com/2010/10/mysql-o-postgresql/mysql-vs-postgresql/

Page 6: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

En algún momento...

@leninmhs 2012Imagen por: http://www.seofaction.com/postgres

Page 7: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Actualmente...

@leninmhs 2012Imagen por: http://stefano.salvatori.cl/blog/2007/09/21/postgresql-vs-mysql-2/

Page 8: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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

Page 9: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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

Alta Disponibilidad (High Availability) <=> Continuidad operativa del servicio.

24 - 7

@leninmhs 2012

Page 10: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Replicación Balanceo de Cargas (Load Balance) Tolerancia a fallos (FailOver) Conexiones Agrupadas (Pool

Connection) Consultas Distribuidas (Parallel

Query) Gestión de Divergencias

Cuando hablamos de alta disponibilidad hablamos de:

@leninmhs 2012

Page 11: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Replicación

Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 12: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 13: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 14: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Divergencia

Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 15: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Tolerancia a Fallos

Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 16: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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.htmlExtraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html

Page 17: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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.

Page 18: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Soluciones Alta Disponibilidad

Bucardo PgClusterSlony RubyRepPostgreSQL 9 Londiste

Mammoth

Solución mágica y esotérica

● Scripts automaticos, semiautomaticos● Restaurar, replicar etc.. a partir de logs

@leninmhs 2012

PgPoolPgPool-II

Page 19: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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

Page 20: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Instalar & Implementar alguna de las soluciones:

If pruebas = okanotar_chuleta();compartir_internet();

Else intenter_nuevamente(); probar_otra_herramienta();

Descargar Descomprimir Ingresar directorio./configure make make installConfiguración, adaptación,pruebas etc..

aptitude search tu_solucionaptitude install tu_solucionConfiguración, adaptación,pruebas etc..

Camino largo, doloroso y recomendadopara entornos en producción

@leninmhs 2012

Camino 2Camino 1

PD: aptitude solo disponible en: y derivados...

Page 21: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

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 completade alta disponibilidad en software libre.

Page 22: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Una imagen vale más que mil palabrasUna imagen vale más que mil palabras

PgPool-IIPgPool-IIIPPuertoUsuarioContraseña

IPPuertoUsuario

Contraseña

IPPuertoUsuario

Contraseña

IPPuertoUsuario

Contraseña

nodo1 nodo2 nodo3

Clientes

Se comporta como cliente y servidor

QRERy

QRERy

QRERy

QRERy

QRERy

QRERy

QRERy

Pool de servidores PostgreSQL@leninmhs 2012

pgpool-II

Page 23: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

PgPoolAdminPgPoolAdminHerramienta 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

Page 24: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Dudas, Preguntas, Sugerencias???

Dudas, Preguntas, Sugerencias???

@leninmhs 2012

Page 25: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

@leninmhs 2012

http://tubasededatoslibre.orghttp://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool/http://wiki.postgresql.org/wiki/Clusteringhttp://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Poolinghttp://bucardo.org

preguntas

Page 26: Alta Disponibilidad con PostgreSQL · Junio 2012 @leninmhs 2012 ... Potenciar las capacidades de desarrollo tecnológico Aprender, compartir, disfrutar, debatir Autodesarrollo, autodeterminación.

   

Gracias Totales...Gracias Totales...Blog: leninmhs.wordpress.comCorreo: [email protected]: @leninmhs

www.tubasededatoslibre.orgTwitter: @tu_bd_libreFacebook: facebook.com/TuBaseDeDatosLibre

@leninmhs 2012