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

1.981 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.981
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

×