mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-13 19:57:53 +08:00
Add monitoring function pg_last_xact_replay_timestamp.
Fujii Masao, with a little wordsmithing by me.
This commit is contained in:
parent
844ed5dc97
commit
7ba6e4f0e0
@ -13551,6 +13551,9 @@ postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());
|
||||
<indexterm>
|
||||
<primary>pg_last_xlog_replay_location</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>pg_last_xact_replay_timestamp</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
The functions shown in <xref
|
||||
@ -13605,6 +13608,22 @@ postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());
|
||||
the function returns NULL.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal><function>pg_last_xact_replay_timestamp()</function></literal>
|
||||
</entry>
|
||||
<entry><type>timestamp with time zone</type></entry>
|
||||
<entry>Get timestamp of last transaction replayed during recovery.
|
||||
This is the time at which the commit or abort WAL record for that
|
||||
transaction was generated.
|
||||
If no transactions have been replayed during recovery, this function
|
||||
returns NULL. Otherwise, if recovery is still in progress this will
|
||||
increase monotonically. If recovery has completed then this value will
|
||||
remain static at the value of the last transaction applied during that
|
||||
recovery. When the server has been started normally without recovery
|
||||
the function returns NULL.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
@ -5604,6 +5604,24 @@ GetLatestXTime(void)
|
||||
return xtime;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns timestamp of latest processed commit/abort record.
|
||||
*
|
||||
* When the server has been started normally without recovery the function
|
||||
* returns NULL.
|
||||
*/
|
||||
Datum
|
||||
pg_last_xact_replay_timestamp(PG_FUNCTION_ARGS)
|
||||
{
|
||||
TimestampTz xtime;
|
||||
|
||||
xtime = GetLatestXTime();
|
||||
if (xtime == 0)
|
||||
PG_RETURN_NULL();
|
||||
|
||||
PG_RETURN_TIMESTAMPTZ(xtime);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns bool with current recovery mode, a global state.
|
||||
*/
|
||||
|
@ -271,6 +271,7 @@ extern Datum pg_current_xlog_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_current_xlog_insert_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xlog_receive_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xlog_replay_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xact_replay_timestamp(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlogfile_name_offset(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlogfile_name(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_is_in_recovery(PG_FUNCTION_ARGS);
|
||||
|
@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201010301
|
||||
#define CATALOG_VERSION_NO 201011091
|
||||
|
||||
#endif
|
||||
|
@ -3383,6 +3383,8 @@ DATA(insert OID = 3820 ( pg_last_xlog_receive_location PGNSP PGUID 12 1 0 0 f f
|
||||
DESCR("current xlog flush location");
|
||||
DATA(insert OID = 3821 ( pg_last_xlog_replay_location PGNSP PGUID 12 1 0 0 f f f t f v 0 0 25 "" _null_ _null_ _null_ _null_ pg_last_xlog_replay_location _null_ _null_ _null_ ));
|
||||
DESCR("last xlog replay location");
|
||||
DATA(insert OID = 3830 ( pg_last_xact_replay_timestamp PGNSP PGUID 12 1 0 0 f f f t f v 0 0 1184 "" _null_ _null_ _null_ _null_ pg_last_xact_replay_timestamp _null_ _null_ _null_ ));
|
||||
DESCR("timestamp of last replay xact");
|
||||
|
||||
DATA(insert OID = 2621 ( pg_reload_conf PGNSP PGUID 12 1 0 0 f f f t f v 0 0 16 "" _null_ _null_ _null_ _null_ pg_reload_conf _null_ _null_ _null_ ));
|
||||
DESCR("reload configuration files");
|
||||
|
Loading…
x
Reference in New Issue
Block a user