O Datastream lê o registro prévio de escrita (WAL) do PostgreSQL para capturar e replicar as alterações de dados no nível da linha das tabelas de origem. O servidor de banco de dados armazena cada alteração de transação em arquivos WAL. É possível configurar parâmetros de retenção, tempo limite e slot de replicação do WAL e otimizar o crescimento do arquivo de registro para evitar alta latência de stream e esgotamento do armazenamento.
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: defina 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 é particularmente importante para transações de longa duração, que, em casos extremos, podem fazer com que o tamanho do arquivo WAL ocupe todo o armazenamento e cause uma falha no 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 usarstatement_timeoutcomo uma medida de precaução alternativa para bancos de dados que não são compatíveis commax_slot_wal_keep_size.wal_sender_timeout: defina esse parâmetro como0(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: aumente o valor desse parâmetro, dependendo do número de slots de replicação definidos para o banco de dados (é necessário um slot de replicação por stream). Só é possível definirmax_replication_slotsna inicialização do servidor.max_wal_senders: aumente o valor desse parâmetro para que ele seja maior que o valor do parâmetromax_replication_slots. Só é possível definirmax_wal_sendersao iniciar o servidor.
Otimizar arquivos de registro do WAL
Para evitar a alta latência dos streams e o rápido crescimento no tamanho dos arquivos de registro do WAL ao replicar dados de uma origem do PostgreSQL, considere aplicar as seguintes precauções:
- Evite operações grandes e de longa duração, porque elas podem aumentar significativamente o tamanho do arquivo WAL.
- Use tabelas
UNLOGGEDouTEMPORARYdurante as operações em lote. - Verifique a configuração do WAL e considere reduzir a frequência do checkpoint. Para mais informações, consulte Configuração do WAL.
- Verifique se há operações
DELETEgrandes e considere substituí-las por operaçõesTRUNCATE. Isso pode reduzir significativamente os dados do arquivo WAL. No entanto, é preciso ter cuidado, porque o Datastream não replica as operaçõesTRUNCATE.
A seguir
- Saiba mais sobre o PostgreSQL como uma origem.
- Saiba mais sobre como configurar um banco de dados de origem do PostgreSQL.