| PG_AMCHECK(1) | PostgreSQL 18.6 Documentation | PG_AMCHECK(1) |
نام (NAME)
pg_amcheck - بررسی خرابی در یک یا چند پایگاه داده PostgreSQL
خلاصه دستور (SYNOPSIS)
pg_amcheck [option...] [dbname]
توضیحات (DESCRIPTION)
ابزار pg_amcheck از اجرای توابع بررسی خرابی amcheck روی یک یا چند پایگاه داده پشتیبانی میکند؛ همراه با گزینههایی برای انتخاب اینکه کدام طرحوارهها، جدولها و نمایهها بررسی شوند، چه نوع بررسیهایی صورت گیرد، و اینکه آیا بررسیها به صورت موازی انجام شوند یا خیر، و در صورت موازی بودن، چه تعداد اتصال همزمان برقرار و استفاده شود.
در حال حاضر تنها رابطههای جدول معمولی و toast، نماهای مادیسازیشده (materialized views)، توالیها (sequences) و نمایههای btree پشتیبانی میشوند. از سایر انواع رابطهها بدون نمایش پیامی صرفنظر میشود.
اگر dbname مشخص شده باشد، باید نام یک پایگاه داده تکی برای بررسی باشد و هیچ گزینهٔ دیگری برای انتخاب پایگاه داده نباید وجود داشته باشد. در غیر این صورت، اگر هر یک از گزینههای انتخاب پایگاه داده مشخص شده باشند، تمام پایگاههای دادهٔ منطبق بررسی خواهند شد. در صورت عدم وجود چنین گزینههایی، پایگاه دادهٔ پیشفرض بررسی میشود. گزینههای انتخاب پایگاه داده شامل --all، --database و --exclude-database هستند. این گزینهها همچنین شامل --relation، --exclude-relation، --table، --exclude-table، --index و --exclude-index میشوند، اما تنها زمانی که این گزینهها همراه با یک الگوی سهبخشی (به عنوان مثال mydb*.myschema*.myrel*) به کار روند. در نهایت، شامل --schema و --exclude-schema نیز هستند هنگامی که با یک الگوی دوبخشی (به عنوان مثال mydb*.myschema*) استفاده شوند.
dbname میتواند یک رشتهٔ اتصال (connection string) نیز باشد.
گزینهها (OPTIONS)
گزینههای خط فرمان زیر مشخص میکنند چه مواردی بررسی شوند:
-a
--all
-d pattern
--database=pattern
-D pattern
--exclude-database=pattern
-i pattern
--index=pattern
این گزینه مشابه با گزینهٔ --relation است، با این تفاوت که تنها برای نمایهها اعمال میشود و شامل سایر انواع رابطهها نمیشود.
-I pattern
--exclude-index=pattern
این گزینه مشابه با گزینهٔ --exclude-relation است، با این تفاوت که تنها برای نمایهها اعمال میشود، نه سایر انواع رابطهها.
-r pattern
--relation=pattern
الگوها میتوانند نامقید (unqualified) باشند، مانند myrel*، یا دارای قید طرحواره (schema-qualified) باشند، مانند myschema*.myrel* یا دارای قید پایگاه داده و طرحواره، مانند mydb*.myschema*.myrel*. یک الگوی مقید به پایگاه داده، پایگاههای دادهٔ منطبق را به فهرست پایگاههای دادهای که باید بررسی شوند اضافه خواهد کرد.
-R pattern
--exclude-relation=pattern
همانند --relation، الگوی pattern میتواند نامقید، مقید به طرحواره، یا مقید به پایگاه داده و طرحواره باشد.
-s pattern
--schema=pattern
برای انتخاب صرفاً جدولها در طرحوارههای منطبق با یک الگوی خاص، میتوانید از عبارتی مانند --table=SCHEMAPAT.* --no-dependent-indexes استفاده کنید. برای انتخاب صرفاً نمایهها، از عبارتی مانند --index=SCHEMAPAT.* استفاده کنید.
الگوی طرحواره میتواند مقید به پایگاه داده باشد. برای نمونه، میتوانید بنویسید --schema=mydb*.myschema* تا طرحوارههای منطبق با myschema* در پایگاههای دادهٔ منطبق با mydb* انتخاب شوند.
-S pattern
--exclude-schema=pattern
همانند --schema، الگو میتواند مقید به پایگاه داده باشد.
-t pattern
--table=pattern
این گزینه مشابه با گزینهٔ --relation است، با این تفاوت که تنها برای جدولها، نماهای مادیسازیشده و دنبالهها اعمال میشود، نه نمایهها.
-T pattern
--exclude-table=pattern
این گزینه مشابه با گزینهٔ --exclude-relation است، با این تفاوت که تنها برای جدولها، نماهای مادیسازیشده و دنبالهها اعمال میشود، نه نمایهها.
--no-dependent-indexes
--no-strict-names
گزینههای خط فرمان زیر، بررسی جدولها را کنترل میکنند:
--exclude-toast-pointers
--on-error-stop
توجه داشته باشید که بررسی نمایه همیشه پس از اولین صفحهٔ خراب متوقف میشود. این گزینه تنها در مورد relationهای جدول معنا دارد.
--skip=option
اگر all-visible داده شود، بررسیهای خرابی جدول از صفحاتی در تمام جدولها که به عنوان all visible علامتگذاری شدهاند صرفنظر خواهد کرد.
بهطور پیشفرض، هیچ صفحهای نادیده گرفته نمیشود. این حالت را میتوان با none مشخص کرد، اما از آنجا که این مقدار پیشفرض است، نیازی به ذکر آن نیست.
--startblock=block
--endblock=block
گزینههای خط فرمان زیر، بررسی نمایههای B-tree را کنترل میکنند:
--checkunique
--heapallindexed
--parent-check
حالت پیشفرض استفاده از تابع bt_index_check در amcheck است، اما توجه داشته باشید که استفاده از گزینه --rootdescend به طور ضمنی bt_index_parent_check را انتخاب میکند.
--rootdescend
استفاده از این گزینه بهطور ضمنی گزینه --parent-check را نیز انتخاب میکند.
این شکل از اعتبارسنجی در اصل برای کمک به توسعه ویژگیهای نمایه btree نوشته شده بود. این گزینه ممکن است کاربرد محدودی داشته باشد یا حتی در کمک به شناسایی انواع خرابیهایی که در عمل رخ میدهند هیچ کاربردی نداشته باشد. همچنین ممکن است باعث شود بررسی خرابی بسیار طولانیتر شود و منابع بسیار بیشتری را روی سرور مصرف کند.
هشدار
بررسیهای اضافی انجامشده روی نمایههای B-tree هنگام مشخص شدن گزینه --parent-check یا گزینه --rootdescend، به قفلهای نسبتاً قوی در سطح relation نیاز دارند. این بررسیها تنها بررسیهایی هستند که تغییر همروند داده توسط دستورهای INSERT، UPDATE و DELETE را مسدود میکنند.
گزینههای خط فرمان زیر، اتصال به سرور را کنترل میکنند:
-h hostname
--host=hostname
-p port
--port=port
-U
--username=username
-w
--no-password
-W
--password
این گزینه هرگز ضروری نیست، زیرا اگر سرور احراز هویت با گذرواژه را بخواهد، pg_amcheck بهطور خودکار اعلان گذرواژه را نمایش خواهد داد. با این حال، pg_amcheck یک تلاش اتصال را هدر خواهد داد تا متوجه شود سرور گذرواژه میخواهد. در برخی موارد ارزش دارد که -W را مشخص کنید تا از تلاش اتصال اضافی جلوگیری شود.
--maintenance-db=dbname
گزینههای دیگری نیز در دسترس هستند:
-e
--echo
--jobs=num
پیشفرض استفاده از یک اتصال منفرد است.
-P
--progress
-v
--verbose
-V
--version
--install-missing
--install-missing=schema
در حال حاضر، تنها افزونهٔ مورد نیاز amcheck است.
-?
--help
محیط (ENVIRONMENT)
pg_amcheck، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانیشده توسط libpq نیز استفاده میکند (ببینید: بخش 32.15).
متغیر محیطی PG_COLOR مشخص میکند که آیا در پیامهای عیبیابی از رنگ استفاده شود یا خیر. مقادیر ممکن عبارتند از always، auto و never.
نکات (NOTES)
pg_amcheck برای کار با PostgreSQL نسخهٔ 14.0 و بالاتر طراحی شده است.
همچنین ببینید (SEE ALSO)
amcheck
| 2026 | PostgreSQL 18.6 |