oid2name. Преобразование в имена OID и номера файловых узлов в каталоге данных#
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения: не используется.
oid2name – вспомогательная программа для исследования структуры файлов PostgreSQL.
Приложение предназначено для преобразования в имена OID и номера файловых узлов в каталоге данных PostgreSQL. При исследовании структуры файлов с помощью приложения в основном используются номера файловых узлов таблиц, которые образуют имена файлов в каталоге баз данных.
Важно!
OID таблиц отличаются от номеров файловых узлов.
Программа oid2name подключается к целевой базе данных и извлекает информацию об OID, файловых узлах и/или именах таблиц. С помощью программы можно просмотреть OID базы данных или табличного пространства.
Параметры приложения
Аргументы командной строки |
Описание |
|---|---|
|
Показать информацию о таблице, к которой относится |
|
Включить в вывод индексы и последовательности |
|
Показать информацию о таблице с OID, равным |
|
Не выводить заголовки (полезно для скриптов) |
|
Показать OID табличных пространств |
|
Включить в вывод системные объекты, которые находятся в схемах: |
|
Показать информацию о таблицах, соответствующих шаблону |
|
Вывести версию приложения oid2name и завершить работу |
|
Вывести дополнительные сведения о каждом объекте: |
|
Вывести справку об аргументах командной строки приложения oid2name и завершить работу |
|
Параметр подключения: имя целевой базы данных |
|
Параметр подключения: адрес сервера баз данных |
|
Параметр подключения: порт сервера баз данных |
|
Параметр подключения: имя пользователя |
|
Устаревший параметр подключения: адрес сервера баз данных |
Примечание:
Допускается использовать аргументы
-o,-fи-tв любом количестве; в вывод будут включены все объекты, соответствующие любым из этих указаний. Указанные аргументы будут выбирать объекты в базе данных, заданной ключом-d.В случае, если аргументы
-o,-fи-tотсутствуют, но передается-d, то будут выведены все таблицы в базе данных с именем, заданным ключом-d. В таком режиме набором выводимых данных управляют аргументы-Sи-i.В случае, если отсутствует аргумент
-d, то выводится список OID баз данных.
Переменные окружения
Параметры подключения по умолчанию:
PGHOST;PGPORT;PGUSER.
Программа oid2name использует переменные среды, поддерживаемые libpq.
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка#
Установка не требуется.
Исполняемый файл oid2name расположен в каталоге $PGHOME/bin/.
Настройка#
Настройка не требуется.
Использование модуля#
Пример использования приложения:
Запустите приложение
oid2nameдля вывода общего списка баз данных, которые существуют на этом сервере:oid2nameПример вывода результата:
All databases: Oid Database Name Tablespace ---------------------------------- 16399 first_db tbl_t 14198 postgres pg_default 14197 template0 pg_default 1 template1 pg_default 18488 test_pgfdw pg_default 18517 tstrefint pg_defaultЗапустите приложение
oid2nameс ключом-sдля вывода списка OID табличных пространств:oid2name -sПример вывода результата:
All tablespaces: Oid Tablespace Name ------------------------ 1663 pg_default 1664 pg_global 16398 tbl_tПолучите первые 10 отсортированных по размеру объектов базы
tstrefintв табличном пространстве по умолчаниюpg_default:ls -lS $PGDATA/base/18517 | head -10Пример вывода результата:
total 15984 -rw------- 1 tstrefint tstrefint 5218304 Mar 21 06:44 18656 -rw------- 1 tstrefint tstrefint 1081344 Mar 22 13:42 1255 -rw------- 1 tstrefint tstrefint 761856 Mar 22 14:12 1249 -rw------- 1 tstrefint tstrefint 696320 Mar 17 20:42 3456 -rw------- 1 tstrefint tstrefint 557056 Mar 22 13:43 2838 -rw------- 1 tstrefint tstrefint 540672 Mar 22 13:42 2608 -rw------- 1 tstrefint tstrefint 434176 Mar 22 13:43 9987 -rw------- 1 tstrefint tstrefint 417792 Mar 22 13:42 2674 -rw------- 1 tstrefint tstrefint 344064 Mar 22 13:42 2609Проверьте файл
18656:oid2name -d tstrefint -f 18656Пример вывода результата:
From database "tstrefint": Filenode Table Name ---------------------- 18656 test_preПроверьте файлы
1255и1249:oid2name -d tstrefint -f 1255 -f 1249Пример вывода результата:
From database "tstrefint": Filenode Table Name ------------------------ 1249 pg_attribute 1255 pg_procДобавьте параметры и получите дополнительные подробности, применив ключ
-x:oid2name -d tstrefint -t test_pre -f 18656 -xПример вывода результата:
From database "tstrefint": Filenode Table Name Oid Schema Tablespace ------------------------------------------------- 18656 test_pre 18656 ext pg_defaultВычислите объем, который занимает на диске каждый объект базы данных:
du [0-9]* | sort -rn | while read SIZE FILENODE do echo "$SIZE `oid2name -q -d tstrefint -i -f $FILENODE`" doneПример вывода результата:
8 18646 pg_toast_18641_index 8 18641 tcndata 8 18552 a 8 18541 c 8 18537 b 8 18532 ci 8 18528 bi 8 18524 ai 8 175 pg_user_mapping_user_server_index 8 174 pg_user_mapping_oid_index 8 16780 hints_norm_and_app 8 16778 hints_pkey 8 16777 pg_toast_16771_index 8 16769 hints_id_seq 8 16723 outlines_pkey 8 16722 pg_toast_16717_index 8 14067 pg_toast_14063_indexПросмотрите содержимое табличных пространств в каталоге
$PGDATA/pg_tblspc:oid2name -sПример вывода результата:
All tablespaces: Oid Tablespace Name ------------------------ 1663 pg_default 1664 pg_global 16398 tbl_tВыясните, к каким базам данных относятся объекты в табличном пространстве
tbl_t:ls -d $PGDATA/pg_tblspc/16398/*Пример вывода результата:
/pgdata/0{major_version}/data/pg_tblspc/16398/PG_13_202206301/16399Выясните, к какой базе данных относится OID
16399:oid2nameПример вывода результата:
All databases: Oid Database Name Tablespace ---------------------------------- 16399 first_db tbl_t 14198 postgres pg_default 14197 template0 pg_default 1 template1 pg_default 18488 test_pgfdw pg_default 18517 tstrefint pg_defaultПроверьте объекты базы данных, которые содержатся в табличном пространстве
tbl_t:cd /pgdata/0{major_version}/data/pg_tblspc/16398/PG_13_202206301/16399 ls -lПример вывода результата:
-rw------- 1 postgres postgres 81920 Mar 15 13:06 17051 -rw------- 1 postgres postgres 24576 Mar 13 10:25 17051_fsm -rw------- 1 postgres postgres 16384 Mar 15 13:06 17054 -rw------- 1 postgres postgres 16384 Mar 15 13:06 17056 -rw------- 1 postgres postgres 3915776 Mar 15 13:06 17068 -rw------- 1 postgres postgres 24576 Mar 15 13:06 17068_fsm -rw------- 1 postgres postgres 8192 Mar 15 08:22 17068_vmПроверьте таблицу в файле
17068:oid2name -d first_db -f 17068Пример вывода результата:
From database "first_db": Filenode Table Name ------------------------------ 17068 sample_stat_tables
Ссылки на документацию разработчика#
Дополнительно поставляемый модуль oid2name: https://www.postgresql.org/docs/current/oid2name.html.