por Fábio Telles Rodriguez PostgreSQL Transformando um elefante numa manada 15 de Dezembro de 2005
Agenda   <ul><li>Cluster em banco de dados - Stand By  </li></ul><ul><li>Tipos de replicação - Bancos de dados distribuído...
<ul><li>Alta disponibilidade, tolerância a falhas </li></ul><ul><ul><li>Stand By  </li></ul></ul><ul><ul><li>Replicação </...
<ul><li>Vantagens </li></ul><ul><ul><li>Nativo a partir do PostgreSQL 8.0 </li></ul></ul><ul><ul><li>Simples de implementa...
<ul><li>Master/Slave assíncrona: </li></ul><ul><ul><li>Permite Tolerância a falhas com perda das últimas transações; </li>...
<ul><li>Master/Slave síncrona: </li></ul><ul><ul><li>Permite Tolerância a falhas;  </li></ul></ul><ul><ul><li>Permite a di...
<ul><li>Multi Master síncrona: </li></ul><ul><ul><li>Garante a consistência entre as réplicas; </li></ul></ul><ul><ul><li>...
<ul><li>“ Multi Master ” assíncrona: </li></ul><ul><ul><li>Necessita de uma base central; </li></ul></ul><ul><ul><li>Reali...
<ul><li>Cada site armazena dados relativo ao seu contexto; </li></ul><ul><li>Cada site tem autonomia em relação aos demais...
<ul><li>Projeto de replicação Oficial do PostgreSQL; </li></ul><ul><li>Replicação Master/Slave assíncrona; </li></ul><ul><...
<ul><li>Replica Tabelas e Sequências; </li></ul><ul><li>Permite a execução de DDL de um ponto central para todas as réplic...
<ul><li>Realiza um Pool de conexões ideal para aplicações WEB </li></ul><ul><li>Aplicações se conectam ao PG_Pool ao invés...
<ul><li>Pode ser instalado num servidor separado dos bancos de dados, sem a necessidade de nenhuma configuração nestes. </...
<ul><li>Replicação Multi Master síncrona; </li></ul><ul><li>Balanceamento de carga e tolerância a falhas; </li></ul><ul><l...
<ul><li>Disponível a partir da versão 8.1 do PostgreSQL; </li></ul><ul><li>Permite a distribuição de uma transação para vá...
<ul><li>Apresentação de Bruce Momjiam: </li></ul><ul><ul><li>http://candle.pha.pa.us/main/writings/pgsql/replication.pdf  ...
<ul><li>Listas de discussão: </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>[email_address]   </li></ul>...
Upcoming SlideShare
Loading in...5
×

PostgreSQL Transformando um elefante numa manada

4,395

Published on

Palestra realizada no 1° Seminário de Inovações Tecnológicas em Cluster e Grid no Governo Federal em dezembro de 2005 sobre técnicas de replicação no PostgreSQL

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,395
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
137
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

