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...
PostgreSQL:
                                                              Características
● Melhor suporte: independente d...
Alta Disponibilidade - HA
  Disponibilidade de serviço:
- Aplicação?
- Usuário?
- Banco de dados?
- Usuário?

  Perguntas ...
Replicação Síncrona e
           Assíncrona
●   Dependendo do volume de dados: Megabyte, Gigabyte, Terabyte

●Dependendo d...
HA para Banco de Dados

●   Alta Disponibilidade: Bando de Dados

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

●   ACID - I...
Alta Disponibilidade - HA

Números de Disponibilidade

* 99,9% = 8 horas/ano

* 99,99% = 52 minutos/ano

* 99,999% = 5 min...
HA – PostgreSQL com sistemas
de arquivos compartilhados
 ●   HA com Ativo e Passivo

 ●   Heartbeart

 ●   DRDB, Storage, ...
HA – PostgreSQL com Slony


●   Replicação baseada em triggers

●   Replicação assíncrona

●   Multi-Slave em cascata – Um...
HA – PostgreSQL com
Slony/Londsite
HA – PostgreSQL com
Pgbouncer e PL/Proxy
●   Middleware transaparente

●   Replicação síncrona

●   A replicação faz por e...
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...
HA – PostgreSQL com Pgpool-2
HA – PostgreSQL com
Pgcluster/Cybercluster
●   Multi-master

●   Replicação Síncrona

●   Balanceamento de carga

●   Inst...
HA – Postgres-R

●   Multimaster

●   Replicação Síncrona

●   Balanceamento de carga (Consultas)

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

●   Multimaster

●   Replicação Assíncrona

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

●  ...
HA – PostgreSQL com Warm
Stand By

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

●   Ativo – Passivo

●  ...
HA – PostgreSQL com Warm
Stand By
HA – PostgreSQL com Sequoia

●   Middleware transparente em Java

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

●   Clus...
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

f...
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinito
Próximos SlideShares
Carregando em…5
×

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

1.967 visualizações

Publicada em

Publicada em: Tecnologia, Negócios
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.967
No SlideShare
0
A partir de incorporações
0
Número de incorporações
11
Ações
Compartilhamentos
0
Downloads
60
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. HA em PostgreSQL: O Elefante disponível para além do infinito SERPRO Fernando Ike de Oliveira
  2. 2. 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
  3. 3. 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.
  4. 4. 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?
  5. 5. 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
  6. 6. 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
  7. 7. Alta Disponibilidade - HA Números de Disponibilidade * 99,9% = 8 horas/ano * 99,99% = 52 minutos/ano * 99,999% = 5 minutos/ano
  8. 8. 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
  9. 9. 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
  10. 10. HA – PostgreSQL com Slony/Londsite
  11. 11. 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
  12. 12. HA – PostgreSQL com Pgbouncer e PL/Proxy
  13. 13. 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
  14. 14. HA – PostgreSQL com Pgpool-2
  15. 15. HA – PostgreSQL com Pgcluster/Cybercluster ● Multi-master ● Replicação Síncrona ● Balanceamento de carga ● Instável para grande volumes de dados (PgCluster)
  16. 16. HA – Postgres-R ● Multimaster ● Replicação Síncrona ● Balanceamento de carga (Consultas) ● Funciona somente no PostgreSQL do CVS.
  17. 17. 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
  18. 18. 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
  19. 19. HA – PostgreSQL com Warm Stand By
  20. 20. 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
  21. 21. HA – PostgreSQL com Sequoia
  22. 22. HA – Proposta pé-de-boi ● Hearteat – Pgbouncer ● PL/Proxy ● PostgreSQL ● Slony ou Warm Standby/Log Shipping
  23. 23. HA – Proposta pé-de-boi
  24. 24. 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

×