SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
HA em PostgreSQL:
O Elefante disponível para além
           do infinito



 SERPRO             Fernando Ike de Oliveira
PostgreSQL:
                                                                          História
●    1986 Início do projeto.
●    1987 primeira versão do Postgres
●    1991 versão 3  com as principais funcionalidades atuais.
●    1993 versão 4.2, última lançada pela Berkeley
●    1994 Andrew Yu e Jolly Chen lançam Postgre95 com interpretador para a linguagem SQL.
●    1997 Nome do projeto muda para PostgreSQL, a versão 6 é lançada
●    2000 versão 7 lançada com suporte a Foreign Key
●    2005 versão 8 lançada com versão nativa para Windows, TABLESPACES, SAVEPOINTS, 
    POINT­IN­TIME­RECOVERY. 
●   2005 versão 8.1 Commit Two Phases, Roles
●   2006 versão 8.2  (Insert, Update, Delete) Returning, Melhora performance em OLTP e BI
●   2007 versão 8.3 debug PL/PgSQL, Tsearch2 (XML) no core
PostgreSQL:
                                                              Características
● Melhor suporte: independente do fornecedor
● Baixo custo de manutenção e tunning

● Alta estabilidade

● Extensibilidade: pode ser personalizados com funções, tipos ou através acesso ao código 


fonte. Extensões na pasta /contrib
● Flexibilidade: roda em várias plataformas (inclusive BSD)

● Robusto: criado para suportar grande volume de dados e transações concorrentes.

● Controle de transações utilizando MVCC ou Locks explícitos

● Compatível com ANSI SQL

● Funções em SQL, C, C++, PLpg/SQL, PL/Perl, PL/Python, PL/TCL suportadas nativamente 


além de  PL/Java, PL/PHP, PL/R, PL/Ruby, PL/Scheme, PL/Lua, PL/sh, PL/Mono.
Alta Disponibilidade - HA
  Disponibilidade de serviço:
- Aplicação?
- Usuário?
- Banco de dados?
- Usuário?

  Perguntas importantes:
- Data Center tem contigência?
- Tem contigência do banco de dados?
- Tem backup e executa testes de restauração de backup?
- Quanto tempo para o serviço voltar a funcionar plenamente?
Replicação Síncrona e
           Assíncrona
●   Dependendo do volume de dados: Megabyte, Gigabyte, Terabyte

●Dependendo da interligação de rede: Fibra ótica, Frame Relay,
ATM, ADSL, Serial

●Dependendo da arquitetura da aplicação: Suporte a múltiplos
bancos de dados
HA para Banco de Dados

●   Alta Disponibilidade: Bando de Dados

●   Idéias (Grid X Cluster X Consistência)

●   ACID - Integridade, Consistência, Atomicidade, Durabilidade

●   Performance X Disponibilidade

●   Síncrono e Assíncrono

●   LAN e WAN
Alta Disponibilidade - HA

Números de Disponibilidade

* 99,9% = 8 horas/ano

* 99,99% = 52 minutos/ano

* 99,999% = 5 minutos/ano
HA – PostgreSQL com sistemas
de arquivos compartilhados
 ●   HA com Ativo e Passivo

 ●   Heartbeart

 ●   DRDB, Storage, NFS, OCFS, GFS

 ●   Perda de dados em memória

 ●   Storage como ponto de falha
HA – PostgreSQL com Slony


●   Replicação baseada em triggers

●   Replicação assíncrona

●   Multi-Slave em cascata – Um slave atrás de outro slave

●   Possibilidade de replicar tabelas
HA – PostgreSQL com
Slony/Londsite
HA – PostgreSQL com
Pgbouncer e PL/Proxy
●   Middleware transaparente

●   Replicação síncrona

●   A replicação faz por estado transacional

●   Software liberada recentemente pela Skype

●   Pool de conexão
HA – PostgreSQL com
Pgbouncer e PL/Proxy
HA – PostgreSQL com Pgpool-2

●   Middleware transaparente

●   Replicação síncrona

●   A replicação por interceptação de SQL

●   Suporte até 128 nós

●   Balanceamento de carga (Consultas)

●   Pool de conexão
HA – PostgreSQL com Pgpool-2
HA – PostgreSQL com
Pgcluster/Cybercluster
●   Multi-master

●   Replicação Síncrona

●   Balanceamento de carga

●   Instável para grande volumes de dados (PgCluster)
HA – Postgres-R

●   Multimaster

