![Page 1: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/1.jpg)
HA em PostgreSQL:O Elefante disponível para além
do infinito
Fernando Ike de Oliveira SERPRO
![Page 2: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/2.jpg)
![Page 3: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/3.jpg)
![Page 4: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/4.jpg)
![Page 5: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/5.jpg)
![Page 6: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/6.jpg)
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,
POINTINTIMERECOVERY. ● 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
![Page 7: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/7.jpg)
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.
![Page 8: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/8.jpg)
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?
![Page 9: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/9.jpg)
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
![Page 10: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/10.jpg)
● 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
HA para Banco de Dados
![Page 11: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/11.jpg)
Alta Disponibilidade - HA
Números de Disponibilidade
* 99,9% = 8 horas/ano
* 99,99% = 52 minutos/ano
* 99,999% = 5 minutos/ano
![Page 12: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/12.jpg)
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
![Page 13: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/13.jpg)
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
![Page 14: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/14.jpg)
HA – PostgreSQL com Slony/Londsite
![Page 15: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/15.jpg)
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
![Page 16: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/16.jpg)
HA – PostgreSQL com Pgbouncer e PL/Proxy
![Page 17: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/17.jpg)
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
![Page 18: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/18.jpg)
HA – PostgreSQL com Pgpool-2
![Page 19: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/19.jpg)
HA – PostgreSQL com Pgcluster/Cybercluster
● Multi-master ● Replicação Síncrona
● Balanceamento de carga
● Instável para grande volumes de dados (PgCluster)
![Page 20: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/20.jpg)
HA – Postgres-R
● Multimaster ● Replicação Síncrona
● Balanceamento de carga (Consultas)
● Funciona somente no PostgreSQL do CVS.
![Page 21: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/21.jpg)
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
![Page 22: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/22.jpg)
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
![Page 23: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/23.jpg)
HA – PostgreSQL com Warm Stand By
![Page 24: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/24.jpg)
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
![Page 25: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/25.jpg)
HA – PostgreSQL com Sequoia
![Page 26: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/26.jpg)
HA – Proposta pé-de-boi
● Hearteat – Pgbouncer
● PL/Proxy
● PostgreSQL
● Slony ou Warm Standby/Log Shipping
![Page 27: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/27.jpg)
HA – Proposta pé-de-boi
![Page 28: HA em PostgreSQL: O Elefante disponível para além do infinito](https://reader033.vdocuments.net/reader033/viewer/2022051412/549231fcac79592f288b46f4/html5/thumbnails/28.jpg)
http://www.postgresql.org/docs/8.3/interactive/high-availability.html
http://www.pgfoundry.org
[email protected] [email protected]
Contato e referência