Streaming Replication y Hot Standby en PostgreSQL

Streaming Replication (SR) y Hot Standby (HS) son dos de las características más importantes que tiene PostgreSQL desde la versión 9.0.

Estas características implementan en el núcleo de PostgreSQL lo necesario para instalar un sistema de replicación asincrónica maestro-esclavo (master-slave), en el que los nodos esclavos se pueden utilizar para realizar consultas de solo lectura.

Un sistema de replicación de estas caracteristicas se podrá usar tanto para añadir redundancia a nuestras bases de datos, como para descargar de trabajo a nuestro servidor principal en lo referente a consultas de solo lectura.

Archivos WAL: PostgreSQL utiliza los denominados archivos WAL (Write Ahead Log / REDO) para guardar toda la información sobre las transacciones y cambios realizados en la base de datos. Los ficheros WAL se utilizan para garantizar la integridad de los datos grabados en la base de datos. También se utilizan para reparar automáticamente posibles incosistencias en la base de datos después de una caida súbita del servidor.

Streaming Replication (SR)

Esta funcionalidad permite transferir asincrónicamente registros WAL entre un servidor maestro y uno/varios esclavos. SR se configura mediante los parámetros primary_conninfo en el archivo recovery.conf y max_wal_senders, wal_sender_delay y wal_keep_segments en postgresql.conf.

En la práctica un proceso denominado receptor WAL (WAL receiver) en el servidor esclavo, se conecta mediante una conexion TCP/IP al servidor maestro. En el servidor maestro existe otro proceso denominado remitente WAL (WAL sender) que es el encargado de mandar los registros WAL sobre la marcha al servidor esclavo.

Streaming Replication

Hot Standby (HS)

Esta funcionalidad permite acceder en modo de solo-lectura a todos los datos disponibles en el servidor esclavo a donde estamos replicando nuestras bases de datos. HS se configura mediante los parámetros hot_standby y max_standby_delay en postgresql.conf

Hot Standby

Los archivos WAL tienen un nombre único y un tamaño por defecto de 16MB y se generan en el subdirectorio pg_xlog que se encuentra en el directorio de datos ($PGDATA) usado por PostgreSQL.

Una replicación basada en la transferencia de registros WAL significa que se replicaran todas las bases de datos y modificaciones que se realicen en el servidor maestro. Si lo que necesitamos es replicar solamente algunas de las bases de datos existentes en el maestro ó algunas tablas, tendremos que usar otro tipo de replicación.

 

Share on FacebookTweet about this on TwitterShare on Google+

One thought on “Streaming Replication y Hot Standby en PostgreSQL

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *