oid2name
oid2name â пÑеобÑазоваÑÑ Ð² имена OID и номеÑа ÑайловÑÑ Ñзлов в каÑалоге даннÑÑ Postgres Pro
СинÑакÑиÑ
oid2name [паÑамеÑÑ...]
ÐпиÑание
oid2name â вÑпомогаÑелÑÐ½Ð°Ñ Ð¿ÑогÑамма, помогаÑÑÐ°Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑам иÑÑледоваÑÑ ÑÑÑÑкÑÑÑÑ Ñайлов Postgres Pro. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÐµÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ понимаÑÑ ÑÑÑÑкÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° ÑÑовне Ñайлов, опиÑаннÑÑ Ð² Ðлаве 70.
ÐÑимеÑание
ÐÐ¼Ñ Â«oid2name» ÑложилоÑÑ Ð¸ÑÑоÑиÑеÑки и на Ñамом деле Ð²Ð²Ð¾Ð´Ð¸Ñ Ð² заблÑждение, Ñак как ÑаÑе вÑего, иÑполÑзÑÑ ÐµÑ, Ð²Ñ Ð±ÑдеÑе имеÑÑ Ð´ÐµÐ»Ð¾ Ñ Ð½Ð¾Ð¼ÐµÑами ÑайловÑÑ Ñзлов ÑÐ°Ð±Ð»Ð¸Ñ (ÑÑи номеÑа обÑазÑÑÑ Ð¸Ð¼ÐµÐ½Ð° Ñайлов в каÑалоге баз даннÑÑ ). ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ понимаÑÑ, ÑÑо OID ÑÐ°Ð±Ð»Ð¸Ñ Ð¾ÑлиÑаÑÑÑÑ Ð¾Ñ Ð½Ð¾Ð¼ÐµÑов ÑайловÑÑ Ñзлов!
ÐÑогÑамма oid2name подклÑÑаеÑÑÑ Ðº Ñелевой базе даннÑÑ Ð¸ Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± OID, ÑайловÑÑ ÑÐ·Ð»Ð°Ñ Ð¸/или Ð¸Ð¼ÐµÐ½Ð°Ñ ÑаблиÑ. С ÐµÑ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ Ñакже пÑоÑмоÑÑеÑÑ OID Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ ÑаблиÑного пÑоÑÑÑанÑÑва.
ÐаÑамеÑÑÑ
oid2name пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки:
-fÑайловÑй_Ñзел--filenode=ÑайловÑй_ÑзелпоказаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑаблиÑе, к коÑоÑой оÑноÑиÑÑÑ
ÑайловÑй_Ñзел.-i--indexesвклÑÑиÑÑ Ð² вÑвод индекÑÑ Ð¸ поÑледоваÑелÑноÑÑи.
-ooid--oid=oidпоказаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑаблиÑе Ñ OID, ÑавнÑм
oid.-q--quietне вÑводиÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¸ (полезно Ð´Ð»Ñ ÑкÑипÑов).
-s--tablespacesпоказаÑÑ OID ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв.
-S--system-objectsвклÑÑиÑÑ Ð² вÑвод ÑиÑÑемнÑе обÑекÑÑ (Ñе, ÑÑо Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² ÑÑ ÐµÐ¼Ð°Ñ
information_schema,pg_toastиpg_catalog).-tÑаблон_имÑн_ÑаблиÑ--table=Ñаблон_имÑн_ÑаблиÑпоказаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑаблиÑÐ°Ñ , подпадаÑÑÐ¸Ñ Ð¿Ð¾Ð´
Ñаблон_имÑн_ÑаблиÑ.-V--versionвÑвеÑÑи веÑÑÐ¸Ñ oid2name и завеÑÑиÑÑÑÑ.
-x--extendedвÑвеÑÑи дополниÑелÑнÑе ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ каждом показÑваемом обÑекÑе: Ð¸Ð¼Ñ ÑаблиÑного пÑоÑÑÑанÑÑва, Ð¸Ð¼Ñ ÑÑ ÐµÐ¼Ñ Ð¸ OID.
-?--helpвÑвеÑÑи ÑпÑÐ°Ð²ÐºÑ Ð¾Ð± аÑгÑменÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки oid2name и завеÑÑиÑÑÑÑ.
oid2name Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð² командной ÑÑÑоке ÑледÑÑÑие аÑгÑменÑÑ, задаÑÑие паÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ:
-dбаза_даннÑÑ--dbname=база_даннÑÑÑÐµÐ»ÐµÐ²Ð°Ñ Ð±Ð°Ð·Ð° даннÑÑ .
-hÑеÑвеÑ--host=ÑеÑвеÑадÑÐµÑ ÑеÑвеÑа баз даннÑÑ .
-HÑеÑвеÑадÑÐµÑ ÑеÑвеÑа баз даннÑÑ . ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑÑиÑаеÑÑÑ ÑÑÑаÑевÑим Ñ Postgres Pro веÑÑии 12.
-pпоÑÑ--port=поÑÑпоÑÑ ÑеÑвеÑа баз даннÑÑ .
-UимÑ_полÑзоваÑелÑ--username=имÑ_полÑзоваÑелÑÐ¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± опÑеделÑннÑÑ
ÑаблиÑаÑ
, вÑбеÑиÑе иÑ
Ñ Ð°ÑгÑменÑом -o, -f и/или -t. ÐаÑамеÑÑ -o пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ OID, -f â ÑайловÑй Ñзел, а -t â Ð¸Ð¼Ñ ÑаблиÑÑ (на Ñамом деле он пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ñаблон LIKE, Ñак ÑÑо в нÑм можно задаÑÑ ÑÑо-Ñо вÑоде foo%). ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑи аÑгÑменÑÑ Ð² лÑбом колиÑеÑÑве; в вÑвод бÑдÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ Ð²Ñе обÑекÑÑ, ÑооÑвеÑÑÑвÑÑÑие лÑбÑм из ÑÑиÑ
Ñказаний. Ðо замеÑÑÑе, ÑÑо ÑÑи аÑгÑменÑÑ Ð±ÑдÑÑ Ð²ÑбиÑаÑÑ ÑолÑко обÑекÑÑ Ð² базе даннÑÑ
, заданной клÑÑом -d.
ÐÑли аÑгÑменÑÑ -o, -f и -t оÑÑÑÑÑÑвÑÑÑ, но пеÑедаÑÑÑÑ -d, бÑдÑÑ Ð²ÑÐ²ÐµÐ´ÐµÐ½Ñ Ð²Ñе ÑаблиÑÑ Ð² базе даннÑÑ
Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, заданнÑм в -d. Ð ÑÑом Ñежиме набоÑом вÑводимÑÑ
даннÑÑ
ÑпÑавлÑÑÑ Ð¿Ð°ÑамеÑÑÑ -S и -i.
ÐÑли оÑÑÑÑÑÑвÑÐµÑ Ð¸ аÑгÑÐ¼ÐµÐ½Ñ -d, вÑводиÑÑÑ ÑпиÑок OID баз даннÑÑ
. Также можно полÑÑиÑÑ ÑпиÑок ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв, пеÑедав аÑгÑÐ¼ÐµÐ½Ñ -s.
ÐеÑеменнÑе окÑÑжениÑ
PGHOSTPGPORTPGUSERÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 33.15).
ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ PG_COLOR вÑбиÑÐ°ÐµÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвеÑа в диагноÑÑиÑеÑкиÑ
ÑообÑениÑÑ
. ÐозможнÑе знаÑениÑ: always (вÑегда), auto (авÑомаÑиÑеÑки) и never (никогда).
ÐÑимеÑаниÑ
ÐÑогÑамме oid2name ÑÑебÑеÑÑÑ ÑабоÑаÑÑий ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ Ñ Ð¸ÑпÑавнÑми ÑиÑÑемнÑми каÑалогами. Таким обÑазом, в ÑиÑÑаÑиÑÑ Ñ ÐºÐ°ÑаÑÑÑоÑиÑеÑкими повÑеждениÑми Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ ÐµÑ Ð¸ÑполÑзование огÑаниÑено.
ÐÑимеÑÑ
$ # ЧÑо вообÑе еÑÑÑ Ð½Ð° ÑÑом ÑеÑвеÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
?
$ oid2name
All databases:
Oid Database Name Tablespace
----------------------------------
17228 alvherre pg_default
17255 regression pg_default
17227 template0 pg_default
1 template1 pg_default
$ oid2name -s
All tablespaces:
Oid Tablespace Name
-------------------------
1663 pg_default
1664 pg_global
155151 fastdisk
155152 bigdisk
$ # ХоÑоÑо, давайÑе взглÑнем на Ð±Ð°Ð·Ñ alvherre
$ cd $PGDATA/base/17228
$ # ÐолÑÑим пеÑвÑе 10 обÑекÑов Ð±Ð°Ð·Ñ (оÑÑоÑÑиÑованнÑÑ
по ÑазмеÑÑ) в ÑаблиÑном пÑоÑÑÑанÑÑве по ÑмолÑаниÑ
$ ls -lS * | head -10
-rw------- 1 alvherre alvherre 136536064 sep 14 09:51 155173
-rw------- 1 alvherre alvherre 17965056 sep 14 09:51 1155291
-rw------- 1 alvherre alvherre 1204224 sep 14 09:51 16717
-rw------- 1 alvherre alvherre 581632 sep 6 17:51 1255
-rw------- 1 alvherre alvherre 237568 sep 14 09:50 16674
-rw------- 1 alvherre alvherre 212992 sep 14 09:51 1249
-rw------- 1 alvherre alvherre 204800 sep 14 09:51 16684
-rw------- 1 alvherre alvherre 196608 sep 14 09:50 16700
-rw------- 1 alvherre alvherre 163840 sep 14 09:50 16699
-rw------- 1 alvherre alvherre 122880 sep 6 17:51 16751
$ # ÐоинÑеÑеÑÑемÑÑ, ÑÑо за Ñайл 155173...
$ oid2name -d alvherre -f 155173
From database "alvherre":
Filenode Table Name
----------------------
155173 accounts
$ # Ðожно ÑзнаÑÑ ÑÑÐ°Ð·Ñ Ð¾ неÑколÑкиÑ
обÑекÑаÑ
$ oid2name -d alvherre -f 155173 -f 1155291
From database "alvherre":
Filenode Table Name
-------------------------
155173 accounts
1155291 accounts_pkey
$ # Ðожно добавиÑÑ Ð´ÑÑгие паÑамеÑÑÑ Ð¸ полÑÑиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе подÑобноÑÑи Ñ -x
$ oid2name -d alvherre -t accounts -f 1155291 -x
From database "alvherre":
Filenode Table Name Oid Schema Tablespace
------------------------------------------------------
155173 accounts 155173 public pg_default
1155291 accounts_pkey 1155291 public pg_default
$ # ÐÑÑиÑлиÑÑ Ð¾Ð±ÑÑм, коÑоÑÑй Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½Ð° диÑке каждÑй обÑÐµÐºÑ ÐÐ
$ du [0-9]* |
> while read SIZE FILENODE
> do
> echo "$SIZE `oid2name -q -d alvherre -i -f $FILENODE`"
> done
16 1155287 branches_pkey
16 1155289 tellers_pkey
17561 1155291 accounts_pkey
...
$ # То же Ñамое, но Ñ ÑоÑÑиÑовкой по ÑазмеÑÑ
$ du [0-9]* | sort -rn | while read SIZE FN
> do
> echo "$SIZE `oid2name -q -d alvherre -f $FN`"
> done
133466 155173 accounts
17561 1155291 accounts_pkey
1177 16717 pg_proc_proname_args_nsp_index
...
$ # ÐÑоÑмоÑÑеÑÑ ÑодеÑжимое ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв можно в каÑалоге pg_tblspc
$ cd $PGDATA/pg_tblspc
$ oid2name -s
All tablespaces:
Oid Tablespace Name
-------------------------
1663 pg_default
1664 pg_global
155151 fastdisk
155152 bigdisk
$ # ÐбÑекÑÑ ÐºÐ°ÐºÐ¸Ñ
баз даннÑÑ
наÑ
одÑÑÑÑ Ð² ÑаблиÑном пÑоÑÑÑанÑÑве "fastdisk"?
$ ls -d 155151/*
155151/17228/ 155151/PG_VERSION
$ # Ð ÑÑо ÑÑо за база даннÑÑ
17228?
$ oid2name
All databases:
Oid Database Name Tablespace
----------------------------------
17228 alvherre pg_default
17255 regression pg_default
17227 template0 pg_default
1 template1 pg_default
$ # ÐавайÑе поÑмоÑÑим, какие обÑекÑÑ ÑÑой Ð±Ð°Ð·Ñ ÑодеÑжаÑÑÑ Ð² данном ÑаблиÑном пÑоÑÑÑанÑÑве.
$ cd 155151/17228
$ ls -l
total 0
-rw------- 1 postgres postgres 0 sep 13 23:20 155156
$ # Ðда, ÑаблиÑа невелика... и ÑÑо ÑÑо за ÑаблиÑа?
$ oid2name -d alvherre -f 155156
From database "alvherre":
Filenode Table Name
----------------------
155156 fooÐвÑоÑ
Ð. ÐÐ°Ð»Ð¼ÐµÑ <bpalmer@crimelabs.net>