PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 18 beta 2 » Annexes » Modules et extensions supplémentaires fournis » pg_logicalinspect -- inspection des composants de décodage logique

F.28. pg_logicalinspect -- inspection des composants de décodage logique #

Le module pg_logicalinspect fournit des fonctions SQL permettant d'inspecter le contenu des composants de décodage logique. Il permet l'inspection des instantanés logiques sérialisés d'une instance PostgreSQL en cours d'exécution, ce qui est utile à des fins de débogage ou d'apprentissage.

Par défaut, l'utilisation de ces fonctions est restreinte aux superutilisateurs et aux membres du rôle pg_read_server_files. L'accès peut être accordé à d'autres utilisateurs par les superutilisateurs à l'aide de la commande GRANT.

F.28.1. Fonctions #

pg_get_logical_snapshot_meta(filename text) returns record #

Récupère les métadonnées de l'instantané logique pour un fichier situé dans le répertoire pg_logical/snapshots du serveur. L'argument filename représente le nom du fichier d'instantané. Par exemple :

postgres=# SELECT * FROM pg_ls_logicalsnapdir();
-[ RECORD 1 ]+-----------------------
name         | 0-40796E18.snap
size         | 152
modification | 2024-08-14 16:36:32+00

postgres=# SELECT * FROM pg_get_logical_snapshot_meta('0-40796E18.snap');
-[ RECORD 1 ]--------
magic    | 1369563137
checksum | 1028045905
version  | 6

postgres=# SELECT ss.name, meta.* FROM pg_ls_logicalsnapdir() AS ss,
pg_get_logical_snapshot_meta(ss.name) AS meta;
-[ RECORD 1 ]-------------
name     | 0-40796E18.snap
magic    | 1369563137
checksum | 1028045905
version  | 6

Si filename ne correspond pas à un fichier d'instantané, la fonction renvoie une erreur.

pg_get_logical_snapshot_info(filename text) returns record #

Récupère les informations de l'instantané logique pour un fichier situé dans le répertoire pg_logical/snapshots du serveur. L'argument filename représente le nom du fichier d'instantané. Par exemple :

postgres=# SELECT * FROM pg_ls_logicalsnapdir();
-[ RECORD 1 ]+-----------------------
name         | 0-40796E18.snap
size         | 152
modification | 2024-08-14 16:36:32+00

postgres=# SELECT * FROM pg_get_logical_snapshot_info('0-40796E18.snap');
-[ RECORD 1 ]------------+-----------
state                    | consistent
xmin                     | 751
xmax                     | 751
start_decoding_at        | 0/40796AF8
two_phase_at             | 0/40796AF8
initial_xmin_horizon     | 0
building_full_snapshot   | f
in_slot_creation         | f
last_serialized_snapshot | 0/0
next_phase_at            | 0
committed_count          | 0
committed_xip            |
catchange_count          | 2
catchange_xip            | {751,752}

postgres=# SELECT ss.name, info.* FROM pg_ls_logicalsnapdir() AS ss,
pg_get_logical_snapshot_info(ss.name) AS info;
-[ RECORD 1 ]------------+----------------
name                     | 0-40796E18.snap
state                    | consistent
xmin                     | 751
xmax                     | 751
start_decoding_at        | 0/40796AF8
two_phase_at             | 0/40796AF8
initial_xmin_horizon     | 0
building_full_snapshot   | f
in_slot_creation         | f
last_serialized_snapshot | 0/0
next_phase_at            | 0
committed_count          | 0
committed_xip            |
catchange_count          | 2
catchange_xip            | {751,752}

Si filename ne correspond pas à un fichier d'instantané, la fonction renvoie une erreur.

F.28.2. Auteur #

Bertrand Drouvot