alta disponibilidade com postgresql

Download Alta disponibilidade com PostgreSQL

Post on 05-Jul-2015

1.356 views

Category:

Technology

11 download

Embed Size (px)

DESCRIPTION

Esta palestra demonstra alguns elementos relacionados à alta disponibilidade com PostgreSQL. São discutidos assuntos como redundância, replicação e utilitários de gerenciamento de ambientes de contingência: log shipping, WAL, streaming replication e outros. Espero que seja útil, faça uma boa leitura e qualquer dúvida contate-me!

TRANSCRIPT

  • 1. Alta disponibilidade com PostgreSQL Leonardo Cezar, FISL #14 Porto Alegre 1quinta-feira, 4 de julho de 13

2. Sobre o palestrante DBA por prosso h mais de 10 anos; Desenvolvedor por diverso; Colaborador em alguns projetos opensource notavelmente relacionados ao PostgreSQL; Colaborador (quase ausente) na comunidade PostgreSQL Brasil. Atualmente trabalhando na DATAPREV Dados Abertos; GIS; Big Data; BI; PostgreSQL 2quinta-feira, 4 de julho de 13 3. Agenda Alta disponibilidade Redundncia Balanceamento de carga Arquitetura Ferramentas 3quinta-feira, 4 de julho de 13 4. O que alta disponibilidade? Sistema resiliente com suporte e preveno falhas externas em seus subsistemas. 4quinta-feira, 4 de julho de 13 5. Princpios da AD Planejamento Redundncia Persistncia Simplicidade (KIS) 5quinta-feira, 4 de julho de 13 6. Como identicar? Acordo de Nvel de Servio Requisitos no-funcionais Carga transacional Tempo de indisponibilidade (downtime) Servios parados impactam? 6quinta-feira, 4 de julho de 13 7. Objetivo Aumentar o tempo mdio entre falhas (MTBF) Reduzir o tempo mdio entre reparos (MTTR) Minimizar a perda de dados Prover escalabilidade 7quinta-feira, 4 de julho de 13 8. Objetivo Reduzir SPOFs (pontos de falha) Reduo de downtime (perodo de inatividade) Prover redundncia (hardware e software) 8quinta-feira, 4 de julho de 13 9. Indisponibilidade Programada Manuteno, atualizao No programada Falha de rede Falha de software Falha de hardware 9quinta-feira, 4 de julho de 13 10. Indisponibilidade no programada 0 5 10 15 20 95,00% 96,00% 97,00% 98,00% 99,00% 99,9% 18 14 10 7 3 0 dias indisponveis 10quinta-feira, 4 de julho de 13 11. Redundncia Provisionar hardware extra (preferencialmente com as mesmas caractersticas) Disponibilizar contingncia de componentes de software e servios Replicar informaes e dados 11quinta-feira, 4 de julho de 13 12. Solues de replicao Disco compartilhado (no duplica os dados) Rplica de storage Cpia de sistema de arquivos Replicao de instruo SQL Replicao baseada em gatilhos 12quinta-feira, 4 de julho de 13 13. Utilitrios Bucardo PgClusterRubyRep PyReplicaLog Shipping Londiste Postgres-XC Slony XDB repmgr Streaming Replication OMNIpitr Sequoia DRBD PgPool-II Wal-E 13quinta-feira, 4 de julho de 13 14. Qual utilizar? Depende... :-) Requisitos funcionais Maturidade da soluo Suporte 14quinta-feira, 4 de julho de 13 15. Balanceamento de carga Distribuio de carga em mltiplos servidores Hot Standby (servidor em modo leitura) 15quinta-feira, 4 de julho de 13 16. PgPool-II pgpool.conf backend_hostname0 = node1 backend_weight0 = 1 backend_hostname1 = node2 backend_weight1 = 1 replication_mode = false master_slave_mode = true master_slave_sub_mode = stream load_balance_mode = true enable_query_cache = true 16quinta-feira, 4 de julho de 13 17. Agrupadores de conexo Mantm um cache das conexes com o banco de dados Desonera o impacto das conexes Essencial quando existem muitas conexes (portal web, por exemplo) 17quinta-feira, 4 de julho de 13 18. PgBouncer pgbouncer.ini [databases] dbfoo = host=localhost dbname=postgres listen_addr = * [pgbouncer] pool_mode = transaction min_pool_size = 2000 [...] 18quinta-feira, 4 de julho de 13 19. Replicao nativa no Postgres Master/Slave Arquivos de log de transao (WAL) Warm standby Hot standby Streaming Replication ([as]sncrono SR) Bases mais consistentes Streaming de registros WAL (walsender/walreceiver) 19quinta-feira, 4 de julho de 13 20. Streaming Replication postgresql.conf wal_level = hot_standby max_wal_senders = 5 wal_keep_segments = 32 archive_command = rsync %p foo@bar:/ archive/%f 20quinta-feira, 4 de julho de 13 21. Streaming Replication (cont.) pg_basebackup -H -R -D $PGDATA recovery.conf primary_conninfo = host=node1 pg_ctl start pg_ctl promote # switchover 21quinta-feira, 4 de julho de 13 22. Sistema operacional AD Pacemaker gerenciador de recursos Corosync Camada de mensagens Resource Agent (RA) Scripts para controle do servio (LSB ou OCFs) 22quinta-feira, 4 de julho de 13 23. Arquitetura SR 23quinta-feira, 4 de julho de 13 24. Bucardo multimaster Congurao bucardo # aptitude install bucardo # bucardo install # bucardo add database foo host=node1 # bucardo add database bar host=node2 # bucardo add all tables db=foo # bucardo add sync foobar source=default targetdb=bar # bucardo start 24quinta-feira, 4 de julho de 13 25. O que vem por a? Replicao multimaster nativa BIDR (BiDirection Replication) LLSR (Logical Log Streaming Replication) 1o. passo postgres 9.3 fast failover arquitetura independente e remastering BgWorkers customizados 25quinta-feira, 4 de julho de 13 26. Prximos eventos Conferncia PostgreSQL PGBR 2013 (antigo PgCon) 15-17, agosto Brasil, Porto Velho, RO http://pgbr.postgresql.org.br Postgres Open 2013; 16-18, setembro, Chicago, US http://postgresopen.org/ PostgreSQL Conference Europe, Dublin, Ireland http://2013.pgconf.eu/ 26quinta-feira, 4 de julho de 13 27. Obrigado! lhcezar lhcezar lhcezar 27quinta-feira, 4 de julho de 13