| VACUUMDB(1) | PostgreSQL 18.6 Documentation | VACUUMDB(1) |
نام (NAME)
vacuumdb - پاکسازی دادههای زائد و تحلیل یک پایگاهداده PostgreSQL
خلاصه دستور (SYNOPSIS)
vacuumdb [connection-option...] [option...] [ -t | --table table [( column [,...] )] ]... [dbname | -a | --all]
vacuumdb [connection-option...] [option...] [ -n | --schema schema ]... [dbname | -a | --all]
vacuumdb [connection-option...] [option...] [ -N | --exclude-schema schema ]... [dbname | -a | --all]
توضیحات (DESCRIPTION)
ابزار vacuumdb ابزاری برای پاکسازی یک پایگاهداده PostgreSQL است. همچنین vacuumdb آمارهای داخلی مورد استفاده بهینهساز پرسوجوی PostgreSQL را تولید میکند.
دستور vacuumdb پوششی (wrapper) در راستای دستور اسکیوال VACUUM است. تفاوت موثری میان اجرای عملیات vacuum و تحلیل پایگاههای داده از طریق این ابزار و روشهای دیگر دسترسی به سرور وجود ندارد.
گزینهها (OPTIONS)
دستور vacuumdb آرگومانهای خط فرمان زیر را میپذیرد:
-a
--all
--buffer-usage-limit size
[-d] dbname
[--dbname=]dbname
--disable-page-skipping
-e
--echo
-f
--full
-F
--freeze
--force-index-cleanup
-j njobs
--jobs=njobs
ابزار vacuumdb تعداد njobs اتصال به پایگاهداده باز خواهد کرد، بنابراین اطمینان حاصل کنید که مقدار تنظیم max_connections شما به اندازه کافی بالا باشد تا پاسخگوی همه اتصالات باشد.
توجه داشته باشید که استفاده از این حالت همراه با گزینه -f (FULL) ممکن است در صورت پردازش موازی برخی کاتالوگهای سیستم، موجب خطاهای بنبست (deadlock) شود.
--min-mxid-age mxid_age
برای اهداف این گزینه، عمر multixact ID یک رابطه (relation)، بزرگترین مقدار میان عمر رابطه اصلی و جدول TOAST وابسته به آن (در صورت وجود) است. از آنجا که دستورهای صادرشده توسط vacuumdb در صورت لزوم جدول TOAST مربوط به رابطه را نیز پردازش خواهند کرد، نیازی نیست به طور جداگانه در نظر گرفته شود.
--min-xid-age xid_age
برای اهداف این گزینه، عمر transaction ID یک رابطه، بزرگترین مقدار میان عمر رابطه اصلی و جدول TOAST وابسته به آن (در صورت وجود) است. از آنجا که دستورهای صادرشده توسط vacuumdb در صورت لزوم جدول TOAST مربوط به رابطه را نیز پردازش خواهند کرد، نیازی نیست به طور جداگانه در نظر گرفته شود.
--missing-stats-only
این گزینه فقط میتواند همراه با --analyze-only یا --analyze-in-stages استفاده شود..sp توجه داشته باشید که --missing-stats-only به مجوزهای SELECT روی pg_statistic و pg_statistic_ext_data نیاز دارد، که بهطور پیشفرض به مدیران سیستم (superusers) محدود شده است.
-n schema
--schema=schema
-N schema
--exclude-schema=schema
--no-index-cleanup
--no-process-main
--no-process-toast
--no-truncate
-P parallel_workers
--parallel=parallel_workers
-q
--quiet
--skip-locked
-t table [ (column
[,...]) ]
--table=table [ (column [,...])
]
نکته
اگر ستونها را مشخص کنید، احتمالاً باید پرانتزها را برای شل (shell) گریزدهی (escape) کنید. (مثالهای زیر را ببینید.)
-v
--verbose
-V
--version
-z
--analyze
-Z
--analyze-only
--analyze-in-stages
این گزینه تنها برای تحلیل پایگاه دادهای مفید است که در حال حاضر هیچ آماری ندارد یا آمارهای آن کاملاً نادرست است؛ مانند زمانی که به تازگی از یک dump بازیابی شده یا توسط pg_upgrade ایجاد شده باشد. توجه داشته باشید که اجرای این گزینه در یک پایگاه داده با آمارهای موجود ممکن است به دلیل اهداف آماری پایین در مراحل ابتدایی، تصمیمات بهینهساز پرسوجو را بهطور موقت تضعیف کند.
-?
--help
ابزار vacuumdb همچنین آرگومانهای خط فرمان زیر را برای پارامترهای اتصال میپذیرد:
-h host
--host=host
-p port
--port=port
-U username
--username=username
-w
--no-password
--password
این گزینه هرگز ضروری نیست، چرا که اگر کارساز احراز هویت با گذرواژه را درخواست کند، vacuumdb بهطور خودکار گذرواژه را درخواست خواهد کرد. با این حال، vacuumdb یک تلاش اتصال را برای پی بردن به اینکه کارساز گذرواژه میخواهد هدر خواهد داد. در برخی موارد برای جلوگیری از تلاش اتصال اضافی، وارد کردن -W ارزشش را دارد.
--maintenance-db=dbname
محیط (ENVIRONMENT)
PGDATABASE
PGHOST
PGPORT
PGUSER
PG_COLOR
این ابزار، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانیشده توسط libpq نیز استفاده میکند (بخش 32.15 را ببینید).
خطاها (DIAGNOSTICS)
در صورت بروز مشکل، برای بررسی مشکلات احتمالی و پیامهای خطا، به VACUUM(7) و psql(1) مراجعه کنید. کارساز پایگاهداده باید روی میزبان هدف در حال اجرا باشد. همچنین، هرگونه تنظیمات اتصال پیشفرض و متغیرهای محیطی مورد استفاده توسط کتابخانهٔ فرانتاند libpq اعمال خواهند شد.
مثالها (EXAMPLES)
برای پاکسازی پایگاهدادهٔ test:
$ vacuumdb test
برای پاکسازی و تحلیل برای بهینهساز در پایگاهدادهای به نام bigdb:
$ vacuumdb --analyze bigdb
برای پاکسازی یک جدول تکی foo در پایگاهدادهای به نام xyzzy، و تحلیل یک ستون تکی bar از آن جدول برای بهینهساز:
$ vacuumdb --analyze --verbose --table='foo(bar)' xyzzy
برای پاکسازی تمام جدولها در شِماهای (schemas) foo و bar در پایگاهدادهای به نام xyzzy:
$ vacuumdb --schema='foo' --schema='bar' xyzzy
| 2026 | PostgreSQL 18.6 |