●   Replicação Síncrona

●   Balanceamento de carga (Consultas)

●   Funciona somente no PostgreSQL do CVS.
HA – PostgreSQL com Bucardo

●   Multimaster

●   Replicação Assíncrona

●   Usa PL/Perl como mecanismo de replicação

●   Replicar por tabelas

●   Tabela deve ter a chave primária

●   Não replica DDL
HA – PostgreSQL com Warm
Stand By

●   Uso de log transacionais binários – WAL (Write Ahead Log)

●   Ativo – Passivo

●   Cópia dos logs

●   Perda de dados em memória
HA – PostgreSQL com Warm
Stand By
HA – PostgreSQL com Sequoia

●   Middleware transparente em Java

●   Idéia de Raid para banco de dados (RAIDdb)

●   Cluster, balanceamento de carga e HA

●   Baseado no C-JDBC

●   Possível usar com aplicações não-java(ODBC) com o Carob
HA – PostgreSQL com Sequoia
HA – Proposta pé-de-boi

●   Hearteat – Pgbouncer

●   PL/Proxy

●   PostgreSQL

●   Slony ou Warm Standby/Log Shipping
HA – Proposta pé-de-boi
Contato e referência


http://www.postgresql.org/docs/8.3/interactive/high-availability.html


http://www.pgfoundry.org

fernando.ike@b2br.com.br
fernando.ike@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open sourceMatheus Espanhol
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresDouglas V. Pasqua
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6MySQL Brasil
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackupWebgoal
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open sourceRodrigo Aurélio
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dadoselliando dias
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoEiti Kimura
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMPLeandro Mendes
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASKleber Silva
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 

Was ist angesagt? (20)

Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Drupal + Rex
Drupal + RexDrupal + Rex
Drupal + Rex
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackup
 
Gfs slides
Gfs slidesGfs slides
Gfs slides
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Projeto OpenJDK [Java8]
Projeto OpenJDK [Java8]Projeto OpenJDK [Java8]
Projeto OpenJDK [Java8]
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dados
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMP
 
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NASAnálise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
Análise comparativa entre as versões 3 e 4 do protocolo NFS em arquiteturas NAS
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 

Ähnlich wie HA em PostgreSQL: O Elefante disponível para além do infinito

Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código abertoSuissa
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRJulio Viegas
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraMário Marroquim
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreRafael Gomes
 
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIFernando Ike
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na WebMeritt - Cada Aluno é Único
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataRodrigo Almeida
 

Ähnlich wie HA em PostgreSQL: O Elefante disponível para além do infinito (20)

Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com Cassandra
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
 
Deep dive com Amazon Aurora
Deep dive com Amazon AuroraDeep dive com Amazon Aurora
Deep dive com Amazon Aurora
 
Postgres nuvens
Postgres nuvensPostgres nuvens
Postgres nuvens
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para Exadata
 
Hadoop
HadoopHadoop
Hadoop
 
Postgresql +python
Postgresql +pythonPostgresql +python
Postgresql +python
 
Postgre sql +python
Postgre sql +pythonPostgre sql +python
Postgre sql +python
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
Cassandra - O básico
Cassandra - O básicoCassandra - O básico
Cassandra - O básico
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

