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!
2. Sobre o palestrante
DBA por profissão há mais de 10 anos;
Desenvolvedor por diversão;
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
6. Como identificar?
Acordo de Nível de Serviço
Requisitos não-funcionais
Carga transacional
Tempo de indisponibilidade (downtime)
Serviços parados impactam?
6quinta-feira, 4 de julho de 13
7. Objetivo
Aumentar o tempo médio entre falhas (MTBF)
Reduzir o tempo médio entre reparos (MTTR)
Minimizar a perda de dados
Prover escalabilidade
7quinta-feira, 4 de julho de 13
8. Objetivo
Reduzir SPOFs (pontos de falha)
Redução de downtime (período de inatividade)
Prover redundância (hardware e software)
8quinta-feira, 4 de julho de 13
11. Redundância
Provisionar hardware extra (preferencialmente com as
mesmas características)
Disponibilizar contingência de componentes de software e
serviços
Replicar informações e dados
11quinta-feira, 4 de julho de 13
12. Soluções de replicação
Disco compartilhado (não duplica os dados)
Réplica de storage
Cópia de sistema de arquivos
Replicação de instrução SQL
Replicação baseada em gatilhos
12quinta-feira, 4 de julho de 13
17. Agrupadores de conexão
Mantém um cache das conexões com o banco de dados
Desonera o impacto das conexões
Essencial quando existem muitas conexões (portal web, por
exemplo)
17quinta-feira, 4 de julho de 13
19. Replicação nativa no Postgres
Master/Slave
Arquivos de log de transação (WAL)
Warm standby
Hot standby
Streaming Replication ([as]síncrono SR)
Bases mais consistentes
Streaming de registros WAL (walsender/walreceiver)
19quinta-feira, 4 de julho de 13
21. Streaming Replication (cont.)
pg_basebackup -H <host> -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 serviço (LSB ou OCFs)
22quinta-feira, 4 de julho de 13
24. Bucardo – multimaster
Configuração 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í?
Replicação 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. Próximos eventos
Conferência 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