/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
doc/src/sgml/pglogicalinspect.sgml
143 строки
4 KB
Álvaro Herrera
Standardize LSN formatting by zero padding
07 июл 2025, 14:57
Не верифицирован
07 июл 2025, 14:57
2633dae
Код
Авторство
О чём код?
<!-- doc/src/sgml/pglogicalinspect.sgml --> <sect1 id="pglogicalinspect" xreflabel="pg_logicalinspect"> <title>pg_logicalinspect — logical decoding components inspection</title> <indexterm zone="pglogicalinspect"> <primary>pg_logicalinspect</primary> </indexterm> <para> The <filename>pg_logicalinspect</filename> module provides SQL functions that allow you to inspect the contents of logical decoding components. It allows the inspection of serialized logical snapshots of a running <productname>PostgreSQL</productname> database cluster, which is useful for debugging or educational purposes. </para> <para> By default, use of these functions is restricted to superusers and members of the <literal>pg_read_server_files</literal> role. Access may be granted by superusers to others using <command>GRANT</command>. </para> <sect2 id="pglogicalinspect-funcs"> <title>Functions</title> <variablelist> <varlistentry id="pglogicalinspect-funcs-pg-get-logical-snapshot-meta"> <term> <function>pg_get_logical_snapshot_meta(filename text) returns record</function> </term> <listitem> <para> Gets logical snapshot metadata about a snapshot file that is located in the server's <filename>pg_logical/snapshots</filename> directory. The <replaceable>filename</replaceable> argument represents the snapshot file name. For example: <screen> 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 </screen> </para> <para> If <replaceable>filename</replaceable> does not match a snapshot file, the function raises an error. </para> </listitem> </varlistentry> <varlistentry id="pglogicalinspect-funcs-pg-get-logical-snapshot-info"> <term> <function>pg_get_logical_snapshot_info(filename text) returns record</function> </term> <listitem> <para> Gets logical snapshot information about a snapshot file that is located in the server's <filename>pg_logical/snapshots</filename> directory. The <replaceable>filename</replaceable> argument represents the snapshot file name. For example: <screen> 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/00000000 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/00000000 next_phase_at | 0 committed_count | 0 committed_xip | catchange_count | 2 catchange_xip | {751,752} </screen> </para> <para> If <replaceable>filename</replaceable> does not match a snapshot file, the function raises an error. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="pglogicalinspect-author"> <title>Author</title> <para> Bertrand Drouvot <email>bertranddrouvot.pg@gmail.com</email> </para> </sect2> </sect1>