Trabaja con archivos de registro WAL de la base de datos de PostgreSQL

Datastream usa el registro de transacciones WAL (Write Ahead Log) 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 los siguientes parámetros de configuración a tu base de datos de PostgreSQL:

  • max_slot_wal_keep_size: Establece este parámetro (solo disponible para PostgreSQL 13 y versiones posteriores) para limitar la cantidad de almacenamiento que usa la ranura de replicación. Esto es especialmente importante 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 se bloquee la base de datos.

  • statement_timeout: Establece este parámetro en un valor seleccionado para reducir la latencia causada por transacciones de larga duración. También puedes usar statement_timeout como medida de precaución alternativa para las bases de datos que no admiten max_slot_wal_keep_size.

  • wal_sender_timeout: Establece este parámetro en 0 (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 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 establecidas para tu base de datos (necesitas 1 ranura de replicación por transmisión). Solo puedes establecer max_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ámetro max_replication_slots. Solo puedes establecer max_wal_senders cuando inicias el servidor.

Optimiza los archivos de registro de WAL

Para evitar una latencia alta en tus transmisiones y un crecimiento rápido en el tamaño de los archivos de registro de WAL cuando repliques datos desde una fuente de PostgreSQL, considera aplicar las siguientes precauciones:

  • Evita las operaciones grandes de larga duración, ya que pueden aumentar significativamente el tamaño de tu archivo WAL.
  • Usa tablas UNLOGGED o TEMPORARY durante las operaciones por lotes.
  • Verifica la configuración del 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 operaciones TRUNCATE. Hacer esto puede reducir significativamente los datos del archivo WAL, pero debes tener cuidado, ya que Datastream no replica las operaciones de TRUNCATE.

¿Qué sigue?