Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PGDay Brasília 2009



Replicação e Alta-Disponibilidade
          é possível?



Dickson S. Guedes
http://guedesoft.net
P...
O que vamos ver?

        Os desafios
    



        O Plano de Continuidade de Negócio
    



        O Contrato de N...
Os desafios

       O porquê da replicação?
   



       As premissas de segurança
   


           Disponível, Confiáv...
O P.C.N.

        Os riscos
    


            externos, internos, naturais, hard/soft/peopleware
        




        O...
O S.L.A.

       Disponibilidade do Sistema
   


           O sistema precisa estar disponível durante __ dias
       
...
O S.L.A.

       Tempo de recuperação
   


           Em caso de um desastre o sistema precisa voltar a
       

      ...
O noves

        90,0% ~ 56 dias/ano de indisponibilidade
    


        99,0% ~ 3,5 dias/ano de indisponibilidade
    
...
Alta-disponibilidade

        O que é necessário?
    


            Menor indisponibilidade possível
        




     ...
Alta-performance

        O que é necessário?
    


            Menor tempo de resposta possível
        




        P...
Os cenários possíveis

        Tolerância à falhas
    




        Balanceamento de carga
    




        Sites remoto...
As soluções possíveis

        Tolerância à falhas por disco compartilhado
    


        Espelhamento de Sistemas de Arq...
Disco compartilhado

        Desempenho normal
    



        Não há perda                                 APLICAÇÃO
   ...
Disco compartilhado

        Master morreu e agora?!
    



        Aplicação precisa tratar                     APLICAÇ...
Espelhamento de Sistema de
                 Arquivos
        Desempenho normal no
    



        Master                 ...
Espelhamento de Sistema de
                 Arquivos
        Master morreu e agora?!
    



        Aplicação precisa tr...
Log shipping sincrono

        Desempenho no master
    



        depende da rede                              APLICAÇÃ...
Log shipping sincrono

        Master falhou
    


        pg_standby pode                              APLICAÇÃO
    
...
Baseado em sentenças pgpool-II
                                                    APLICAÇÃO
        Balanceamento de carg...
Baseado em sentenças pgpool-II
                                                    APLICAÇÃO
        Um dos masters
    
...
Baseado em sentenças sequoia
                                                      APLICAÇÃO
        Balanceamento de carg...
Outros

        Postgres-R
    



        PGCluster
    




Dickson S. Guedes - http://guedesoft.net - PGDay Brasília ...
Um exemplo...

        Configurando o pgpool-II
    




Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
Instalando pgpool-II

        Acessar
    


            http://pgfoundry.org/frs/?group_id=1000055
        



        ...
Configurando pgpool-II
        Em pgpool.conf
    


            listen_addresses = '*'
        


            port = 99...
Configurando os nós
        Em pgpool.conf
    


            backend_hostname0 = 'srv01.dbservers.intranet'
        


...
Gerenciando o pgpool-II
        Iniciando em primeiro plano
    


            pgpool
        



        Iniciando em s...
Estrutura testada
                                        Blade Center
                                        ● Capacidad...
Testando
        Criar um banco de testes conectando no pgpool-II
    



             createdb -p 9999 -h srvpool.dbserv...
Conclusão

        Não existe uma caixinha pronta chamada
    



        replicação!
        Não existe almoço grátis!
 ...
Contatos

        Dickson S. Guedes
    


            Email e Gtalk: guedes@guedesoft.net
        




            Home...
Upcoming SlideShare
Loading in …5
×

Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

5,498 views

Published on

Palestra ministrada no PGDay DF, no Ministério do Planejamento em Brasília.

