'\" t .\" Title: oid2name .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026 .\" Manual: PostgreSQL 18.6 Documentation .\" Source: PostgreSQL 18.6 .\" Language: English .\" .TH "OID2NAME" "1" "2026" "PostgreSQL 18.6" "PostgreSQL 18.6 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" oid2name \- تطبیق OIDها و filenodeها در یک دایرکتوری داده PostgreSQL .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBoid2name\fR\ 'u \fBoid2name\fR [\fIگزینه\fR...] .SH "توضیحات (DESCRIPTION)" .PP oid2name یک برنامه سودمند است که به مدیران سیستم در بررسی ساختار فایلی مورد استفاده توسط PostgreSQL کمک می‌کند\&. برای استفاده از آن، باید با ساختار فایلی پایگاه داده، که در فصل\ \&66 شرح داده شده است، آشنا باشید\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br .PP نام \(lqoid2name\(rq جنبه تاریخی دارد و در واقع تا حدودی گمراه‌کننده است، زیرا در بیشتر مواقع هنگام استفاده از آن، در حقیقت با شماره‌های filenode جدول‌ها (که نام‌های فایل قابل مشاهده در دایرکتوری‌های پایگاه داده هستند) سر و کار خواهید داشت\&. اطمینان حاصل کنید که تفاوت میان OIDهای جدول و filenodeهای جدول را درک می‌کنید! .sp .5v .RE .PP oid2name به پایگاه داده مورد نظر متصل می‌شود و اطلاعات OID، filenode و/یا نام جدول را استخراج می‌کند\&. همچنین می‌توانید از آن بخواهید تا OIDهای پایگاه داده یا OIDهای tablespace را نمایش دهد\&. .SH "گزینه‌ها (OPTIONS)" .PP oid2name آرگومان‌های خط فرمان زیر را می‌پذیرد: .PP \fB\-f \fR\fB\fIfilenode\fR\fR .br \fB\-\-filenode=\fR\fB\fIfilenode\fR\fR .RS 4 نمایش اطلاعات جدول دارای filenode مشخص‌شده در \fIfilenode\fR\&. .RE .PP \fB\-i\fR .br \fB\-\-indexes\fR .RS 4 گنجاندن ایندکس‌ها و توالی‌ها در فهرست خروجی\&. .RE .PP \fB\-o \fR\fB\fIoid\fR\fR .br \fB\-\-oid=\fR\fB\fIoid\fR\fR .RS 4 نمایش اطلاعات جدول دارای شناسه OID مشخص‌شده در \fIoid\fR\&. .RE .PP \fB\-q\fR .br \fB\-\-quiet\fR .RS 4 حذف سرآیندها (مفید برای اسکریپت‌نویسی)\&. .RE .PP \fB\-s\fR .br \fB\-\-tablespaces\fR .RS 4 نمایش OIDهای tablespace\&. .RE .PP \fB\-S\fR .br \fB\-\-system\-objects\fR .RS 4 گنجاندن اشیای سیستمی (اشیای موجود در طرح‌واره‌های \fBinformation_schema\fR، \fBpg_toast\fR و \fBpg_catalog\fR)\&. .RE .PP \fB\-t \fR\fB\fItablename_pattern\fR\fR .br \fB\-\-table=\fR\fB\fItablename_pattern\fR\fR .RS 4 نمایش اطلاعات جدول(هایی) که با \fItablename_pattern\fR تطبیق دارند\&. .RE .PP \fB\-V\fR .br \fB\-\-version\fR .RS 4 چاپ نسخه oid2name و خروج\&. .RE .PP \fB\-x\fR .br \fB\-\-extended\fR .RS 4 نمایش اطلاعات بیشتر درباره هر شیء نشان داده شده: نام tablespace، نام طرح‌واره و OID\&. .RE .PP \fB\-?\fR .br \fB\-\-help\fR .RS 4 نمایش راهنما درباره آرگومان‌های خط فرمان oid2name و خروج\&. .RE .PP oid2name همچنین آرگومان‌های خط فرمان زیر را برای پارامترهای اتصال می‌پذیرد: .PP \fB\-d \fR\fB\fIdatabase\fR\fR .br \fB\-\-dbname=\fR\fB\fIdatabase\fR\fR .RS 4 پایگاه داده برای اتصال به آن\&. .RE .PP \fB\-h \fR\fB\fIhost\fR\fR .br \fB\-\-host=\fR\fB\fIhost\fR\fR .RS 4 میزبان سرور پایگاه داده\&. .RE .PP \fB\-H \fR\fB\fIhost\fR\fR .RS 4 میزبان سرور پایگاه داده\&. استفاده از این پارامتر از PostgreSQL 12 \fIمنسوخ شده است\fR\&. .RE .PP \fB\-p \fR\fB\fIport\fR\fR .br \fB\-\-port=\fR\fB\fIport\fR\fR .RS 4 درگاه سرور پایگاه داده\&. .RE .PP \fB\-U \fR\fB\fIusername\fR\fR .br \fB\-\-username=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری برای اتصال\&. .RE.PP برای نمایش جدول‌های خاص، جدول‌های مورد نظر برای نمایش را با استفاده از \fB\-o\fR، \fB\-f\fR و/یا \fB\-t\fR انتخاب کنید\&. \fB\-o\fR یک OID می‌گیرد، \fB\-f\fR یک filenode می‌گیرد، و \fB\-t\fR نام یک جدول را می‌پذیرد (در واقع، این یک الگوی LIKE است، بنابراین می‌توانید از مواردی مانند foo% استفاده کنید)\&. شما می‌توانید به تعداد دلخواه از این گزینه‌ها استفاده کنید، و فهرست حاصل شامل تمام اشیایی خواهد بود که با هر یک از این گزینه‌ها تطابق داشته باشند\&. اما توجه داشته باشید که این گزینه‌ها تنها می‌توانند اشیای موجود در پایگاه داده داده‌شده توسط \fB\-d\fR را نشان دهند\&. .PP اگر هیچ‌کدام از \fB\-o\fR، \fB\-f\fR یا \fB\-t\fR را مشخص نکنید، اما \fB\-d\fR را بدهید، همهٔ جدول‌های موجود در پایگاه داده مشخص‌شده با \fB\-d\fR فهرست خواهند شد\&. در این حالت، گزینه‌های \fB\-S\fR و \fB\-i\fR کنترل می‌کنند که چه مواردی در فهرست قرار گیرند\&. .PP اگر \fB\-d\fR را هم مشخص نکنید، فهرستی از OIDهای پایگاه‌های داده نمایش داده می‌شود\&. همچنین می‌توانید \fB\-s\fR را مشخص کنید تا فهرستی از tablespaceها را دریافت نمایید\&. .SH "محیط (ENVIRONMENT)" .PP \fBPGHOST\fR .br \fBPGPORT\fR .br \fBPGUSER\fR .RS 4 پارامترهای پیش‌فرض اتصال\&. .RE .PP این ابزار، مانند اغلب ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانی‌شده توسط libpq نیز استفاده می‌کند (بخش\ \&32.15 را ببینید)\&. .PP متغیر محیطی \fBPG_COLOR\fR مشخص می‌کند که آیا در پیام‌های عیب‌یابی از رنگ استفاده شود یا خیر\&. مقادیر ممکن عبارتند از always، auto و never\&. .SH "نکات (NOTES)" .PP oid2name نیازمند یک سرور پایگاه داده در حال اجرا با کاتالوگ‌های سیستمی سالم (خراب‌نشده) است\&. بنابراین، استفاده از آن برای بازیابی از وضعیت‌های خرابی فاجعه‌بار پایگاه داده تنها به شکلی بسیار محدود امکان‌پذیر است\&. .SH "مثال‌ها (EXAMPLES)" .sp .if n \{\ .RS 4 .\} .nf $ # what\*(Aqs in this database server, anyway? $ 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 $ # OK, let\*(Aqs look into database alvherre $ cd $PGDATA/base/17228 $ # get top 10 db objects in the default tablespace, ordered by size $ 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 $ # What file is 155173? $ oid2name \-d alvherre \-f 155173 From database "alvherre": Filenode Table Name \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 155173 accounts $ # you can ask for more than one object $ oid2name \-d alvherre \-f 155173 \-f 1155291 From database "alvherre": Filenode Table Name \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 155173 accounts 1155291 accounts_pkey $ # you can mix the options, and get more details with \-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 $ # show disk space for every db object $ 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 \&.\&.\&. $ # same, but sort by size $ 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 \&.\&.\&. $ # If you want to see what\*(Aqs in tablespaces, use the pg_tblspc directory $ cd $PGDATA/pg_tblspc $ oid2name \-s All tablespaces: Oid Tablespace Name \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 1663 pg_default 1664 pg_global 155151 fastdisk 155152 bigdisk $ # what databases have objects in tablespace "fastdisk"? $ ls \-d 155151/* 155151/17228/ 155151/PG_VERSION $ # Oh, what was database 17228 again? $ oid2name All databases: Oid Database Name Tablespace \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 17228 alvherre pg_default 17255 regression pg_default 17227 template0 pg_default 1 template1 pg_default $ # Let\*(Aqs see what objects does this database have in the tablespace\&. $ cd 155151/17228 $ ls \-l total 0 \-rw\-\-\-\-\-\-\- 1 postgres postgres 0 sep 13 23:20 155156 $ # OK, this is a pretty small table \&.\&.\&. but which one is it? $ oid2name \-d alvherre \-f 155156 From database "alvherre": Filenode Table Name \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- 155156 foo .fi .if n \{\ .RE .\}.SH "نویسنده (AUTHOR)" .PP B\&. Palmer