PostgreSQL 19 ← 18
STATISTICS VIEW · Statistics view
pg_stat_replication
The pg_stat_replication view will contain one row per WAL sender process, showing statistics about replication to that sender's connected standby server. Only directly connected standbys are listed; no information is available about downstream standby servers. The lag times reported in the pg_stat_replication view are measurements of the time taken for recent WAL to be written, flushed and replayed and for the sender to know about it. These times represent the commit delay that was (or would have been) introduced by each synchronous commit level, if the remote server was configured as a synchronous standby. For an asynchronous standby, the replay_lag column approximates the delay before recent transactions became visible to queries. If the standby server has entirely caught up with the sending server and there is no more WAL activity, the most recently measured lag times will continue to be displayed for a short time and then show NULL. Lag times work automatically for physical replication. Logical decoding plugins may optionally emit tracking messages; if they do not, the tracking mechanism will simply display NULL lag.
Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗
Columns PostgreSQL 18
pg_stat_replication| COLUMN | TYPE | DESCRIPTION |
|---|---|---|
pid |
integer |
Process ID of a WAL sender process |
usesysid |
oid |
OID of the user logged into this WAL sender process |
usename |
name |
Name of the user logged into this WAL sender process |
application_name |
text |
Name of the application that is connected to this WAL sender |
client_addr |
inet |
IP address of the client connected to this WAL sender. If this field is null, it indicates that the client is connected via a Unix socket on the server machine. |
client_hostname |
text |
Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled. |
client_port |
integer |
TCP port number that the client is using for communication with this WAL sender, or -1 if a Unix socket is used |
backend_start |
timestamp with time zone |
Time when this process was started, i.e., when the client connected to this WAL sender |
backend_xmin |
xid |
This standby's xmin horizon reported by hot_standby_feedback. |
state |
text |
Current WAL sender state. Possible values are: |
sent_lsn |
pg_lsn |
Last write-ahead log location sent on this connection |
write_lsn |
pg_lsn |
Last write-ahead log location written to disk by this standby server |
flush_lsn |
pg_lsn |
Last write-ahead log location flushed to disk by this standby server |
replay_lsn |
pg_lsn |
Last write-ahead log location replayed into the database on this standby server |
write_lag |
interval |
Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it (but not yet flushed it or applied it). This can be used to gauge the delay that synchronous_commit level remote_write incurred while committing if this server was configured as a synchronous standby. |
flush_lag |
interval |
Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it (but not yet applied it). This can be used to gauge the delay that synchronous_commit level on incurred while committing if this server was configured as a synchronous standby. |
replay_lag |
interval |
Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it. This can be used to gauge the delay that synchronous_commit level remote_apply incurred while committing if this server was configured as a synchronous standby. |
sync_priority |
integer |
Priority of this standby server for being chosen as the synchronous standby in a priority-based synchronous replication. This has no effect in a quorum-based synchronous replication. |
sync_state |
text |
Synchronous state of this standby server. Possible values are: |
reply_time |
timestamp with time zone |
Send time of last reply message received from standby server |
Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.
Common system columns 0
System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.
| Columns | Type | attnum |
|---|
Column evolution matrix
Hover a cell for the column type9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.
Evolution timeline
Changes between adjacent majorsPostgreSQL 13 ← 12
PostgreSQL 12 ← 11
PostgreSQL 10 ← 9.6
PostgreSQL 9.6 ← 9.5
PostgreSQL 9.5 ← 9.4
PostgreSQL 9.4 ← 9.3
PostgreSQL 9.2 ← 9.1
PostgreSQL 9.1 ← 9.0Catalog added
Compare any two versions
Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.