Em 28 de maio de 2013 12:01, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

> Em 28-05-2013 11:35, Danilo Silva escreveu:
>
>  Pessoal, qual a conta que tem que ser feita para saber o tempo em que um
>> servidor slave está "defasado" em relação ao master?
>>
>> master--> SELECT pg_current_xlog_location(); = 1B/2C1BDE74
>>
>> slave--> SELECT pg_last_xlog_receive_location(**); = 1B/2C1BE2F8
>>
>
> Determinar um "tempo" nem sempre é fácil
> Os valores que você obtem com esta consulta está em bytes, em hexadecimal.
>
> Eu normalmente sigo os passos abaixo:
>
> 1) Pra obter de forma mais precisa, utilize a visão pg_stat_replication
> disponível no servidor mestre, que mostra o estado de mestre e escravo na
> mesma linha e no mesmo momento.
>
> 2) Para determinar quantos bytes por segundo o servidor mestre está
> fazendo, extraia a consulta duas vezes num intervalo de tempo definido.
> Faça duas vezes:
> SELECT now(), * FROM pg_stat_replication;
>
> 3) Determine a taxa em bytes/s (1 é a primeira consulta, 2 é a segunda):
> taxa = (write_location1 - write_location2) / (now1 - now2)
>
> 4) Subtraia posição do mestre - posição do escravo e multiplique pelo
> valor acima:
> atraso = taxa * (replay_location1 - replay_location2)
>
> 5) Note que se seu banco tem variação de carga, você deve fazer esse
> procedimento acima mais de uma vez ao dia.
>
>
> Existe alguma forma de efetuar as contas direto pelo banco (psql, pgadmin,
afins) ou tem que ser na mão? Outra coisa, está correto a subtração de now1
- now2 (valor menor subtraído com valor maior)? O mesmo para
replay_location1 - replay_location2.

[]s
Danilo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a