Upload
elliando-dias
View
1.679
Download
6
Embed Size (px)
DESCRIPTION
Citation preview
HA em PostgreSQL:O Elefante disponível para além
do infinito
Fernando Ike de Oliveira SERPRO
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
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
● 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
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
http://www.postgresql.org/docs/8.3/interactive/high-availability.html
http://www.pgfoundry.org
[email protected] [email protected]
Contato e referência