Alta Disponibilidad con PostgreSQL Lenin Hernández Junio 2012
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
Gracias a Universidad Nacional Experimental omulo Gallegos Un viaje de mil leguas comienza con un primer paso
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, uby,etc. Máximo de base de datos : ILIMITADO Máximo de tamaño de tabla : 32TB
Y la competencia??? Imagen por: http://www.exprimetuhost.com/2010/10/mysql-o-postgresql/mysql-vs-postgresql/
En algún momento... Imagen por: http://www.seofaction.com/postgres
Actualmente... Imagen por: http://stefano.salvatori.cl/blog/2007/09/21/postgresql-vs-mysql-2/
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
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
Cuando hablamos de alta disponibilidad hablamos de: eplicación Balanceo de Cargas (Load Balance) Tolerancia a fallos (FailOver) Conexiones Agrupadas (Pool Connection) Consultas Distribuidas (Parallel Query) Gestión de Divergencias
eplicación Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Divergencia Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Tolerancia a Fallos Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
eplicació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
eplicació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.
Soluciones Alta Disponibilidad PostgreSQL 9 PgPool-II Slony ubyep Bucardo PgCluster Londiste Mammoth Solución mágica y esotérica Scripts automaticos, semiautomaticos estaurar, replicar etc.. a partir de logs
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]
Instalar & Implementar alguna de las soluciones: Camino 1 Camino 2 aptitude search tu_solucion aptitude install tu_solucion Configuración, adaptación,pruebas etc.. PD: aptitude solo disponible en: y derivados... Camino largo, doloroso y recomendado para entornos en producción Descargar Descomprimir Ingresar directorio./configure make make install Configuración, adaptación,pruebas etc.. If pruebas = ok anotar_chuleta(); compartir_internet(); Else intenter_nuevamente(); probar_otra_herramienta();
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.
pgpool-ii Una imagen vale más que mil palabras Q E y Q E y Clientes Q E y Q E y IP Puerto Usuario Contraseña Q E y PgPool-II Se comporta como cliente y servidor Q E y Q E y IP Puerto Usuario Contraseña IP IP Puerto Puerto Usuario Usuario Contraseña Contraseña nodo1 nodo2 nodo3 Pool de servidores PostgreSQL
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.
Dudas, Preguntas, Sugerencias???
preguntas http://tubasededatoslibre.org http://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool/ http://wiki.postgresql.org/wiki/clustering http://wiki.postgresql.org/wiki/eplication,_clustering,_and_connection_pooling http://bucardo.org
Gracias Totales... Blog: leninmhs.wordpress.com Correo: leninmhs@gmail.com Twitter: @leninmhs www.tubasededatoslibre.org Twitter: @tu_bd_libre Facebook: facebook.com/tubasededatoslibre