HA em PostgreSQL: O Elefante disponível para além do infinito

  • 1. HA em PostgreSQL: O Elefante disponível para além do infinito SERPRO Fernando Ike de Oliveira
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. PostgreSQL: História ●  1986 Início do projeto. ●  1987 primeira versão do Postgres ●  1991 versão 3  com as principais funcionalidades atuais. ●  1993 versão 4.2, última lançada pela Berkeley ●  1994 Andrew Yu e Jolly Chen lançam Postgre95 com interpretador para a linguagem SQL. ●  1997 Nome do projeto muda para PostgreSQL, a versão 6 é lançada ●  2000 versão 7 lançada com suporte a Foreign Key ●  2005 versão 8 lançada com versão nativa para Windows, TABLESPACES, SAVEPOINTS,  POINT­IN­TIME­RECOVERY.  ● 2005 versão 8.1 Commit Two Phases, Roles ● 2006 versão 8.2  (Insert, Update, Delete) Returning, Melhora performance em OLTP e BI ● 2007 versão 8.3 debug PL/PgSQL, Tsearch2 (XML) no core
  • 7. PostgreSQL: Características ● Melhor suporte: independente do fornecedor ● Baixo custo de manutenção e tunning ● Alta estabilidade ● Extensibilidade: pode ser personalizados com funções, tipos ou através acesso ao código  fonte. Extensões na pasta /contrib ● Flexibilidade: roda em várias plataformas (inclusive BSD) ● Robusto: criado para suportar grande volume de dados e transações concorrentes. ● Controle de transações utilizando MVCC ou Locks explícitos ● Compatível com ANSI SQL ● Funções em SQL, C, C++, PLpg/SQL, PL/Perl, PL/Python, PL/TCL suportadas nativamente  além de  PL/Java, PL/PHP, PL/R, PL/Ruby, PL/Scheme, PL/Lua, PL/sh, PL/Mono.
  • 8. Alta Disponibilidade - HA Disponibilidade de serviço: - Aplicação? - Usuário? - Banco de dados? - Usuário? Perguntas importantes: - Data Center tem contigência? - Tem contigência do banco de dados? - Tem backup e executa testes de restauração de backup? - Quanto tempo para o serviço voltar a funcionar plenamente?
  • 9. Replicação Síncrona e Assíncrona ● Dependendo do volume de dados: Megabyte, Gigabyte, Terabyte ●Dependendo da interligação de rede: Fibra ótica, Frame Relay, ATM, ADSL, Serial ●Dependendo da arquitetura da aplicação: Suporte a múltiplos bancos de dados
  • 10. HA para Banco de Dados ● Alta Disponibilidade: Bando de Dados ● Idéias (Grid X Cluster X Consistência) ● ACID - Integridade, Consistência, Atomicidade, Durabilidade ● Performance X Disponibilidade ● Síncrono e Assíncrono ● LAN e WAN
  • 11. Alta Disponibilidade - HA Números de Disponibilidade * 99,9% = 8 horas/ano * 99,99% = 52 minutos/ano * 99,999% = 5 minutos/ano
  • 12. HA – PostgreSQL com sistemas de arquivos compartilhados ● HA com Ativo e Passivo ● Heartbeart ● DRDB, Storage, NFS, OCFS, GFS ● Perda de dados em memória ● Storage como ponto de falha
  • 13. HA – PostgreSQL com Slony ● Replicação baseada em triggers ● Replicação assíncrona ● Multi-Slave em cascata – Um slave atrás de outro slave ● Possibilidade de replicar tabelas
  • 14. HA – PostgreSQL com Slony/Londsite
  • 15. HA – PostgreSQL com Pgbouncer e PL/Proxy ● Middleware transaparente ● Replicação síncrona ● A replicação faz por estado transacional ● Software liberada recentemente pela Skype ● Pool de conexão
  • 16. HA – PostgreSQL com Pgbouncer e PL/Proxy
  • 17. HA – PostgreSQL com Pgpool-2 ● Middleware transaparente ● Replicação síncrona ● A replicação por interceptação de SQL ● Suporte até 128 nós ● Balanceamento de carga (Consultas) ● Pool de conexão
  • 18. HA – PostgreSQL com Pgpool-2
  • 19. HA – PostgreSQL com Pgcluster/Cybercluster ● Multi-master ● Replicação Síncrona ● Balanceamento de carga ● Instável para grande volumes de dados (PgCluster)
  • 20. HA – Postgres-R ● Multimaster ● Replicação Síncrona ● Balanceamento de carga (Consultas) ● Funciona somente no PostgreSQL do CVS.
  • 21. HA – PostgreSQL com Bucardo ● Multimaster ● Replicação Assíncrona ● Usa PL/Perl como mecanismo de replicação ● Replicar por tabelas ● Tabela deve ter a chave primária ● Não replica DDL
  • 22. HA – PostgreSQL com Warm Stand By ● Uso de log transacionais binários – WAL (Write Ahead Log) ● Ativo – Passivo ● Cópia dos logs ● Perda de dados em memória
  • 23. HA – PostgreSQL com Warm Stand By
  • 24. HA – PostgreSQL com Sequoia ● Middleware transparente em Java ● Idéia de Raid para banco de dados (RAIDdb) ● Cluster, balanceamento de carga e HA ● Baseado no C-JDBC ● Possível usar com aplicações não-java(ODBC) com o Carob
  • 25. HA – PostgreSQL com Sequoia
  • 26. HA – Proposta pé-de-boi ● Hearteat – Pgbouncer ● PL/Proxy ● PostgreSQL ● Slony ou Warm Standby/Log Shipping
  • 27. HA – Proposta pé-de-boi