Sistema de Replicación de DBs de PostgreSQL 9.0

9,390 views

Published on

Esta presentación explica el funcionamiento interno del sistema de replicación de base de datos incluido en la versión 9.0 de PostgreSQL

Published in: Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,390
On SlideShare
0
From Embeds
0
Number of Embeds
4,394
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Sistema de Replicación de DBs de PostgreSQL 9.0

  1. 1. Destripando el sistemade replicación dePostgreSQL 9.0 Ernesto Quiñones A. - CTO Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  2. 2. ¡Advertencia!Esta charla es para explicar como funciona por dentro elsistema de replicación de PostgreSQL 9.0 no paraenseñar a instalar un sistema de replicación.¿Porque? Lo otro lo pueden aprender leyendo el manual. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  3. 3. ¿Que es un sistema de replicación de base de datos? En simple: es mantener una 2da base de datos alterna con la data idéntica a la principal. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  4. 4. ¿Porque debería tener un sistema de replicación para midbms?● Para tener un sistema tolerable a fallas.● Para balancear la carga de trabajo en diversos servidores.● Para aplicaciones de alto consumo en consultas (B.I.)● Para tener un ambiente de pruebas o desarrollo lo más parecido al ambiente de producción.● Muchas otras que se puedan imaginar ….. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  5. 5. OK ¿Por donde empezamos? Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  6. 6. Características de la replicación interna de PgSQL 9.0Es Streaming Replication Hot Standby● No requiere hardware especial● No requiere de servidores/servicios especiales● No sobrecarga el servidor principal● No requiere de un sistema de resolución de conflictos (al menos no adicionales al que ya implementa la base de datos)● Si se cayera la replicación al menos tendré acceso de lectura● Point-In-Time Recovery, es decir permite recuperar la data al tiempo pasado más cercano donde esta se encuentre bien.● Usa WAL como método de cache, esta técnica permite asegurar que solo las operaciones bien realizadas actualicen la data (atomicidad y durabilidad). Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  7. 7. ¿Qué no hay?● Múltiples servidores maestros/principales● Asegurar que ante una falla el servidor principal nunca va a perder la data● Controlar la replicación a nivel de tablas Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  8. 8. ¿Como funciona?En simple es: Servidor primario Servidor secundario Conexión de red pg_xlog/ pg_xlog/ WAL Traspasando WAL datos Data Data Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  9. 9. El WAL es...Básicamente es un buffer donde se llevan a cabo lasoperaciones a la data y una vez terminada se pasan alalmacenamiento de datos principal, si algo pasaraentonces el área de datos permanecerá intacto solo seperderá lo que esta en el WAL.WAL genera segmentos de data de 16mb (configurable)en archivos físicos que tiene páginas de datos de 8kb(configurable). Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  10. 10. El WAL es...typedef struct XLogRecord{ pg_crc32 xl_crc; /* CRC for this record */ XLogRecPtr xl_prev; /* ptr to previous record in log */ TransactionId xl_xid; /* xact id */ uint32 xl_tot_len; /* total len of entire record */ uint32 xl_len; /* total len of rmgr data */ uint8 xl_info; /* flag bits, see below */ RmgrId xl_rmid; /* resource manager for this record */} XLogRecord;typedef struct XLogRecData{ char *data; /* start of rmgr data to include */ uint32 len; /* length of rmgr data to include */ Buffer buffer; /* buffer associated with data, if any */ bool buffer_std; /* buffer has standard pd_lower/pd_upper */ struct XLogRecData *next; /* next struct in chain, or NULL */} XLogRecData;typedef struct CheckpointStatsData{ TimestampTz ckpt_start_t; /* start of checkpoint */ TimestampTz ckpt_write_t; /* start of flushing buffers */ TimestampTz ckpt_sync_t; /* start of fsyncs */ TimestampTz ckpt_sync_end_t; /* end of fsyncs */ TimestampTz ckpt_end_t; /* end of checkpoint */ int ckpt_bufs_written; /* # of buffers written */ int ckpt_segs_added; /* # of new xlog segments created */ int ckpt_segs_removed; /* # of xlog segments deleted */ int ckpt_segs_recycled; /* # of xlog segments recycled */} CheckpointStatsData; Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  11. 11. El WAL es...Una ventaja del WAL es que puede residir en cualquier directorio ypodemos hacer un enlace simbólico al directorio donde deberíaresidir.En caso de que suceda un problema el WAL puede retroceder haciael pasado hasta el último momento en que todo estuvo ok. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  12. 12. El WAL es...WAL maneja varios niveles para especificar que tanto deseoalmacenar en este buffer en el nivel mínimo solo contieneinformación para recuperar una db en caso de paradas abruptas delservicio.Para realizar la replicación requerimos aumentar el nivel de WALpara reconstruir toda la data de una db. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  13. 13. El primer paso: indicar donde “copiaremos el WAL”En los archivos de configuración debemos indicar donde vamos a duplicarnuestros WAL files tomaremos en cuenta que debe existir unacomunicación en ese file system entre los 2 servidores.Se puede usar NFS para ello, quizás (aún no lo he probado) podría usarseSSHFS como una forma más sencilla.Para asegurar que se copiarán todas las transacciones haremos que semantenga un buen numero de segmentos WAL historicamente, pasar datapor red tiene una demora importante que debemos tener en cuenta. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  14. 14. El primer paso: indicar donde “copiaremos el WAL” Servidor Servidor Principal Replica NFS NFS Client ó ó Conexión SSH LAN SSHFS Server client NFS: SSHFS: * Más complicado de configurar * Más simple de configurar * Más rápido porque funciona a nivel * Más lento que NFS, 1 a 2, porque de protocolo más bajo y coordinado funciona en capa más alta de tcp/ip con el kernel. y básicamente es un SCP. * ¿Menos seguro en la transmisión? * ¿Más seguro en la transmisión? Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  15. 15. El segundo paso: reconstruir la imagen inicial de la db enel servidor de destino. La Herramienta más popular para esto es Rsync. Rsync trabaja en base a deltas binarios para determinar los cambios bit a bit entre 2 árboles de directorio y los files que este contiene. Se saca un checksum (md5) de los contenidos para verificar contra el espejo que es lo que ha cambiado.En los 2 anteriores pasos mencionados hasta el momento existen algunasventajas, estamos limitados a replicar únicamente a un solo servidor, podemosrealizar esto en varios y en cascada, otra es que podemos hacer esto casi encaliente. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  16. 16. Tercer paso: configurar el servidor réplica solo comoservidor de consulta.Dado que las transacciones se manejarán en el servidor principalen las réplicas no podemos más que procesar consultas, ambosservicios no pueden escribir en la zona del WAL.Esto es un servidor HOTSTANDBY Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  17. 17. HOTSTANDBYHotstandby permite a PostgreSQL correr querys solo de consulta, deforma generica el estado Hotstandby permite recuperarse hasta un estadoconsistente a una db mientras esta sigue atendiendo conexiones.En la replica podemos ejecutar estos tipos de queries: Query access - SELECT, COPY TO Cursor commands - DECLARE, FETCH, CLOSE Parameters - SHOW, SET, RESET Transaction management commands BEGIN, END, ABORT, START TRANSACTION SAVEPOINT, RELEASE, ROLLBACK TO SAVEPOINT EXCEPTION blocks and other internal subtransactions LOCK TABLE, though only when explicitly in one of these modes: ACCESS SHARE, ROW SHARE or ROW EXCLUSIVE. Plans and resources - PREPARE, EXECUTE, DEALLOCATE, DISCARD Plugins and extensions - LOAD Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  18. 18. HOTSTANDBYUno podría iniciar una transacción pero el sistema nunca le asignará unespacio en el WAL por lo tanto nunca se grabará nadaLos principales problemas que se pueden presentar son:● Locks de Accesos Exclusivos en el servidor principal que bloquean tablas en la réplica.● Borrar tablespace en el servidor principal que crean conflictos con queries que los usan en la réplica.● Borrar una base de datos en el servidor principal y que en la replica existan conexiones a esta db.● Correr un full vacuum mientras el WAL de la réplica aún tiene visible la fila.● El mismo caso del anterior pero un query tiene acceso a las páginas a borrar. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  19. 19. HOTSTANDBYEn la mayoría de los casos el problema genera un delay, este puede ser demasiadogrande debido al control de concurrencias por ejemplo:* servidor réplica lanza un query con lock exclusivo sobre una tabla enorme que toma 15”* llega un drop table del servidor primario* servidor réplica sigue procesando el query* servidor primario sigue trabajando normalmente* servidor replica tiene paradas las transacciones replicadas del servidor primario hasta que no acabe el query en la réplica* termina el query en el servidor réplica y por fin aplica los otros cambios encolados* tenemos 15” minutos de retraso … si es que no pasa de nuevoPara ello es deseable configurar el tiempo de espera para procesar el WALy no tener este tipo de problemas, los queries que sobrepasen este tiemposerán abortados. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  20. 20. ¿Qué falta?Pues nada, iniciar el servidor réplica, durante este inicio ymientras la db se “sincroniza” con el servidor principal lasconexiones de clientes no estarán disponibles hasta que sellegue a un punto en el cual la información ya es consistente.Luego de este paso todo esta listo, tenemos un servidor deréplica corriendo :-) Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  21. 21. Toda la documentación de esta exposición la pueden encontrar aquí : http://tinyurl.com/3wuugpq O en simple: http//www.eqsoft.net/wiki (sección Nuestras Ponencias) Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  22. 22. Gracias por su tiempo. Eq Soft Consultoría y Soporte E.I.R.L.Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net

×