Trabalhar com arquivos de registro WAL do banco de dados PostgreSQL

Visão geral

O Datastream usa o registro de transações WAL (gravação antecipada) do PostgreSQL para ler fluxos do PostgreSQL. O registro é armazenado em arquivos WAL no servidor de banco de dados. Cada registro no registro WAL representa uma única alteração nos dados reais em uma das tabelas do banco de dados.

Definir parâmetros de configuração para arquivos WAL do PostgreSQL

Recomendamos que você aplique as seguintes configurações ao seu banco de dados PostgreSQL:

  • max_slot_wal_keep_size: define esse parâmetro (disponível apenas para o PostgreSQL 13 e versões mais recentes) para limitar a quantidade de armazenamento usada pelo slot de replicação. Isso é especialmente importante para transações de longa duração que, em casos extremos, podem fazer com que o tamanho do arquivo WAL ocupa todo o armazenamento e trava o banco de dados.

  • statement_timeout: defina esse parâmetro como um valor selecionado para reduzir a latência causada por transações de longa duração. Também é possível usar statement_timeout como uma medida de precaução alternativa para bancos de dados que não são compatíveis com max_slot_wal_keep_size.

  • wal_sender_timeout: defina esse parâmetro como 0 (para desativar o tempo limite) ou como um valor maior ou igual a 10 minutos.

Se você planeja criar mais de 10 streams ou se o número de slots de replicação lógica usados por outros recursos além do número de streams planejados exceder 10, modifique os seguintes parâmetros:

  • max_replication_slots: aumenta o valor desse parâmetro de acordo com o número de slots de replicação definidos para seu banco de dados. É necessário um slot de replicação por stream. Só é possível definir max_replication_slots ao iniciar o servidor.

  • max_wal_senders: aumenta o valor desse parâmetro para que ele fique maior que o valor do parâmetro max_replication_slots. Só é possível definir max_wal_senders ao iniciar o servidor.