Replicação entre servidores

Como monitorar o replicador?

RTREPLICATOR.FAQ-8466
Para monitorar o replicador é necessário acessar a interface ConReplication de cada node da base.
Na situação do replicador, espera-se encontrar TIMED_WAITING ou RUNNABLE e com uma informação de que o ultimo update realizado não seja superior a alguns segundos.

Muito tempo sem fazer update

Se ocorrer do slave estar muito tempo sem receber registros do master, sugere-se agir da seguinte forma:
NO SLAVE:
Caso isso não funcionar, sugere-se reiniciar o Tomcat.

Fila A

Replicador SLAVE funcionando mas não manda registros para o MASTER.

Veja se o primeiro registro da fila não tem um conteúdo maior do que o máximo permitido para o bloco de replicação (padrão é 2MB).
Se for este o caso, deve-se aumentar o tamanho do bloco da seguinte forma:
 maxPostSize="8000000"
RT.REPLICATOR.MAX_LENGTH=8000000

maxPostSize

The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes). Note that the FailedRequestFilter can be used to reject requests that exceed this limit.


Fila E

A fila E contém registros que não puderam ser aplicados porque causaram erros.
Qualquer erro deve ser avaliado isoladamente.
Os erros mais comuns são:

PK duplicada

Existe uma situação onde um bloco de registros acaba sendo enviado duas vezes de um nodo para outro. Existe um comando que pode ser executado via UtlDbSql que detecta e corrige este tipo de situação.
Ver faq 8335 - Como excluir registros duplicados do replicador?

FK inválida

Quando ocorre isso é porque existe algum registro dependente faltando.
Descubra o id dele (normalmente está na própria mensagem de erro) e consulte o DML-LOG que gerou este registro na origem.
Copie o comando SQL e execute manualmente no servidor usando o UtlDbSql;

Filas A e B

As filas A B não são problemas - São apenas um indicativo que existem dados que ainda não foram processados.
Caso uma destas filas fique muito grande por muito tempo, significa que o processo não está sendo executado (por não conseguir acessar o node-pai ou porque o serviço caiu).

Ver também: