1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Add SQL functions to monitor the directory contents of replication slots

This commit adds a set of functions able to look at the contents of
various paths related to replication slots:
- pg_ls_logicalsnapdir, for pg_logical/snapshots/
- pg_ls_logicalmapdir, for pg_logical/mappings/
- pg_ls_replslotdir, for pg_replslot/<slot_name>/

These are intended to be used by monitoring tools.  Unlike pg_ls_dir(),
execution permission can be granted to non-superusers.  Roles members of
pg_monitor gain have access to those functions.

Bump catalog version.

Author: Bharath Rupireddy
Reviewed-by: Nathan Bossart, Justin Pryzby
Discussion: https://postgr.es/m/CALj2ACWsfizZjMN6bzzdxOk1ADQQeSw8HhEjhmVXn_Pu+7VzLw@mail.gmail.com
This commit is contained in:
Michael Paquier
2021-11-23 19:29:42 +09:00
parent b55f2b6926
commit 1922d7c6e1
9 changed files with 250 additions and 1 deletions

View File

@ -48,6 +48,27 @@ SELECT pg_drop_replication_slot('regression_slot_t');
ERROR: replication slot "regression_slot_t" does not exist
SELECT pg_drop_replication_slot('regression_slot_t2');
ERROR: replication slot "regression_slot_t2" does not exist
-- monitoring functions for slot directories
SELECT count(*) >= 0 AS ok FROM pg_ls_logicalmapdir();
ok
----
t
(1 row)
SELECT count(*) >= 0 AS ok FROM pg_ls_logicalsnapdir();
ok
----
t
(1 row)
SELECT count(*) >= 0 AS ok FROM pg_ls_replslotdir('regression_slot_p');
ok
----
t
(1 row)
SELECT count(*) >= 0 AS ok FROM pg_ls_replslotdir('not_existing_slot'); -- fails
ERROR: replication slot "not_existing_slot" does not exist
-- permanent slot has survived
SELECT pg_drop_replication_slot('regression_slot_p');
pg_drop_replication_slot