PostgreSQL: Replicação com
RepManager (repmgr)
Vinicius Vale
2
Quem sou
➢Bacharel em Ciência da
Computação;
➢MBA em BigData;
➢Especialista Postgresql;
➢Especialista Java/Android;
➢Dev...
3
Conhecendo a 4Linux
➢ Metodologia IT Experience - Cenários reais
➢ Cursos práticos, rápidos e baratos de
autores feras: ...
4
Cursos práticos, rápidos e baratos de
autores feras
5
Metodologia IT Experience
Cenários reais
6
Lançamento 4Linux
7
Ao final da minha palestra
➢ 02 Curso Online:
➢ Curso SQL para Programadores – Código
4800.
➢ 01 Elephant.
8
Ao final da minha palestra
9
Agenda
➢Replicação Nativa;
➢Limitações e Problemas;
➢Um novo mundo : RepMgr;
➢Vantagens e Facilidades;
➢Gerenciamento (r...
10
Replicação Nativa - Conceito
➢Réplica? Pra quê?
Vantagens:
➢Leituras (OLAP)
➢Failover
Desvantagens:
➢Master->Slave
➢Ger...
11
Passo a Passo
Master:
➢ Criar usuário – REPLICATION;
➢ Liberar pg_hba;
➢ postgresql.conf:
➢wal_level;
➢wal_keep_segment...
12
Passo a Passo
Slave (pg_basebackup):
➢ postgresql.conf:
➢hot_standby;
➢max_standby_archive_delay;
➢max_standby_streamin...
13
Passo a Passo
Slave:
➢ recovery.conf:
➢standby_mode;
➢primary_conninfo;
➢trigger_file.
14
Limitações e Problemas
➢Tipos de Replicação
➢Assíncrona (default);
➢Síncrona;
15
Limitações e Problemas
➢ Réplica Assíncrona (default):
➢ Perda de algumas transações;
16
Limitações e Problemas
➢ Réplica Síncrona:
➢ Slave parado = Master Parado;
➢ Tempo total = master + tráfego pela rede +...
17
Limitações e Problemas
Múltiplas réplicas:
➢ Novo Master;
➢ O que eu faço com os meus slaves?
➢ O que eu faço com meu a...
18
Repmgr: Um Novo mundo
➢ O que é?
➢ Desenvolvido pela 2ndQuadrant;
➢ Open-Source;
➢ Free;
➢ Versões:
➢ 2.0;
➢ 3.0.
19
Vantagens e Facilidades
Gerenciamento de Réplicas:
➢ Monitoramento:
➢$ repmgr cluster show;
Role | Connection String
* ...
20
Gerenciamento (preparação Postgresql)
Gerenciamento de Réplicas:
➢ Usuário:
➢$ createuser -s repmgr_usr;
➢ Database:
➢$...
21
Gerenciamento (preparação Postgresql)
➢ Master – postgresql.conf:
➢ hot_standby = on;
➢ wal_level = hot_standby;
➢ max_...
22
Gerenciamento (repmgr.conf)
➢ Local Recomendado:
➢ /etc/repmgr/repmgr.conf;
➢ repmgr.conf:
➢ cluster=DBZ (mesmo para to...
23
Gerenciamento (repmgr.conf)
➢ use_replication_slots=1
➢ conninfo='host=repmgr_node1 user=repmgr dbname=repmgr';
24
Gerenciamento (repmgr)
➢ register – Registrar os nós:
➢ $ repmgr -f repmgr.conf --verbose master register;
➢ $ repmgr -...
25
Gerenciamento (repmgr)
➢ promote – Promover um novo master:
➢ $ repmgr -f repmgr.conf --verbose standby promote;
➢ foll...
26
Gerenciamento (repmgr)
27
Gerenciamento (repmgr)
➢ Converter master com problemas para standby:
➢ $ repmgr -f repmgr.conf --force --rsync-only -h...
28
Gerenciamento (repmgrd)
➢ Automatic Failover:
➢ Witness;
29
Gerenciamento (repmgrd)
➢ Postgresql.conf:
➢ shared_preload_libraries = 'repmgr_funcs';
➢ psql -f /usr/share/postgresql...
30
Gerenciamento (repmgrd)
➢ repmgr.conf:
➢ master_response_timeout;
➢ reconnect_attempts;
➢ reconnect_interval;
➢ failove...
31
Gerenciamento (repmgrd)
➢ Iniciando Witness
➢ repmgr -d repmgr_db -U repmgr_usr -h IP_MASTER -D
$WITNESS_PGDATA -f repm...
32
Considerações Finais
● Modelo nativo de replicação
● Díficil gerenciamento
● Failover manual e complexo
– Falha humana
...
33
Boa Sorte!!
34
Vinicius Vale
vinicius.aquino@4linux.com.br
aquino.vale@gmail.com
www.4linux.com.br
www.4shot.com.br
www.viniciusvale.c...
Próximos SlideShares
Carregando em…5
×

Replicação PostgreSQL com RepManager

944 visualizações

Publicada em

Palestra sobre Replicação PostgreSQL com repmanager. O evento ocorreu em Porto Alegre na data de 09/07/2015 no FISL 16.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
944
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
21
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • RankDone será lançado em Agosto e tem como objetivo fazer o rankeamento de candidados para vagas técnicas
  • Outras altetrnativas – Como crescimento vertical, maior capacidade de IO e ferramentas especificas para ambientes OLTP
    * Bucardo
    * Postgres-XC
    * Postgres-XL
  • Total de slaves + 1
    hot_standby – sera mudado por causa dos slaves
    Não obrigatorio, porem recomendado
  • pg_ctl e pg_basebackup não estiverem no PATH.
  • Nunca use localhost no host;
    user/dbname devem ser os mesmos para todos os hosts;
    Outros parametros podem ser diferentes.
  • 1 - Master deve ser registrado primeiro.
    2 – Antes de registar o slave deve-se preparar o standby
  • * Witness porta - (port 5499)
    * Daemon deve estar em todos os servidores envolvidos.
  • Replicação PostgreSQL com RepManager

    1. 1. PostgreSQL: Replicação com RepManager (repmgr) Vinicius Vale
    2. 2. 2 Quem sou ➢Bacharel em Ciência da Computação; ➢MBA em BigData; ➢Especialista Postgresql; ➢Especialista Java/Android; ➢Devops pela 4Linux; Vinicius Aquino do Vale
    3. 3. 3 Conhecendo a 4Linux ➢ Metodologia IT Experience - Cenários reais ➢ Cursos práticos, rápidos e baratos de autores feras: www.4shot.com.br ➢ Projetos complexos de missão crítica, com infra e desenvolvimento PHP
    4. 4. 4 Cursos práticos, rápidos e baratos de autores feras
    5. 5. 5 Metodologia IT Experience Cenários reais
    6. 6. 6 Lançamento 4Linux
    7. 7. 7 Ao final da minha palestra ➢ 02 Curso Online: ➢ Curso SQL para Programadores – Código 4800. ➢ 01 Elephant.
    8. 8. 8 Ao final da minha palestra
    9. 9. 9 Agenda ➢Replicação Nativa; ➢Limitações e Problemas; ➢Um novo mundo : RepMgr; ➢Vantagens e Facilidades; ➢Gerenciamento (replicação e failover); ➢Considerações Finais;
    10. 10. 10 Replicação Nativa - Conceito ➢Réplica? Pra quê? Vantagens: ➢Leituras (OLAP) ➢Failover Desvantagens: ➢Master->Slave ➢Gerenciamento (Virada)
    11. 11. 11 Passo a Passo Master: ➢ Criar usuário – REPLICATION; ➢ Liberar pg_hba; ➢ postgresql.conf: ➢wal_level; ➢wal_keep_segments; ➢max_wal_senders.
    12. 12. 12 Passo a Passo Slave (pg_basebackup): ➢ postgresql.conf: ➢hot_standby; ➢max_standby_archive_delay; ➢max_standby_streaming_delay.
    13. 13. 13 Passo a Passo Slave: ➢ recovery.conf: ➢standby_mode; ➢primary_conninfo; ➢trigger_file.
    14. 14. 14 Limitações e Problemas ➢Tipos de Replicação ➢Assíncrona (default); ➢Síncrona;
    15. 15. 15 Limitações e Problemas ➢ Réplica Assíncrona (default): ➢ Perda de algumas transações;
    16. 16. 16 Limitações e Problemas ➢ Réplica Síncrona: ➢ Slave parado = Master Parado; ➢ Tempo total = master + tráfego pela rede + slave + retorno;
    17. 17. 17 Limitações e Problemas Múltiplas réplicas: ➢ Novo Master; ➢ O que eu faço com os meus slaves? ➢ O que eu faço com meu antigo master?
    18. 18. 18 Repmgr: Um Novo mundo ➢ O que é? ➢ Desenvolvido pela 2ndQuadrant; ➢ Open-Source; ➢ Free; ➢ Versões: ➢ 2.0; ➢ 3.0.
    19. 19. 19 Vantagens e Facilidades Gerenciamento de Réplicas: ➢ Monitoramento: ➢$ repmgr cluster show; Role | Connection String * master | host=node1 user=repmgr_usr dbname=repmgr_db password=123456 standby | host=node2 user=repmgr_usr dbname=repmgr_db password=123456 ➢ Failover (daemon repmgrd); ➢ Failback.
    20. 20. 20 Gerenciamento (preparação Postgresql) Gerenciamento de Réplicas: ➢ Usuário: ➢$ createuser -s repmgr_usr; ➢ Database: ➢$ createdb repmgr_db -O repmgr_usr; ➢ pg_hba.conf: ➢host repmgr_db repmgr_usr ip/24 trust; ➢host replication repmgr_usr ip/24 trust;
    21. 21. 21 Gerenciamento (preparação Postgresql) ➢ Master – postgresql.conf: ➢ hot_standby = on; ➢ wal_level = hot_standby; ➢ max_wal_senders; ➢ wal_keep_segments: ➢9.4 – Utiliza slot de replicação; ➢9.3 – Espera-se 5000 (80GB de WAL); ➢ archive_mode = on ➢ archive_command = 'cd .'
    22. 22. 22 Gerenciamento (repmgr.conf) ➢ Local Recomendado: ➢ /etc/repmgr/repmgr.conf; ➢ repmgr.conf: ➢ cluster=DBZ (mesmo para todos os hosts); ➢ node=1 (integer – único); ➢ node_name=node1 (único); ➢ pg_bindir=/path/to/postgres/bin;
    23. 23. 23 Gerenciamento (repmgr.conf) ➢ use_replication_slots=1 ➢ conninfo='host=repmgr_node1 user=repmgr dbname=repmgr';
    24. 24. 24 Gerenciamento (repmgr) ➢ register – Registrar os nós: ➢ $ repmgr -f repmgr.conf --verbose master register; ➢ $ repmgr -f repmgr.conf --verbose standby register; ➢ clone – Preparar standby: ➢ $ repmgr -D $PGDATA -f repmgr.conf -d repmgr_db -U repmgr_usr --verbose standby clone IP_MASTER
    25. 25. 25 Gerenciamento (repmgr) ➢ promote – Promover um novo master: ➢ $ repmgr -f repmgr.conf --verbose standby promote; ➢ follow – Seguir novo master: ➢ $ repmgr -f repmgr.conf --verbose standby follow.
    26. 26. 26 Gerenciamento (repmgr)
    27. 27. 27 Gerenciamento (repmgr) ➢ Converter master com problemas para standby: ➢ $ repmgr -f repmgr.conf --force --rsync-only -h novo_master -d repmgr_db -U repmgr_usr --verbose standby clone; ➢ Registar o nó novamente: ➢ $ repmgr -f repmgr.conf --force standby register.
    28. 28. 28 Gerenciamento (repmgrd) ➢ Automatic Failover: ➢ Witness;
    29. 29. 29 Gerenciamento (repmgrd) ➢ Postgresql.conf: ➢ shared_preload_libraries = 'repmgr_funcs'; ➢ psql -f /usr/share/postgresql/9.0/contrib/repmgr_funcs.sql repmgr_db.
    30. 30. 30 Gerenciamento (repmgrd) ➢ repmgr.conf: ➢ master_response_timeout; ➢ reconnect_attempts; ➢ reconnect_interval; ➢ failover=[automatic|manual]; ➢ promote_command='promote_command.sh'; ➢ follow_command='repmgr standby follow -f repmgr.conf'.
    31. 31. 31 Gerenciamento (repmgrd) ➢ Iniciando Witness ➢ repmgr -d repmgr_db -U repmgr_usr -h IP_MASTER -D $WITNESS_PGDATA -f repmgr.conf witness create; ➢ Daemon: ➢ $ repmgrd -f repmgr.conf --daemonize > repmgr.log 2>&1.
    32. 32. 32 Considerações Finais ● Modelo nativo de replicação ● Díficil gerenciamento ● Failover manual e complexo – Falha humana ● Repmgr ● Facilidade no gerenciamento ● Failover (manual ou automático) – Fácil controle
    33. 33. 33 Boa Sorte!!
    34. 34. 34 Vinicius Vale vinicius.aquino@4linux.com.br aquino.vale@gmail.com www.4linux.com.br www.4shot.com.br www.viniciusvale.com Sigam-nos @4linux

    ×