Medir o atraso de replicação entre membros pgactive
Você pode usar a consulta a seguir para visualizar o atraso de replicação entre os membros de pgactive
. Execute essa consulta em cada nó de pgactive
para ter a imagem completa.
app=> SELECT * FROM pgactive.pgactive_get_replication_lag_info();
│-[ RECORD 1 ]--------+---------------------------------------------
│node_name | node2-app
│node_sysid | 7481018224801653637
│application_name | pgactive:7481018224801653637:send
│slot_name | pgactive_16385_7481018224801653637_0_16385__
│active | t
│active_pid | 783486
│pending_wal_decoding | 0
│pending_wal_to_apply | 0
│restart_lsn | 0/2108150
│confirmed_flush_lsn | 0/2154690
│sent_lsn | 0/2154690
│write_lsn | 0/2154690
│flush_lsn | 0/2154690
│replay_lsn | 0/2154690
│-[ RECORD 2 ]--------+---------------------------------------------
│node_name | node1-app
│node_sysid | 7481018033434600853
│application_name | pgactive:7481018033434600853:send
│slot_name | pgactive_16385_7481018033434600853_0_16385__
│active | t
│active_pid | 783488
│pending_wal_decoding | 0
│pending_wal_to_apply | 0
│restart_lsn | 0/20F5AD0
│confirmed_flush_lsn | 0/214EF68
│sent_lsn | 0/214EF68
│write_lsn | 0/214EF68
│flush_lsn | 0/214EF68
│replay_lsn | 0/214EF68
Monitore, no mínimo, os seguintes diagnósticos:
- active
-
Configure alertas quando active for false, o que indica que o slot não está em uso no momento (a instância do assinante foi desconectada do publicador).
- pending_wal_decoding
-
Na replicação lógica do PostgreSQL, os arquivos WAL são armazenados em formato binário. O publicador deve decodificar essas alterações do WAL e convertê-las em alterações lógicas (como operações de inserção, atualização ou exclusão).
A métrica pending_wal_decoding mostra o número de arquivos WAL aguardando decodificação do lado do publicador.
Esse número pode aumentar devido a estes fatores:
-
Quando o assinante não estiver conectado, o status active será false e pending_wal_decoding aumentará.
-
O slot está ativo, mas o publicador não consegue acompanhar o volume de alterações do WAL.
-
- pending_wal_to_apply
-
A métrica pending_wal_apply indica o número de arquivos WAL que ainda precisam ser aplicados do lado do assinante.
Vários fatores podem impedir que o assinante aplique alterações e possivelmente provocar um cenário de disco cheio:
-
Diferenças de esquema: por exemplo, quando você tem alterações no fluxo do WAL para uma tabela chamada sample e essa tabela não existe do lado do assinante.
-
Valores nas colunas da chave primária foram atualizados.
-
Índices secundários exclusivos podem causar divergência de dados.
-