Datastream usa el registro de transacciones WAL (registro de escritura por adelantado) de PostgreSQL para leer transmisiones de PostgreSQL. El registro se almacena en archivos WAL en el servidor de la base de datos. Cada registro del registro de WAL representa un solo cambio en los datos reales de una de las tablas de la base de datos.
Establece parámetros de configuración para los archivos WAL de PostgreSQL
Te recomendamos que apliques la siguiente configuración a tu base de datos de PostgreSQL:
max_slot_wal_keep_size
: Establece este parámetro (disponible solo para PostgreSQL 13 y versiones posteriores) para limitar la cantidad de almacenamiento que usa el espacio de replicación. Esto es especialmente importante para las transacciones de larga duración, que, en casos extremos, pueden provocar que el tamaño del archivo WAL ocupe todo el almacenamiento y haga que la base de datos falle.statement_timeout
: Establece este parámetro en un valor seleccionado para reducir la latencia causada por las transacciones de larga duración. También puedes usarstatement_timeout
como medida de precaución alternativa para bases de datos que no admitenmax_slot_wal_keep_size
.wal_sender_timeout
: Establece este parámetro en0
(para inhabilitar el tiempo de espera) o en un valor mayor o igual a 10 minutos.
Si planeas crear más de 10 transmisiones o si la cantidad de ranuras de replicación lógicas que usan otros recursos, además de la cantidad de transmisiones planificadas, supera los 10, asegúrate de modificar los siguientes parámetros:
max_replication_slots
: Aumenta el valor de este parámetro, según la cantidad de ranuras de replicación configuradas para tu base de datos (necesitas 1 ranura de replicación por flujo). Solo puedes configurarmax_replication_slots
al iniciar el servidor.max_wal_senders
: Aumenta el valor de este parámetro para que sea mayor que el valor del parámetromax_replication_slots
. Solo puedes configurarmax_wal_senders
cuando inicias el servidor.
Optimiza los archivos de registro WAL
Para evitar una latencia alta de tus transmisiones y un crecimiento rápido en el tamaño de los archivos de registro de WAL cuando se replican datos de una fuente de PostgreSQL, considera aplicar las siguientes precauciones:
- Evita las operaciones de larga duración, ya que pueden aumentar significativamente el tamaño del archivo WAL.
- Usa tablas
UNLOGGED
oTEMPORARY
durante las operaciones por lotes. - Verifica la configuración de WAL y considera reducir la frecuencia de los puntos de control. Para obtener más información, consulta Configuración de WAL.
- Verifica si hay operaciones
DELETE
grandes y considera reemplazarlas por operacionesTRUNCATE
. De esta manera, se pueden reducir significativamente los datos del archivo WAL. Sin embargo, debes tener cuidado, ya que Datastream no replica las operaciones deTRUNCATE
.
¿Qué sigue?
- Obtén más información sobre PostgreSQL como fuente.
- Obtén más información para configurar una base de datos de PostgreSQL de origen.