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.

PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira

385 views

Published on

Como utilizar o PgBouncer para reforçar a segurança do seu banco de dados e ganhar a capacidade de fazer um Disaster Recovery transparente sem ter que mexer na sua aplicação e no seu banco de dados. Ah, ele também é um pool de conexões.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira

  1. 1. PgBouncer Felipe Pereira
  2. 2. SEGURANÇA DISASTER RECOVERY POOL DE CONEXÕES OPEN SOURCE DESEMPENHO PGBOUNCER ARQUITETURA
  3. 3. Segurança
  4. 4. Segurança Usuário possui a senha do banco de dados Usuário acessa o IP do banco de dados Usuário é Super User
  5. 5. Segurança Usuário não possui a senha do banco de dados Usuário não acessa o IP do banco de dados Usuário não é Super User
  6. 6. Segurança Arquitetura de acesso
  7. 7. Segurança No Banco de Dados: No .userlist:
  8. 8. Segurança No pgbouncer.ini:
  9. 9. Segurança No pgbouncer.ini:
  10. 10. Disaster Recovery
  11. 11. Disaster Recovery Single Point of Failure O ponto único de falha é responsável pela fraqueza de toda a estratégia de DR e por isso deve ser evitado.
  12. 12. Disaster Recovery
  13. 13. Configuração padrão:
  14. 14. Nova configuração: Reload Online:
  15. 15. Pool de Conexões
  16. 16. Pool de Conexões Desperdício de conexões Desperdício de recursos Escalonamento Performance
  17. 17. Desperdício de Conexões
  18. 18. Desperdício de Recursos
  19. 19. Escalonamento
  20. 20. Performance -10% / +40%
  21. 21. Session x Transaction x Statement
  22. 22. Transaction Tabelas temporárias que guardam estado de sessão CURRVAL de Sequences utilizadas em transações anteriores Plugins/Extensions
  23. 23. Cache de Conexões Tráfego de rede Um ponto a mais na arquitetura Overhead de iniciar uma conexão Autenticação Criação de processo no servidor
  24. 24. Cache de Conexões 0.03ms 0.06ms 0.74ms
  25. 25. ONDE INSTALAR?
  26. 26. Onde Instalar? 731 694 739 406
  27. 27. CONFIGURAÇÕES
  28. 28. Configurações Max_Client_Conn É o máximo de client connections permitido da aplicação para o PgBouncer. Lembrar de configurar também o file descriptor limit. Default_Pool_Size O tamanho máximo do pool para cada banco de dados configurado. Min_Pool_Size É a quantidade de conexões que o Bouncer Max_Db_Connections Número máximo de conexões ao servidor de banco de dados, independentemente da quantidade de pools configurada para o mesmo db/server.
  29. 29. Configurações Server_Lifetime O PgBouncer irá matar as conexões que existirem por mais tempo do que o configurado neste parâmetro (em segundos). Server_Idle_Timeout Se a conexão estiver Idle por mais do que o configurado neste parâmetro, a mesma será encerrada. Client_Login_Timeout A conexão do cliente ao PgBouncer será encerrada se o login não for feito dentro do tempo configurado (em segundos).
  30. 30. Configurações Perigosas Query_Timeout Queries que estiverem executando por mais tempo do que o configurado, serão encerradas. Lembre-se de relatórios, cargas de dados, etc. Query_Wait_Timeout Ao ser enfileirada para esperar a execução, a query irá esperar o tempo configurado neste parâmetro, após isso será morta. Se desabilitado, as queries esperam em fila indefinidamente. Client_Idle_Timeout Se a conexão entre cliente e PgBouncer estiver idle por este tempo, a conexão será derrubada. Idle_Transaction_Timeout Se a conexão entre PgBouncer e DB estiver em “idle in transaction” por este tempo, a conexão será derrubada.
  31. 31. Obrigado! Felipe Pereira felipe.pereira@dextra.com.br

×