Published in: Business, Technology
  • Be the first to comment

Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

  1. 1. PGDay Brasília 2009 Replicação e Alta-Disponibilidade é possível? Dickson S. Guedes http://guedesoft.net PGDay Brasília 2009
  2. 2. O que vamos ver? Os desafios  O Plano de Continuidade de Negócio  O Contrato de Nível de Serviço  Alta-disponibilidade e a Alta-performance  Os cenários possíveis  As soluções possíveis  Os custos envolvidos  Os resultados que poderemos obter  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  3. 3. Os desafios O porquê da replicação?  As premissas de segurança  Disponível, Confiável, Íntegro  O modelo ACID  Atômico, Consistente, Isolado e Durável  O paradigma da escalabilidade  O dono do negócio  Os usuários do negócio  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  4. 4. O P.C.N. Os riscos  externos, internos, naturais, hard/soft/peopleware  Os impactos  custo da indisponibilidade, quantificar perdas  A recuperação de desastres  backup, site remoto  A conscientização  treinamentos internos  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  5. 5. O S.L.A. Disponibilidade do Sistema  O sistema precisa estar disponível durante __ dias  por semana das __ horas às __ horas Perda de dados aceitável  Não mais que __ minutos de entrada de dados  podem ser perdidas Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  6. 6. O S.L.A. Tempo de recuperação  Em caso de um desastre o sistema precisa voltar a  funcionar em no máximo __ horas Performance  O tempo de resposta das transações da aplicação  não pode exceder mais que __ segundos Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  7. 7. O noves 90,0% ~ 56 dias/ano de indisponibilidade  99,0% ~ 3,5 dias/ano de indisponibilidade  99,9% ~ 8 horas/ano de indisponibilidade  99,99% ~ 52min/ano de indisponibilidade  99,999% ~ 5min/ano de indisponibilidade  24x7 / 8x5 / ??x!! Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  8. 8. Alta-disponibilidade O que é necessário?  Menor indisponibilidade possível  Por que é necessário?  Prevenir perda de dados  Evitar indisponibilidade do serviço  Quem precisa?  O dono do negócio  Os usuários do serviço  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  9. 9. Alta-performance O que é necessário?  Menor tempo de resposta possível  Por que é necessário?  Quem gosta de esperar?  Mais dados processados em menos tempo  Quem precisa?  Os usuários do serviço  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  10. 10. Os cenários possíveis Tolerância à falhas  Balanceamento de carga  Sites remotos  Data Warehouse  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  11. 11. As soluções possíveis Tolerância à falhas por disco compartilhado  Espelhamento de Sistemas de Arquivos  Log shipping síncrono (em desenvolvimento)  Multi-master síncrono  Statement-Based  Soluções comerciais  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  12. 12. Disco compartilhado Desempenho normal  Não há perda APLICAÇÃO  Slave não executa  consultas BD BD Master Slave Scripts auxiliares  Nagios  Custos?  Pontos de falhas?  DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  13. 13. Disco compartilhado Master morreu e agora?!  Aplicação precisa tratar APLICAÇÃO  Usar um heartbeat  Slave vira master  BD BD Master Master Master volta  manualmente DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  14. 14. Espelhamento de Sistema de Arquivos Desempenho normal no  Master APLICAÇÃO Síncrono  Assíncrono com  BD BD Master Slave possíveis perdas Slave não executa  consultas Custos?  DRDB DADOS DADOS Pontos de falhas?  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  15. 15. Espelhamento de Sistema de Arquivos Master morreu e agora?!  Aplicação precisa tratar APLICAÇÃO  Usar um heartbeat  Slave vira master  BD BD Master Master Master volta  manualmente Checar integridade dos  dados do master DADOS DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  16. 16. Log shipping sincrono Desempenho no master  depende da rede APLICAÇÃO Sucessor do warm-  standby BD BD Master Slave Síncrono sem perdas  Recuperação rápida  Hot Standby  Custos?  DADOS DADOS Pontos de falhas?  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  17. 17. Log shipping sincrono Master falhou  pg_standby pode APLICAÇÃO  promover o slave para master BD BD Ambos os modulos Master Master  em desenvolvimento DADOS DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  18. 18. Baseado em sentenças pgpool-II APLICAÇÃO Balanceamento de carga  nas consultas PGPOOL-II Consultas paralelas  Escalabilidade em  BD BD 01 02 consultas Pool de conexão  Custos?  Pontos de falha?  DADOS DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  19. 19. Baseado em sentenças pgpool-II APLICAÇÃO Um dos masters  morreu? PGPOOL-II pgpool sabe!  A aplicação não “:)  BD BD 01 02 A volta do master de  forma online exige o SystemDB DADOS DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  20. 20. Baseado em sentenças sequoia APLICAÇÃO Balanceamento de carga  nas consultas SEQUOIA 01 SEQUOIA 02 Consultas paralelas  Escalabilidade em  BD BD BD BD 01 02 03 04 consultas JDBC, ODBC  Custos?  Pontos de falha?  DADOS DADOS DADOS DADOS Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  21. 21. Outros Postgres-R  PGCluster  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  22. 22. Um exemplo... Configurando o pgpool-II  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  23. 23. Instalando pgpool-II Acessar  http://pgfoundry.org/frs/?group_id=1000055  Obter a versão mais atual: pgpool-II 2.2  Descompactar no servidor onde irá rodá-lo  Executar:  ./configure && make && make install  cd /usr/local/etc/  cp pgpool.conf.sample pgpool.conf  cp pcp.conf.sample pcp.conf  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  24. 24. Configurando pgpool-II Em pgpool.conf  listen_addresses = '*'  port = 9999  pcp_port = 9898  replication_mode = true  load_balance_mode = true  Em pcp.conf  postgres:e8a48653851e28c69d0506508fb27fc5  No pg_hba.conf  trust para o IP do pgpool e usar pool_hba.conf  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  25. 25. Configurando os nós Em pgpool.conf  backend_hostname0 = 'srv01.dbservers.intranet'  backend_port0 = 5432  backend_weight0 = 1  backend_hostname1 = 'srv02.dbservers.intranet'  backend_port1 = 5432  backend_weight1 = 1  backend_hostname2 = 'srv03.dbservers.intranet'  backend_port2 = 5666  backend_weight2 = 1  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  26. 26. Gerenciando o pgpool-II Iniciando em primeiro plano  pgpool  Iniciando em segundo plano  pgpool -n -d > /var/log/pgpool.log 2>&1 &  Parando  pgpool stop  Parando imediatamente (arriscado)  pgpool -m fast stop  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  27. 27. Estrutura testada Blade Center ● Capacidade para 14 lâminas; ● Fonte de alimentação redundante e hot-swap; ● 02 x Switches SAN 4Gb/s; ● 02 x Switches Gigabit EthernetServer ● Connectivity com 14 portas internas e 6 portas externas; 2 lâminas JS21 – Servidor de Banco de Dados ● 2x PowerPC 970MP 2.5GHz / 2.3GHz Dual Core; ● 12 GB MEM PC2-3200 CL3 ECC DDR2 SDRAM RDIMM; ● 1xHBA ● 2 x HD de 73GB 10K SFF SAS; ● Dual Gigabit Ethernet Integrado; ● RAID-0 ou -1 integrado padrão no servidor blade, RAID-1E; 01 Storage IBM modelo DS4700 Express 2GB de cache; 9 x discos 300GB 2 Gbps, 10K RPM; Implementa RAID1+0; Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  28. 28. Testando Criar um banco de testes conectando no pgpool-II  createdb -p 9999 -h srvpool.dbservers.intranet replicacao  Popular o banco com o pgbench:  pgbench -i -s 3 -p 9999 -h srvpool.dbservers.intranet replicacao  Executar benchmarks nos servidores individuais e no pgpool-II:  pgbench -s 3 -p 5432 -h srv01.dbservers.intranet replicacao  Resultado obitido em TPS: ~ 1200  pgbench -s 3 -p 5432 -h srv02.dbservers.intranet replicacao  Resultado obitido em TPS: ~ 1200  pgbench -s 3 -p 5666 -h srv03.dbservers.intranet replicacao  Resultado obitido em TPS: ~ 1200  pgbench -s 3 -p 9999 -h srvpool.dbservers.intranet replicacao  Resultado obitido em TPS: ~ 900 (perda na replicação)  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  29. 29. Conclusão Não existe uma caixinha pronta chamada  replicação! Não existe almoço grátis!  Há vários custos envolvidos na replicação!  Entenda seus requisitos e como as diversas  alternativas se adéquam à eles! Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  30. 30. Contatos Dickson S. Guedes  Email e Gtalk: guedes@guedesoft.net  Home Page: http://guedesoft.net  IRC: Guedes em irc.freenode.net  #postgresql, #postgresql-br  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009

×