SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Alta Disponibilidad
       con PostgreSQL

        Lenin Hernández
          Junio 2012




               

                          @leninmhs 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 Romulo Gallegos


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




                          

                                          @leninmhs 2012
¿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
Y la competencia???




                                                             

    Imagen por: http://www.exprimetuhost.com/2010/10/mysql-o-postgresql/mysql-vs-postgresql/   @leninmhs 2012
En algún momento...




                              

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




                                                  

    Imagen por: http://stefano.salvatori.cl/blog/2007/09/21/postgresql-vs-mysql-2/   @leninmhs 2012
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                                                 @leninmhs 2012
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
Replicació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
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
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.




                              
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
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
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
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        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
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
Dudas, Preguntas,
    Dudas, Preguntas,
     Sugerencias???
     Sugerencias???



                     

                        @leninmhs 2012
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/Replication,_Clustering,_and_Connection_Pooling
    http://bucardo.org




                                                         

                                                                                      @leninmhs 2012
Gracias Totales...
      Blog: leninmhs.wordpress.com
      Correo: leninmhs@gmail.com
      Twitter: @leninmhs




        www.tubasededatoslibre.org
        Twitter: @tu_bd_libre
        Facebook: facebook.com/TuBaseDeDatosLibre
                       

                                          @leninmhs 2012

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

The modern perl toolchain
The modern perl toolchainThe modern perl toolchain
The modern perl toolchain
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulf
 
Cluster beowulf javier condori flores
Cluster beowulf   javier condori floresCluster beowulf   javier condori flores
Cluster beowulf javier condori flores
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Novedades de OpenSolaris 2009.06
Novedades de OpenSolaris 2009.06Novedades de OpenSolaris 2009.06
Novedades de OpenSolaris 2009.06
 
Tecnologías de seguridad en switches
Tecnologías de seguridad en switchesTecnologías de seguridad en switches
Tecnologías de seguridad en switches
 
Dhcp vlans
Dhcp vlansDhcp vlans
Dhcp vlans
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
 
Comando De Router
Comando De RouterComando De Router
Comando De Router
 
NAT
NATNAT
NAT
 
Comandos router cisco
Comandos router ciscoComandos router cisco
Comandos router cisco
 
Jenkins pipeline
Jenkins pipelineJenkins pipeline
Jenkins pipeline
 
Puertos tcp mas usados
Puertos tcp mas usadosPuertos tcp mas usados
Puertos tcp mas usados
 
Puertos de linux
Puertos de linuxPuertos de linux
Puertos de linux
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Alta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en LinuxAlta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en Linux
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocol
 

Destacado

Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresqljockbrera
 
Presentación Live CDs - 2005
Presentación Live CDs - 2005Presentación Live CDs - 2005
Presentación Live CDs - 2005Lenin Hernandez
 
PostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadPostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadLenin Hernandez
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresqlesmeraldaq2011
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLCarlos Gustavo Ruiz
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ruNikolay Samokhvalov
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsGavin Roy
 
Londiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLLondiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLelliando dias
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Lennin Caro
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadSantiago Zarate
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy wayCommand Prompt., Inc
 
Replication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorReplication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorCommand Prompt., Inc
 
Implementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenImplementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenCommand Prompt., Inc
 
Python utilities for data presentation
Python utilities for data presentationPython utilities for data presentation
Python utilities for data presentationCommand Prompt., Inc
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksCommand Prompt., Inc
 

Destacado (20)

Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
 
Presentación Live CDs - 2005
Presentación Live CDs - 2005Presentación Live CDs - 2005
Presentación Live CDs - 2005
 
PostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadPostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidad
 
Tripticos komunal
Tripticos komunalTripticos komunal
Tripticos komunal
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with Skytools
 
Londiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLLondiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQL
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 
Backup and-recovery2
Backup and-recovery2Backup and-recovery2
Backup and-recovery2
 
Go replicator
Go replicatorGo replicator
Go replicator
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy way
 
Pg migrator
Pg migratorPg migrator
Pg migrator
 
Replication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorReplication using PostgreSQL Replicator
Replication using PostgreSQL Replicator
 
Implementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenImplementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with Tungsten
 
Python utilities for data presentation
Python utilities for data presentationPython utilities for data presentation
Python utilities for data presentation
 
A Practical Multi-Tenant Cluster
A Practical Multi-Tenant ClusterA Practical Multi-Tenant Cluster
A Practical Multi-Tenant Cluster
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forks
 

Similar a Alta disponibilidad-postgres

¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?Antonio Ognio
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pedvin_marcelo
 
Proyecto herramientas para analisis del big-data.pdf
Proyecto herramientas para analisis del big-data.pdfProyecto herramientas para analisis del big-data.pdf
Proyecto herramientas para analisis del big-data.pdftechno48
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Marco Antonio Ordoñez Valverde
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Lenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual MachineLenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual MachineÓscar Andrés López
 

Similar a Alta disponibilidad-postgres (20)

¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
 
Java
JavaJava
Java
 
Java
Java Java
Java
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Python django
Python djangoPython django
Python django
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
Expo taller i
Expo taller iExpo taller i
Expo taller i
 
Proyecto herramientas para analisis del big-data.pdf
Proyecto herramientas para analisis del big-data.pdfProyecto herramientas para analisis del big-data.pdf
Proyecto herramientas para analisis del big-data.pdf
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Python
PythonPython
Python
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Lenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual MachineLenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual Machine
 
Dynamic jvm
Dynamic jvmDynamic jvm
Dynamic jvm
 

Alta disponibilidad-postgres

  • 1. Alta Disponibilidad con PostgreSQL Lenin Hernández Junio 2012     @leninmhs 2012
  • 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 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
  • 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
  • 7. Actualmente...     Imagen por: http://stefano.salvatori.cl/blog/2007/09/21/postgresql-vs-mysql-2/ @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
  • 24. Dudas, Preguntas, Dudas, Preguntas, Sugerencias??? Sugerencias???     @leninmhs 2012
  • 25. 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/Replication,_Clustering,_and_Connection_Pooling http://bucardo.org     @leninmhs 2012
  • 26. Gracias Totales... Blog: leninmhs.wordpress.com Correo: leninmhs@gmail.com Twitter: @leninmhs www.tubasededatoslibre.org Twitter: @tu_bd_libre Facebook: facebook.com/TuBaseDeDatosLibre     @leninmhs 2012