Re: SQL command in Slave Database - Monitor Replication

From: Matheus de Oliveira <matioli(dot)matheus(at)gmail(dot)com>
To: Alberto Olivares <alberto(dot)olivares(at)snowflakesoftware(dot)com>
Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: SQL command in Slave Database - Monitor Replication
Date: 2015-07-04 14:37:11
Message-ID: CAJghg4+MzvvnKo0LWRqO6CE_FxXs=VWGbCREmLkpLUvnCDxiAg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Fri, Jul 3, 2015 at 12:03 PM, Alberto Olivares <
alberto(dot)olivares(at)snowflakesoftware(dot)com> wrote:

> Is there any SQL command that I can run on the slave database to check if
> the replication is still working or not? I know that you can check the
> postgresql.conf but I want to do it directly on the SQL panel.
>
> Database: Postgresql 9.1 on Linux
>

You can query pg_stat_replication (since 9.1+) on the primary server, it
will return one row for each secondary connected.

If you were on 9.2+ you could even use pg_xlog_location_diff to get the lag
in bytes of data sent to the standby:

SELECT
application_name,
client_addr,
pg_size_pretty(pg_xlog_location_diff(pg_current_xlog_location(),
sent_location)) AS sent_lag
FROM pg_stat_replication;

You can use write_location and replay_location similarly.

On 9.1 you'll have to do this math by yourself if you want or create your
own pg_xlog_location_diff.

OBS: pg_stat_replication will only show standby connected through streaming
replication, log shipping cannot be verified this way.

Best regards,
--
Matheus de Oliveira

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Geo P.C. 2015-07-06 04:24:05 Running two postgresql servers in same Ubuntu machine
Previous Message Alberto Olivares 2015-07-03 15:03:23 SQL command in Slave Database - Monitor Replication