• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Alta disponibilidade com PostgreSQL
 

Alta disponibilidade com PostgreSQL

on

  • 1,281 views

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

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!

Statistics

Views

Total Views
1,281
Views on SlideShare
1,280
Embed Views
1

Actions

Likes
1
Downloads
21
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Alta disponibilidade com PostgreSQL Alta disponibilidade com PostgreSQL Presentation Transcript

    • Alta disponibilidade com PostgreSQL Leonardo Cezar, FISL #14 – Porto Alegre 1quinta-feira, 4 de julho de 13
    • 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
    • Agenda Alta disponibilidade Redundância Balanceamento de carga Arquitetura Ferramentas 3quinta-feira, 4 de julho de 13
    • O que é alta disponibilidade? Sistema resiliente com suporte e prevenção à falhas externas em seus subsistemas. 4quinta-feira, 4 de julho de 13
    • Princípios da AD Planejamento Redundância Persistência Simplicidade (KIS) 5quinta-feira, 4 de julho de 13
    • 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
    • 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
    • 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
    • Indisponibilidade Programada Manutenção, atualização Não programada Falha de rede Falha de software Falha de hardware 9quinta-feira, 4 de julho de 13
    • Indisponibilidade não 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 indisponíveis 10quinta-feira, 4 de julho de 13
    • 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
    • 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
    • Utilitários 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
    • Qual utilizar? Depende... :-) Requisitos funcionais Maturidade da solução Suporte 14quinta-feira, 4 de julho de 13
    • Balanceamento de carga Distribuição de carga em múltiplos servidores Hot Standby (servidor em modo leitura) 15quinta-feira, 4 de julho de 13
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Arquitetura SR 23quinta-feira, 4 de julho de 13
    • 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
    • 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
    • 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
    • Obrigado! lhcezar lhcezar lhcezar 27quinta-feira, 4 de julho de 13