Alta disponibilidad-postgres

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

Transcript of Alta disponibilidad-postgres

Page 1: Alta disponibilidad-postgres

   

Alta Disponibilidad Alta Disponibilidad con PostgreSQLcon PostgreSQL

Lenin Hernández Junio 2012

@leninmhs 2012

Page 2: Alta disponibilidad-postgres

   

¿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-postgres

   

Gracias a Universidad Nacional

Experimental Romulo Gallegos

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

@leninmhs 2012

Page 4: Alta disponibilidad-postgres

   

¿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-postgres

   

Y la competencia???

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

Page 6: Alta disponibilidad-postgres

   

En algún momento...

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

Page 7: Alta disponibilidad-postgres

   

Actualmente...

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

Page 8: Alta disponibilidad-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

Replicación

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

Page 12: Alta disponibilidad-postgres

   

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

Page 13: Alta disponibilidad-postgres

   

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

Page 14: Alta disponibilidad-postgres

   

Divergencia

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

Page 15: Alta disponibilidad-postgres

   

Tolerancia a Fallos

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

Page 16: Alta disponibilidad-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

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-postgres

   

Dudas, Preguntas, Sugerencias???

Dudas, Preguntas, Sugerencias???

@leninmhs 2012

Page 25: Alta disponibilidad-postgres

   

@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-postgres

   

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

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

@leninmhs 2012