SlideShare ist ein Scribd-Unternehmen logo
1 von 30
PGDay Brasília 2009



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



Dickson S. Guedes
http://guedesoft.net
PGDay Brasília 2009
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Outros

        Postgres-R
    



        PGCluster
    




Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
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
        



        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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Mehr von Dickson S. Guedes

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLDickson S. Guedes
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Dickson S. Guedes
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLDickson S. Guedes
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDickson S. Guedes
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsDickson S. Guedes
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Dickson S. Guedes
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Dickson S. Guedes
 

Mehr von Dickson S. Guedes (20)

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQL
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quântica
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQL
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouse
 
Destistificando o EXPLAIN
Destistificando o EXPLAIN Destistificando o EXPLAIN
Destistificando o EXPLAIN
 
Falando "Postgrês"
Falando "Postgrês"Falando "Postgrês"
Falando "Postgrês"
 
Se meu elefante falasse
Se meu elefante falasseSe meu elefante falasse
Se meu elefante falasse
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
 
O Elefante Poliglota
O Elefante PoliglotaO Elefante Poliglota
O Elefante Poliglota
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logs
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQL
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvm
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQL
 
Pgxn.pgday
Pgxn.pgdayPgxn.pgday
Pgxn.pgday
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009
 

Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL

  • 1. PGDay Brasília 2009 Replicação e Alta-Disponibilidade é possível? Dickson S. Guedes http://guedesoft.net PGDay Brasília 2009
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Outros Postgres-R  PGCluster  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  • 22. Um exemplo... Configurando o pgpool-II  Dickson S. Guedes - http://guedesoft.net - PGDay Brasília 2009
  • 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. 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. 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. 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. 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. 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. 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. 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