PostgreSQL Transformando um elefante numa manada

  1. 1. por Fábio Telles Rodriguez PostgreSQL Transformando um elefante numa manada 15 de Dezembro de 2005
  2. 2. Agenda <ul><li>Cluster em banco de dados - Stand By </li></ul><ul><li>Tipos de replicação - Bancos de dados distribuídos </li></ul><ul><li>Slony-I </li></ul><ul><li>PG_Pool </li></ul><ul><li>PG_Cluster </li></ul><ul><li>Commit em duas fases </li></ul><ul><li>Dúvidas </li></ul>
  3. 3. <ul><li>Alta disponibilidade, tolerância a falhas </li></ul><ul><ul><li>Stand By </li></ul></ul><ul><ul><li>Replicação </li></ul></ul><ul><li>Balanceamento de carga, aumento de desempenho </li></ul><ul><ul><li>Pool de conexões </li></ul></ul><ul><ul><li>Replicação Master/Slave </li></ul></ul><ul><ul><li>Banco de dados Distribuídos (dblink) </li></ul></ul><ul><ul><li>Cluster de Storage </li></ul></ul>Cluster em Bancos de Dados
  4. 4. <ul><li>Vantagens </li></ul><ul><ul><li>Nativo a partir do PostgreSQL 8.0 </li></ul></ul><ul><ul><li>Simples de implementar </li></ul></ul><ul><ul><li>Baixo impacto na rede e no processamento </li></ul></ul><ul><li>Desvantagens </li></ul><ul><ul><li>Banco em Stand By não pode ser utilizado </li></ul></ul><ul><ul><li>Tempo de recuperação do Stand By </li></ul></ul><ul><ul><li>Implementação obrigatória de um agrupamento de Bancos de Dados inteiro. </li></ul></ul>Stand By
  5. 5. <ul><li>Master/Slave assíncrona: </li></ul><ul><ul><li>Permite Tolerância a falhas com perda das últimas transações; </li></ul></ul><ul><ul><li>Permite a distribuição da carga nas operações de leitura; </li></ul></ul><ul><ul><li>Pode gerar inconsistência nos Slaves em relação ao Master; </li></ul></ul><ul><ul><li>Gera tráfego considerável na rede. </li></ul></ul>Tipos de Replicação
  6. 6. <ul><li>Master/Slave síncrona: </li></ul><ul><ul><li>Permite Tolerância a falhas; </li></ul></ul><ul><ul><li>Permite a distribuição da carga nas operações de leitura; </li></ul></ul><ul><ul><li>Garante a consistência entre as réplicas; </li></ul></ul><ul><ul><li>Gera tráfego alto na rede. </li></ul></ul>Tipos de Replicação
  7. 7. <ul><li>Multi Master síncrona: </li></ul><ul><ul><li>Garante a consistência entre as réplicas; </li></ul></ul><ul><ul><li>Diminui a velocidade das transações, pois exige que ela seja confirmada em todas as réplicas; </li></ul></ul><ul><ul><li>Permite o balanceamento de carga; </li></ul></ul><ul><ul><li>Permite a tolerância a falhas; </li></ul></ul><ul><ul><li>Gera alto tráfego na rede. </li></ul></ul>Tipos de Replicação
  8. 8. <ul><li>“ Multi Master ” assíncrona: </li></ul><ul><ul><li>Necessita de uma base central; </li></ul></ul><ul><ul><li>Realiza sincronização esporádica, com uma base central; </li></ul></ul><ul><ul><li>Gera inconsistências locais; </li></ul></ul><ul><ul><li>Aplicação tem de ser desenvolvida para este fim; </li></ul></ul><ul><ul><li>Utilizado em aplicações instaladas em computadores portáteis; </li></ul></ul>Tipos de Replicação
  9. 9. <ul><li>Cada site armazena dados relativo ao seu contexto; </li></ul><ul><li>Cada site tem autonomia em relação aos demais; </li></ul><ul><li>Operações locais são mais rápidas; </li></ul><ul><li>SELECTs envolvendo dados de outros sites mais lentos e exigem otimização específica; </li></ul><ul><li>Transações evolvendo dados de outros sites necessitam de controle de transação específico. </li></ul><ul><li>Através de alterações no modelo físico, é possível tornar o modelo lógico transparente para a aplicação </li></ul>Bancos Distribuídos
  10. 10. <ul><li>Projeto de replicação Oficial do PostgreSQL; </li></ul><ul><li>Replicação Master/Slave assíncrona; </li></ul><ul><li>Tolerância a falhas com possível perda das últimas transações; </li></ul><ul><li>Permite o cascateamento de replicas diminuindo o impacto na rede; </li></ul><ul><li>Permite a criação de DUMPs que permitem a replicação para sincronia por meios diversos. </li></ul>Slony-I
  11. 11. <ul><li>Replica Tabelas e Sequências; </li></ul><ul><li>Permite a execução de DDL de um ponto central para todas as réplicas; </li></ul><ul><li>Utiliza Triggers e um Daemon chamado Slonik em cada réplica; </li></ul><ul><li>Otimização na replicação de dados redundantes. </li></ul>Slony-I
  12. 12. <ul><li>Realiza um Pool de conexões ideal para aplicações WEB </li></ul><ul><li>Aplicações se conectam ao PG_Pool ao invés do PostgreSQL de forma transparente; </li></ul><ul><li>Replicação Master/Slave síncrona para até 2 servidores </li></ul><ul><li>Possui um load balance para consultas; </li></ul><ul><li>Implementação obrigatória de um agrupamento de Bancos de Dados inteiro. </li></ul>PG_Pool
  13. 13. <ul><li>Pode ser instalado num servidor separado dos bancos de dados, sem a necessidade de nenhuma configuração nestes. </li></ul><ul><li>Replicação de seqüência exige lock de tabela; </li></ul><ul><li>Controle de acesso do pg_hba.conf não pode ser utilizado; </li></ul><ul><li>Permite se conectar a um servidor PostgreSQL replicado pelo Slony-I. </li></ul>PG_Pool
  14. 14. <ul><li>Replicação Multi Master síncrona; </li></ul><ul><li>Balanceamento de carga e tolerância a falhas; </li></ul><ul><li>Replica tabelas e sequências; </li></ul><ul><li>Sincroniza bases que tenham perdido a sincronia através do rsync; </li></ul><ul><li>Utiliza um servidor como Load Balance e um ou mais servidores como Replicadores e cada nó possui uma versão modificada do PostgreSQL; </li></ul><ul><li>Utiliza um mínimo de 3 nós; </li></ul><ul><li>Instalação é relativamente complexa. </li></ul>PG_Cluster
  15. 15. <ul><li>Disponível a partir da versão 8.1 do PostgreSQL; </li></ul><ul><li>Permite a distribuição de uma transação para vários Bancos de Dados distintos através de uma WAN; </li></ul><ul><li>Garante a integridade transações em replicações síncronas; </li></ul>Commit em duas fases
  16. 16. <ul><li>Apresentação de Bruce Momjiam: </li></ul><ul><ul><li>http://candle.pha.pa.us/main/writings/pgsql/replication.pdf </li></ul></ul><ul><li>Slony-I </li></ul><ul><ul><li>http://gborg.postgresql.org/project/slony1/projdisplay.php </li></ul></ul><ul><ul><li>http://www.ntlug.org/~cbbrowne/slony.html </li></ul></ul><ul><li>PG_Pool </li></ul><ul><ul><li>http://pgpool.projects.postgresql.org/ </li></ul></ul><ul><ul><li>http://pgfoundry.org/projects/pgpool/ </li></ul></ul><ul><li>PG_Cluster </li></ul><ul><ul><li>http://pgcluster.projects.postgresql.org/index.html </li></ul></ul>Links
  17. 17. <ul><li>Listas de discussão: </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><li>IRC irc.freenodes.net: </li></ul><ul><ul><li>#POSTGRESQL </li></ul></ul><ul><ul><li>#POSTGRESQL-BR </li></ul></ul>Dúvidas
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×