Transcript of Replicação PostgreSQL com RepManager
- 1. PostgreSQL: Replicao com RepManager (repmgr) Vinicius
Vale
- 2. 2 Quem sou Bacharel em Cincia da Computao; MBA em BigData;
Especialista Postgresql; Especialista Java/Android; Devops pela
4Linux; Vinicius Aquino do Vale
- 3. 3 Conhecendo a 4Linux Metodologia IT Experience - Cenrios
reais Cursos prticos, rpidos e baratos de autores feras:
www.4shot.com.br Projetos complexos de misso crtica, com infra e
desenvolvimento PHP
- 4. 4 Cursos prticos, rpidos e baratos de autores feras
- 5. 5 Metodologia IT Experience Cenrios reais
- 6. 6 Lanamento 4Linux
- 7. 7 Ao final da minha palestra 02 Curso Online: Curso SQL para
Programadores Cdigo 4800. 01 Elephant.
- 8. 8 Ao final da minha palestra
- 9. 9 Agenda Replicao Nativa; Limitaes e Problemas; Um novo
mundo : RepMgr; Vantagens e Facilidades; Gerenciamento (replicao e
failover); Consideraes Finais;
- 10. 10 Replicao Nativa - Conceito Rplica? Pra qu? Vantagens:
Leituras (OLAP) Failover Desvantagens: Master->Slave
Gerenciamento (Virada)
- 11. 11 Passo a Passo Master: Criar usurio REPLICATION; Liberar
pg_hba; postgresql.conf: wal_level; wal_keep_segments;
max_wal_senders.
- 12. 12 Passo a Passo Slave (pg_basebackup): postgresql.conf:
hot_standby; max_standby_archive_delay;
max_standby_streaming_delay.
- 13. 13 Passo a Passo Slave: recovery.conf: standby_mode;
primary_conninfo; trigger_file.
- 14. 14 Limitaes e Problemas Tipos de Replicao Assncrona
(default); Sncrona;
- 15. 15 Limitaes e Problemas Rplica Assncrona (default): Perda
de algumas transaes;
- 16. 16 Limitaes e Problemas Rplica Sncrona: Slave parado =
Master Parado; Tempo total = master + trfego pela rede + slave +
retorno;
- 17. 17 Limitaes e Problemas Mltiplas rplicas: Novo Master; O
que eu fao com os meus slaves? O que eu fao com meu antigo
master?
- 18. 18 Repmgr: Um Novo mundo O que ? Desenvolvido pela
2ndQuadrant; Open-Source; Free; Verses: 2.0; 3.0.
- 19. 19 Vantagens e Facilidades Gerenciamento de Rplicas:
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 Gerenciamento (preparao Postgresql) Gerenciamento de
Rplicas: Usurio: $ 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 Gerenciamento (preparao Postgresql) Master
postgresql.conf: hot_standby = on; wal_level = hot_standby;
max_wal_senders; wal_keep_segments: 9.4 Utiliza slot de replicao;
9.3 Espera-se 5000 (80GB de WAL); archive_mode = on archive_command
= 'cd .'
- 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 Gerenciamento (repmgr.conf) use_replication_slots=1
conninfo='host=repmgr_node1 user=repmgr dbname=repmgr';
- 24. 24 Gerenciamento (repmgr) register Registrar os ns: $
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 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 Gerenciamento (repmgr)
- 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 Gerenciamento (repmgrd) Automatic Failover:
Witness;
- 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 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 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 Consideraes Finais Modelo nativo de replicao Dficil
gerenciamento Failover manual e complexo Falha humana Repmgr
Facilidade no gerenciamento Failover (manual ou automtico) Fcil
controle
- 33. 33 Boa Sorte!!
- 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