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
.
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.
Bertrand Drouvot <bertranddrouvot.pg@gmail.com>