'\" t .\" Title: pg_amcheck .\" 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 "PG_AMCHECK" "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)" pg_amcheck \- بررسی خرابی در یک یا چند پایگاه داده PostgreSQL .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBpg_amcheck\fR\ 'u \fBpg_amcheck\fR [\fIoption\fR...] [\fIdbname\fR] .SH "توضیحات (DESCRIPTION)" .PP ابزار pg_amcheck از اجرای توابع بررسی خرابی amcheck روی یک یا چند پایگاه داده پشتیبانی می‌کند؛ همراه با گزینه‌هایی برای انتخاب اینکه کدام طرح‌واره‌ها، جدول‌ها و نمایه‌ها بررسی شوند، چه نوع بررسی‌هایی صورت گیرد، و اینکه آیا بررسی‌ها به صورت موازی انجام شوند یا خیر، و در صورت موازی بودن، چه تعداد اتصال هم‌زمان برقرار و استفاده شود\&. .PP در حال حاضر تنها رابطه‌های جدول معمولی و toast، نماهای مادی‌سازی‌شده (materialized views)، توالی‌ها (sequences) و نمایه‌های btree پشتیبانی می‌شوند\&. از سایر انواع رابطه‌ها بدون نمایش پیامی صرف‌نظر می‌شود\&. .PP اگر dbname مشخص شده باشد، باید نام یک پایگاه داده تکی برای بررسی باشد و هیچ گزینهٔ دیگری برای انتخاب پایگاه داده نباید وجود داشته باشد\&. در غیر این صورت، اگر هر یک از گزینه‌های انتخاب پایگاه داده مشخص شده باشند، تمام پایگاه‌های دادهٔ منطبق بررسی خواهند شد\&. در صورت عدم وجود چنین گزینه‌هایی، پایگاه دادهٔ پیش‌فرض بررسی می‌شود\&. گزینه‌های انتخاب پایگاه داده شامل \fB\-\-all\fR، \fB\-\-database\fR و \fB\-\-exclude\-database\fR هستند\&. این گزینه‌ها همچنین شامل \fB\-\-relation\fR، \fB\-\-exclude\-relation\fR، \fB\-\-table\fR، \fB\-\-exclude\-table\fR، \fB\-\-index\fR و \fB\-\-exclude\-index\fR می‌شوند، اما تنها زمانی که این گزینه‌ها همراه با یک الگوی سه‌بخشی (به عنوان مثال \fBmydb*\&.myschema*\&.myrel*\fR) به کار روند\&. در نهایت، شامل \fB\-\-schema\fR و \fB\-\-exclude\-schema\fR نیز هستند هنگامی که با یک الگوی دو‌بخشی (به عنوان مثال \fBmydb*\&.myschema*\fR) استفاده شوند\&. .PP \fIdbname\fR می‌تواند یک رشتهٔ اتصال (connection string) نیز باشد\&. .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های خط فرمان زیر مشخص می‌کنند چه مواردی بررسی شوند: .PP \fB\-a\fR .br \fB\-\-all\fR .RS 4 تمام پایگاه‌های داده را بررسی می‌کند، به جز مواردی که با \fB\-\-exclude\-database\fR مستثنی شده‌اند\&. .RE .PP \fB\-d \fR\fB\fIpattern\fR\fR .br \fB\-\-database=\fR\fB\fIpattern\fR\fR .RS 4 پایگاه‌های دادهٔ منطبق با \fIpattern\fR مشخص‌شده را بررسی می‌کند، به جز مواردی که توسط \fB\-\-exclude\-database\fR مستثنی شده‌اند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .RE .PP \fB\-D \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-database=\fR\fB\fIpattern\fR\fR .RS 4 پایگاه‌های دادهٔ منطبق با \fIpattern\fR داده‌شده را مستثنی می‌کند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .RE .PP \fB\-i \fR\fB\fIpattern\fR\fR .br \fB\-\-index=\fR\fB\fIpattern\fR\fR .RS 4 نمایه‌های منطبق با \fIpattern\fR مشخص‌شده را بررسی می‌کند، مگر اینکه به شکل دیگری مستثنی شده باشند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp این گزینه مشابه با گزینهٔ \fB\-\-relation\fR است، با این تفاوت که تنها برای نمایه‌ها اعمال می‌شود و شامل سایر انواع رابطه‌ها نمی‌شود\&. .RE .PP \fB\-I \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-index=\fR\fB\fIpattern\fR\fR .RS 4 نمایه‌های منطبق با \fIpattern\fR مشخص‌شده را مستثنی می‌کند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp این گزینه مشابه با گزینهٔ \fB\-\-exclude\-relation\fR است، با این تفاوت که تنها برای نمایه‌ها اعمال می‌شود، نه سایر انواع رابطه‌ها\&. .RE .PP \fB\-r \fR\fB\fIpattern\fR\fR .br \fB\-\-relation=\fR\fB\fIpattern\fR\fR .RS 4 رابطه‌های منطبق با \fIpattern\fR مشخص‌شده را بررسی می‌کند، مگر اینکه به شکل دیگری مستثنی شده باشند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp الگوها می‌توانند نامقید (unqualified) باشند، مانند myrel*، یا دارای قید طرح‌واره (schema\-qualified) باشند، مانند myschema*\&.myrel* یا دارای قید پایگاه داده و طرح‌واره، مانند mydb*\&.myschema*\&.myrel*\&. یک الگوی مقید به پایگاه داده، پایگاه‌های دادهٔ منطبق را به فهرست پایگاه‌های داده‌ای که باید بررسی شوند اضافه خواهد کرد\&. .RE .PP \fB\-R \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-relation=\fR\fB\fIpattern\fR\fR .RS 4 رابطه‌های منطبق با \fIpattern\fR مشخص‌شده را مستثنی می‌کند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp همانند \fB\-\-relation\fR، الگوی \fIpattern\fR می‌تواند نامقید، مقید به طرح‌واره، یا مقید به پایگاه داده و طرح‌واره باشد\&. .RE .PP \fB\-s \fR\fB\fIpattern\fR\fR .br \fB\-\-schema=\fR\fB\fIpattern\fR\fR .RS 4 جدول‌ها و نمایه‌های موجود در طرح‌واره‌های منطبق با \fIpattern\fR مشخص‌شده را بررسی می‌کند، مگر اینکه به شکل دیگری مستثنی شده باشند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp برای انتخاب صرفاً جدول‌ها در طرح‌واره‌های منطبق با یک الگوی خاص، می‌توانید از عبارتی مانند \-\-table=SCHEMAPAT\&.* \-\-no\-dependent\-indexes استفاده کنید\&. برای انتخاب صرفاً نمایه‌ها، از عبارتی مانند \-\-index=SCHEMAPAT\&.* استفاده کنید\&. .sp الگوی طرح‌واره می‌تواند مقید به پایگاه داده باشد\&. برای نمونه، می‌توانید بنویسید \-\-schema=mydb*\&.myschema* تا طرح‌واره‌های منطبق با myschema* در پایگاه‌های دادهٔ منطبق با mydb* انتخاب شوند\&. .RE .PP \fB\-S \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-schema=\fR\fB\fIpattern\fR\fR .RS 4 جدول‌ها و نمایه‌های موجود در طرح‌واره‌های منطبق با \fIpattern\fR مشخص‌شده را مستثنی می‌کند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp همانند \fB\-\-schema\fR، الگو می‌تواند مقید به پایگاه داده باشد\&. .RE .PP \fB\-t \fR\fB\fIpattern\fR\fR .br \fB\-\-table=\fR\fB\fIpattern\fR\fR .RS 4 جدول‌های منطبق با \fIpattern\fR مشخص‌شده را بررسی می‌کند، مگر اینکه به شکل دیگری مستثنی شده باشند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp این گزینه مشابه با گزینهٔ \fB\-\-relation\fR است، با این تفاوت که تنها برای جدول‌ها، نماهای مادی‌سازی‌شده و دنباله‌ها اعمال می‌شود، نه نمایه‌ها\&. .RE .PP \fB\-T \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-table=\fR\fB\fIpattern\fR\fR .RS 4 جدول‌های منطبق با \fIpattern\fR مشخص‌شده را مستثنی می‌کند\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .sp این گزینه مشابه با گزینهٔ \fB\-\-exclude\-relation\fR است، با این تفاوت که تنها برای جدول‌ها، نماهای مادی‌سازی‌شده و دنباله‌ها اعمال می‌شود، نه نمایه‌ها\&. .RE .PP \fB\-\-no\-dependent\-indexes\fR .RS 4 به‌طور پیش‌فرض، اگر جدولی بررسی شود، تمام نمایه‌های btree آن جدول نیز بررسی خواهند شد، حتی اگر صراحتاً توسط گزینه‌ای مانند \-\-index یا \-\-relation انتخاب نشده باشند\&. این گزینه این رفتار را غیرفعال می‌کند\&. .RE.PP \fB\-\-no\-dependent\-toast\fR .RS 4 به‌طور پیش‌فرض، اگر یک جدول بررسی شود، جدول toast آن (در صورت وجود) نیز بررسی خواهد شد، حتی اگر صریحاً توسط گزینه‌ای مانند \-\-table یا \-\-relation\& انتخاب نشده باشد\&. این گزینه این رفتار را لغو می‌کند\&. .RE .PP \fB\-\-no\-strict\-names\fR .RS 4 به‌طور پیش‌فرض، اگر آرگومانی به \-\-database، \-\-table، \-\-index یا \-\-relation با هیچ شیئی مطابقت نداشته باشد، یک خطای مهلک است\&. این گزینه آن خطا را به یک هشدار تنزل می‌دهد\&. .RE .PP گزینه‌های خط فرمان زیر، بررسی جدول‌ها را کنترل می‌کنند: .PP \fB\-\-exclude\-toast\-pointers\fR .RS 4 به‌طور پیش‌فرض، هر زمان که در یک جدول با یک اشاره‌گر toast مواجه شود، یک جستجو انجام می‌شود تا اطمینان حاصل گردد که به مدخل‌های به‌ظاهر معتبر در جدول toast ارجاع می‌دهد\&. این بررسی‌ها می‌توانند بسیار کُند باشند و می‌توان از این گزینه برای نادیده گرفتن آن‌ها استفاده کرد\&. .RE .PP \fB\-\-on\-error\-stop\fR .RS 4 پس از گزارش تمام خرابی‌ها در اولین صفحه از جدولی که در آن خرابی یافت شده است، پردازش آن relation جدول را متوقف کرده و به سراغ جدول یا نمایهٔ بعدی بروید\&. .sp توجه داشته باشید که بررسی نمایه همیشه پس از اولین صفحهٔ خراب متوقف می‌شود\&. این گزینه تنها در مورد relationهای جدول معنا دارد\&. .RE .PP \fB\-\-skip=\fR\fB\fIoption\fR\fR .RS 4 اگر all\-frozen داده شود، بررسی‌های خرابی جدول از صفحاتی در تمام جدول‌ها که به عنوان all frozen علامت‌گذاری شده‌اند صرف‌نظر خواهد کرد\&. .sp اگر all\-visible داده شود، بررسی‌های خرابی جدول از صفحاتی در تمام جدول‌ها که به عنوان all visible علامت‌گذاری شده‌اند صرف‌نظر خواهد کرد\&. .sp به‌طور پیش‌فرض، هیچ صفحه‌ای نادیده گرفته نمی‌شود\&. این حالت را می‌توان با none مشخص کرد، اما از آنجا که این مقدار پیش‌فرض است، نیازی به ذکر آن نیست\&. .RE .PP \fB\-\-startblock=\fR\fB\fIblock\fR\fR .RS 4 بررسی را از شماره بلوک مشخص‌شده آغاز می‌کند\&. اگر relation جدول در حال بررسی، کمتر از این تعداد بلوک داشته باشد، خطایی رخ خواهد داد\&. این گزینه برای نمایه‌ها اعمال نمی‌شود و احتمالاً تنها هنگام بررسی یک relation جدول منفرد مفید است\&. برای هشدارهای بیشتر به \-\-endblock مراجعه کنید\&. .RE .PP \fB\-\-endblock=\fR\fB\fIblock\fR\fR .RS 4 بررسی را در شماره بلوک مشخص‌شده پایان می‌دهد\&. اگر relation جدول در حال بررسی، کمتر از این تعداد بلوک داشته باشد، خطایی رخ خواهد داد\&. این گزینه برای نمایه‌ها اعمال نمی‌شود و احتمالاً تنها هنگام بررسی یک relation جدول منفرد مفید است\&. اگر هم یک جدول معمولی و هم یک جدول toast بررسی شوند، این گزینه برای هر دو اعمال خواهد شد، اما بلوک‌های toast با شماره بالاتر همچنان ممکن است هنگام اعتبارسنجی اشاره‌گرهای toast مورد دسترسی قرار گیرند، مگر اینکه با استفاده از \fB\-\-exclude\-toast\-pointers\fR از آن جلوگیری شود\&. .RE .PP گزینه‌های خط فرمان زیر، بررسی نمایه‌های B\-tree را کنترل می‌کنند: .PP \fB\-\-checkunique\fR .RS 4 به ازای هر نمایه با قید یکتایی که بررسی می‌شود، با استفاده از گزینه \fBcheckunique\fR در amcheck، بررسی می‌کند که بیش از یکی از مدخل‌های تکراری در نمایه قابل مشاهده نباشد\&. .RE .PP \fB\-\-heapallindexed\fR .RS 4 به ازای هر نمایهٔ بررسی‌شده، با استفاده از گزینه \fBheapallindexed\fR در amcheck، حضور تمام تاپل‌های heap به عنوان تاپل‌های نمایه در نمایه را تأیید می‌کند\&. .RE .PP \fB\-\-parent\-check\fR .RS 4 به ازای هر نمایهٔ btree که بررسی می‌شود، از تابع \fBbt_index_parent_check\fR در amcheck استفاده می‌کند که بررسی‌های بیشتری را روی روابط والد/فرزند در طول بررسی نمایه انجام می‌دهد\&. .sp حالت پیش‌فرض استفاده از تابع \fBbt_index_check\fR در amcheck است، اما توجه داشته باشید که استفاده از گزینه \fB\-\-rootdescend\fR به طور ضمنی \fBbt_index_parent_check\fR را انتخاب می‌کند\&. .RE .PP \fB\-\-rootdescend\fR .RS 4 به ازای هر نمایهٔ بررسی‌شده، با انجام یک جستجوی جدید از صفحه ریشه برای هر تاپل با استفاده از گزینه \fBrootdescend\fR در amcheck، تاپل‌ها را در سطح برگ دوباره پیدا می‌کند\&. .sp استفاده از این گزینه به‌طور ضمنی گزینه \fB\-\-parent\-check\fR را نیز انتخاب می‌کند\&. .sp این شکل از اعتبارسنجی در اصل برای کمک به توسعه ویژگی‌های نمایه btree نوشته شده بود\&. این گزینه ممکن است کاربرد محدودی داشته باشد یا حتی در کمک به شناسایی انواع خرابی‌هایی که در عمل رخ می‌دهند هیچ کاربردی نداشته باشد\&. همچنین ممکن است باعث شود بررسی خرابی بسیار طولانی‌تر شود و منابع بسیار بیشتری را روی سرور مصرف کند\&. .RE .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 بررسی‌های اضافی انجام‌شده روی نمایه‌های B\-tree هنگام مشخص شدن گزینه \fB\-\-parent\-check\fR یا گزینه \fB\-\-rootdescend\fR، به قفل‌های نسبتاً قوی در سطح relation نیاز دارند\&. این بررسی‌ها تنها بررسی‌هایی هستند که تغییر هم‌روند داده توسط دستورهای \fBINSERT\fR، \fBUPDATE\fR و \fBDELETE\fR را مسدود می‌کنند\&. .sp .5v .RE .PP گزینه‌های خط فرمان زیر، اتصال به سرور را کنترل می‌کنند: .PP \fB\-h \fR\fB\fIhostname\fR\fR .br \fB\-\-host=\fR\fB\fIhostname\fR\fR .RS 4 نام میزبان دستگاهی را که سرور روی آن در حال اجرا است مشخص می‌کند\&. اگر مقدار با یک ممیز (اسلش) شروع شود، به عنوان دایرکتوری برای سوکت دامنه یونیکس (Unix domain socket) استفاده می‌شود\&. .RE .PP \fB\-p \fR\fB\fIport\fR\fR .br \fB\-\-port=\fR\fB\fIport\fR\fR .RS 4 پورت TCP یا پسوند فایل سوکت دامنه یونیکس محلی را که سرور برای اتصالات به آن گوش می‌دهد، مشخص می‌کند\&. .RE .PP \fB\-U\fR .br \fB\-\-username=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری برای اتصال\&. .RE .PP \fB\-w\fR .br \fB\-\-no\-password\fR .RS 4 هرگز اعلان گذرواژه صادر نمی‌کند\&. اگر سرور نیازمند احراز هویت با گذرواژه باشد و گذرواژه‌ای از روش‌های دیگر مانند فایل \&.pgpass در دسترس نباشد، تلاش برای اتصال ناموفق خواهد بود\&. این گزینه می‌تواند در کارهای دسته‌ای (batch jobs) و اسکریپت‌هایی که هیچ کاربری برای وارد کردن گذرواژه حضور ندارد مفید باشد\&. .RE .PP \fB\-W\fR .br \fB\-\-password\fR .RS 4 ابزار pg_amcheck را مجبور می‌کند تا قبل از اتصال به پایگاه‌داده، درخواست گذرواژه کند\&. .sp این گزینه هرگز ضروری نیست، زیرا اگر سرور احراز هویت با گذرواژه را بخواهد، pg_amcheck به‌طور خودکار اعلان گذرواژه را نمایش خواهد داد\&. با این حال، pg_amcheck یک تلاش اتصال را هدر خواهد داد تا متوجه شود سرور گذرواژه می‌خواهد\&. در برخی موارد ارزش دارد که \fB\-W\fR را مشخص کنید تا از تلاش اتصال اضافی جلوگیری شود\&. .RE .PP \fB\-\-maintenance\-db=\fR\fB\fIdbname\fR\fR .RS 4 یک پایگاه‌داده یا connection string را مشخص می‌کند که برای کشف فهرست پایگاه‌های داده‌ای که باید بررسی شوند به کار رود\&. اگر نه از \fB\-\-all\fR و نه از هیچ گزینه‌ای شامل الگوی پایگاه‌داده استفاده نشده باشد، چنین اتصالی لازم نیست و این گزینه کاری انجام نمی‌دهد\&. در غیر این صورت، هر پارامتر connection string به‌جز نام پایگاه‌داده که در مقدار این گزینه گنجانده شده باشد، هنگام اتصال به پایگاه‌های داده در حال بررسی نیز استفاده خواهد شد\&. اگر این گزینه نادیده گرفته شود، مقدار پیش‌فرض postgres یا در صورت عدم موفقیت آن، template1 است\&. .RE .PP گزینه‌های دیگری نیز در دسترس هستند: .PP \fB\-e\fR .br \fB\-\-echo\fR .RS 4 تمام دستورات SQL ارسال‌شده به سرور را در stdout بازتاب (echo) می‌کند\&. .RE.PP \fB\-j \fR\fB\fInum\fR\fR .br \fB\-\-jobs=\fR\fB\fInum\fR\fR .RS 4 استفاده از \fInum\fR اتصال هم‌روند به سرور، یا یک اتصال به ازای هر شیء برای بررسی، هر کدام که کمتر باشد\&. .sp پیش‌فرض استفاده از یک اتصال منفرد است\&. .RE .PP \fB\-P\fR .br \fB\-\-progress\fR .RS 4 نمایش اطلاعات پیشرفت کار\&. اطلاعات پیشرفت شامل تعداد رابطه‌هایی است که بررسی آن‌ها تکمیل شده است، و اندازهٔ کل آن رابطه‌ها\&. همچنین شامل تعداد کل رابطه‌هایی است که در نهایت بررسی خواهند شد، و اندازهٔ تخمینی آن رابطه‌ها\&. .RE .PP \fB\-v\fR .br \fB\-\-verbose\fR .RS 4 چاپ پیام‌های بیشتر\&. به‌ویژه، این گزینه برای هر رابطه‌ای که در حال بررسی است پیامی چاپ می‌کند و سطح جزئیات ارائه‌شده برای خطاهای سرور را افزایش می‌دهد\&. .RE .PP \fB\-V\fR .br \fB\-\-version\fR .RS 4 چاپ نسخهٔ pg_amcheck و خروج\&. .RE .PP \fB\-\-install\-missing\fR .br \fB\-\-install\-missing=\fR\fB\fIschema\fR\fR .RS 4 نصب هرگونه افزونهٔ ناموجودی که برای بررسی پایگاه(های) داده لازم است\&. در صورت عدم نصب قبلی، اشیاء هر افزونه در \fIschema\fR داده‌شده، یا در صورت تعیین نشدن، در طرح‌وارهٔ pg_catalog نصب خواهند شد\&. .sp در حال حاضر، تنها افزونهٔ مورد نیاز amcheck است\&. .RE .PP \fB\-?\fR .br \fB\-\-help\fR .RS 4 نمایش راهنما دربارهٔ آرگومان‌های خط فرمان pg_amcheck و خروج\&. .RE .SH "محیط (ENVIRONMENT)" .PP \fBpg_amcheck\fR، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانی‌شده توسط libpq نیز استفاده می‌کند (ببینید: بخش\ \&32.15)\&. .PP متغیر محیطی \fBPG_COLOR\fR مشخص می‌کند که آیا در پیام‌های عیب‌یابی از رنگ استفاده شود یا خیر\&. مقادیر ممکن عبارتند از always، auto و never\&. .SH "نکات (NOTES)" .PP pg_amcheck برای کار با PostgreSQL نسخهٔ 14\&.0 و بالاتر طراحی شده است\&. .SH "همچنین ببینید (SEE ALSO)" amcheck