1

Streaming Replication en PostgreSQL

803Puntos

hace 6 años

Los servidores de bases de datos pueden trabajar en conjunto. De esta manera, en caso de que un servidor falle, otro servidor puede tomar su lugar inmediatamente. Y así se asegura la alta disponibilidad de la información.  Por otro lado, también es posible preparar muchos servidores para que atiendan todas las peticiones entrantes dividiendo la carga entre ellos. Esta operación es sencilla cuando el trabajo requerido es de sólo lectura. Pero cuando necesitamos hacer operaciones de escritura, el proceso comienza a complicarse. Esto pasa porque conforme nuevos datos comienzan a ser escritos en un servidor, estos tienen que ser propagados en el menor tiempo posible a todos los demás. Así, cuando se trate de consultar esta información, todos los servidores deberán ser capaces de regresar un resultado consistente. Esto es conocido como Database Replication.

Usando archivos

Una manera común en PostgreSQL de lidiar con la consistencia de datos en un cluster de bases de datos, es mediante el envío de registros WAL entre servidores. También conocido como Log Shipping.  Se puede lograr alta disponibilidad de la información teniendo un servidor primario maestro que esté reportando los cambios, mediante archivos de WAL, a servidores esclavos standby. Para realizar esto es recomendable que los los servidores, tanto standby como primario, sean lo más similares posibles y que las versiones de PostgreSQL sean las mismas. El servidor esclavo o standby estará continuamente aplicando todos los cambios recibidos en los registros WAL y el servidor maestro primario estará enviando cada todos estos cambios a los esclavos. La lectura de registros WAL puede ser mediante archivos WAL o leída mediante una conexión TCP al servidor maestro (Streaming Replication). Para configurar el envió de archivos WAL en un servidor primario debe existir un directorio dentro del servidor que siempre sea accesible por los servidores standby incluso si el primario está abajo.

Streaming Replication

La capacidad de Streaming Replication fue añadida a PostgreSQL en la versión nueve y es aquella que hace que técnicas como Hot Standby sean posibles. Streaming Replication nos da la capacidad de estar enviando y aplicando cambios entre servidores de forma continua y asíncrona. Los servidores esclavos se conectan al primario el cuál está continuamente haciendo streaming de registros WAL sin necesidad de estar al pendiente de que un archivo sea llenado. El que StreamingReplication sea un proceso asíncrono por defecto, genera un pequeño retraso en lo que la información está guardada en el servidor primario y lo que tarda en reflejarse en todos los esclavos, sin embargo, este proceso sigue siendo aún más rápido que el uso de archivos. Si deseas aprender más sobre este y otros secretos, regístratehoy al curso de PostgreSQL de Platzi y no te pierdas los artículos y tutoriales que estaremos publicando. Si te interesa algún tema en específico, no dudes en dejarlo en los comentarios.
Pablo
Pablo
Escribe tu comentario
+ 2