Datastream lee el registro de escritura anticipada (WAL) de PostgreSQL para capturar y replicar los cambios de datos a nivel de fila de tus tablas de origen. El servidor de la base de datos almacena cada cambio de transacción en archivos WAL. Puedes configurar los parámetros de retención de WAL, tiempo de espera y ranura de replicación, y optimizar el crecimiento de los archivos de registro para evitar una alta latencia de transmisión y el agotamiento del almacenamiento.
Establece parámetros de configuración para los archivos WAL de PostgreSQL
Te recomendamos que apliques los siguientes parámetros de 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 la ranura de replicación. Esto es de especial importancia para las transacciones de larga duración, que, en casos extremos, pueden hacer que el tamaño del archivo WAL ocupe todo el almacenamiento y que la base de datos falle.statement_timeout: Establece este parámetro en un valor seleccionado para reducir la latencia que causan las transacciones de larga duración. También puedes usarstatement_timeoutcomo una medida de precaución alternativa para las 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 que 10 minutos.
Si planeas crear más de 10 transmisiones o si la cantidad de ranuras de replicación lógica que usan otros recursos, además de la cantidad de transmisiones planificadas, supera las 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 transmisión). Solo puedes configurarmax_replication_slotscuando se inicia 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_senderscuando inicias el servidor.
Optimiza los archivos de registro de WAL
Para evitar la alta latencia de tus transmisiones y el rápido crecimiento del 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 grandes de larga duración, ya que pueden aumentar de forma significativa el tamaño de tu archivo WAL.
- Usa tablas
UNLOGGEDoTEMPORARYdurante 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
DELETEgrandes y considera reemplazarlas por operacionesTRUNCATE. Esto puede reducir significativamente los datos de los archivos WAL. Sin embargo, debes tener cuidado, ya que Datastream no replica las operacionesTRUNCATE.
¿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.