Replicação PostgreSQL com RepManager

Download Replicação PostgreSQL com RepManager

Post on 14-Aug-2015

227 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

<ol><li> 1. PostgreSQL: Replicao com RepManager (repmgr) Vinicius Vale </li><li> 2. 2 Quem sou Bacharel em Cincia da Computao; MBA em BigData; Especialista Postgresql; Especialista Java/Android; Devops pela 4Linux; Vinicius Aquino do Vale </li><li> 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 </li><li> 4. 4 Cursos prticos, rpidos e baratos de autores feras </li><li> 5. 5 Metodologia IT Experience Cenrios reais </li><li> 6. 6 Lanamento 4Linux </li><li> 7. 7 Ao final da minha palestra 02 Curso Online: Curso SQL para Programadores Cdigo 4800. 01 Elephant. </li><li> 8. 8 Ao final da minha palestra </li><li> 9. 9 Agenda Replicao Nativa; Limitaes e Problemas; Um novo mundo : RepMgr; Vantagens e Facilidades; Gerenciamento (replicao e failover); Consideraes Finais; </li><li> 10. 10 Replicao Nativa - Conceito Rplica? Pra qu? Vantagens: Leituras (OLAP) Failover Desvantagens: Master-&gt;Slave Gerenciamento (Virada) </li><li> 11. 11 Passo a Passo Master: Criar usurio REPLICATION; Liberar pg_hba; postgresql.conf: wal_level; wal_keep_segments; max_wal_senders. </li><li> 12. 12 Passo a Passo Slave (pg_basebackup): postgresql.conf: hot_standby; max_standby_archive_delay; max_standby_streaming_delay. </li><li> 13. 13 Passo a Passo Slave: recovery.conf: standby_mode; primary_conninfo; trigger_file. </li><li> 14. 14 Limitaes e Problemas Tipos de Replicao Assncrona (default); Sncrona; </li><li> 15. 15 Limitaes e Problemas Rplica Assncrona (default): Perda de algumas transaes; </li><li> 16. 16 Limitaes e Problemas Rplica Sncrona: Slave parado = Master Parado; Tempo total = master + trfego pela rede + slave + retorno; </li><li> 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? </li><li> 18. 18 Repmgr: Um Novo mundo O que ? Desenvolvido pela 2ndQuadrant; Open-Source; Free; Verses: 2.0; 3.0. </li><li> 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. </li><li> 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; </li><li> 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 .' </li><li> 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; </li><li> 23. 23 Gerenciamento (repmgr.conf) use_replication_slots=1 conninfo='host=repmgr_node1 user=repmgr dbname=repmgr'; </li><li> 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 </li><li> 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. </li><li> 26. 26 Gerenciamento (repmgr) </li><li> 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. </li><li> 28. 28 Gerenciamento (repmgrd) Automatic Failover: Witness; </li><li> 29. 29 Gerenciamento (repmgrd) Postgresql.conf: shared_preload_libraries = 'repmgr_funcs'; psql -f /usr/share/postgresql/9.0/contrib/repmgr_funcs.sql repmgr_db. </li><li> 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'. </li><li> 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 &gt; repmgr.log 2&gt;&amp;1. </li><li> 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 </li><li> 33. 33 Boa Sorte!! </li><li> 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 </li></ol>