Trabajar con archivos de registro WAL de bases de datos PostgreSQL

Datastream usa el registro de transacciones WAL (Write Ahead Log) de PostgreSQL para leer las secuencias de PostgreSQL. El registro se almacena en archivos WAL en el servidor de la base de datos. Cada registro del registro WAL representa un único cambio en los datos reales de una de las tablas de la base de datos.

Definir parámetros de configuración para archivos WAL de PostgreSQL

Te recomendamos que apliques los siguientes ajustes de configuración a tu base de datos PostgreSQL:

  • max_slot_wal_keep_size: define este parámetro (disponible solo para PostgreSQL 13 y versiones posteriores) para limitar la cantidad de almacenamiento que usa el slot de replicación. Esto es especialmente importante en el caso de las transacciones de larga duración, que, en casos extremos, pueden provocar que el tamaño del archivo WAL ocupe todo el almacenamiento y que la base de datos falle.

  • statement_timeout: asigna a este parámetro 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: asigna a este parámetro el valor 0 (para inhabilitar el tiempo de espera) o un valor igual o superior a 10 minutos.

Si tienes previsto crear más de 10 flujos o el número de ranuras de replicación lógica que usan otros recursos además del número de flujos previstos supera las 10, modifica los siguientes parámetros:

  • max_replication_slots: aumenta el valor de este parámetro en función del número de ranuras de replicación configuradas en tu base de datos (necesitas una ranura de replicación por flujo). Solo puedes definir 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 definir max_wal_senders al iniciar el servidor.

Optimizar archivos de registro WAL

Para evitar una latencia alta en tus flujos y un crecimiento rápido del tamaño de los archivos de registro de WAL al replicar datos de una fuente de PostgreSQL, aplica las siguientes precauciones:

  • Evita las operaciones 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.
  • Comprueba la configuración de WAL y considera la posibilidad de reducir la frecuencia de los puntos de control. Para obtener más información, consulta Configuración de WAL.
  • Busca operaciones DELETE grandes y plantéate sustituirlas por operaciones TRUNCATE. Si lo haces, se pueden reducir significativamente los datos de los archivos WAL, pero debes tener cuidado, ya que Datastream no replica las operaciones TRUNCATE.

Siguientes pasos