vacuumdb
vacuumdb â вÑполниÑÑ Ð¾ÑиÑÑÐºÑ Ð¸ анализ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro
СинÑакÑиÑ
vacuumdb [паÑамеÑÑ-подклÑÑениÑ...] [паÑамеÑÑ...] [ -t | --table ÑаблиÑа [( ÑÑÐ¾Ð»Ð±ÐµÑ [,...] )] ] ... [имÑ_бд]
vacuumdb [паÑамеÑÑ-подклÑÑениÑ...] [паÑамеÑÑ...] -a | --all
ÐпиÑание
УÑилиÑа vacuumdb пÑедназнаÑена Ð´Ð»Ñ Ð¾ÑиÑÑки Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Postgres Pro. ÐÑоме Ñого, vacuumdb генеÑиÑÑÐµÑ Ð²Ð½ÑÑÑеннÑÑ ÑÑаÑиÑÑикÑ, коÑоÑÑÑ Ð¸ÑполÑзÑÐµÑ Ð¾Ð¿ÑимизаÑÐ¾Ñ Ð·Ð°Ð¿ÑоÑов Postgres Pro.
УÑилиÑа vacuumdb пÑедÑÑавлÑÑÑ Ñобой обÑÑÑÐºÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ VACUUM. ÐÑполнение оÑиÑÑки и анализа баз даннÑÑ Ñ ÐµÑ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð¾ ÑÑÑи не оÑлиÑаеÑÑÑ Ð¾Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐµÑ Ð¶Ðµ дейÑÑвий пÑи обÑаÑении к ÑеÑвеÑÑ Ð´ÑÑгими ÑпоÑобами.
ÐаÑамеÑÑÑ
УÑилиÑа vacuumdb пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки:
-a--allÐÑиÑÑиÑÑ Ð²Ñе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
[-d]имÑ_бд[--dbname=]имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¾ÑиÑÑки или анализа, когда не иÑполÑзÑеÑÑÑ Ð¿Ð°ÑамеÑÑ
-a/--all. ÐÑли ÑÑо Ñказание оÑÑÑÑÑÑвÑеÑ, Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿ÐµÑеменной окÑÑжениÑPGDATABASE. ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ задана, именем Ð±Ð°Ð·Ñ Ð±ÑÐ´ÐµÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñказанное Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. РаÑгÑменÑеимÑ_Ð±Ð´Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑока подклÑÑениÑ. Ð ÑÑом ÑлÑÑае паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеопÑеделÑÑÑ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÑннÑе паÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке.-e--echoÐÑводиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, коÑоÑÑе vacuumdb генеÑиÑÑÐµÑ Ð¸ пеÑедаÑÑ ÑеÑвеÑÑ.
-f--fullÐÑоизвеÑÑи «полнÑÑ» оÑиÑÑкÑ.
-F--freezeÐгÑеÑÑивно «замоÑаживаÑÑ» веÑÑии ÑÑÑок.
-jÑиÑло_заданий--jobs=ÑиÑло_заданийÐÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾ÑиÑÑки и анализа в паÑаллелÑном Ñежиме, запÑÑÐºÐ°Ñ Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð²Ñеменно в колиÑеÑÑве
ÑиÑло_заданий. ÐÑо ÑокÑаÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð±ÑабоÑки, но ÑвелиÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ÑеÑвеÑ.vacuumdb бÑÐ´ÐµÑ ÑÑÑанавливаÑÑ Ð½ÐµÑколÑко подклÑÑений к базе даннÑÑ (в колиÑеÑÑве
ÑиÑло_заданий), Ñак ÑÑо ÑбедиÑеÑÑ Ð² Ñом, ÑÑо знаÑение max_connections доÑÑаÑоÑно велико, ÑÑÐ¾Ð±Ñ Ð²Ñе ÑÑи подклÑÑÐµÐ½Ð¸Ñ Ð±Ñли пÑинÑÑÑ.ÐамеÑÑÑе, ÑÑо иÑполÑзование ÑÑого Ñежима Ñ Ð¿Ð°ÑамеÑÑом
-f(FULL) Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к оÑказам из-за взаимоблокиÑовок, еÑли паÑаллелÑно наÑнÑÑ Ð¾Ð±ÑабаÑÑваÑÑÑÑ Ð¾Ð¿ÑеделÑннÑе ÑиÑÑемнÑе каÑалоги.-q--quietÐодавлÑÑÑ Ð²Ñвод ÑообÑений о пÑогÑеÑÑе вÑполнениÑ.
-tÑаблиÑа[ (ÑÑолбеÑ[,...]) ]--table=ÑаблиÑа[ (ÑÑолбеÑ[,...]) ]ÐÑоизводиÑÑ Ð¾ÑиÑÑÐºÑ Ð¸Ð»Ð¸ анализ ÑолÑко Ñказанной
ÑаблиÑÑ. Ðмена ÑÑолбÑов можно ÑказаÑÑ ÑолÑко в ÑоÑеÑании Ñ Ð¿Ð°ÑамеÑÑами--analyzeи--analyze-only. Ðобавив дополниÑелÑнÑе клÑÑи-t, можно обÑабоÑаÑÑ Ð½ÐµÑколÑко ÑаблиÑ.ÐодÑказка
ÐÑли Ð²Ñ ÑказÑваеÑе ÑÑолбÑÑ, вам, веÑоÑÑно, пÑидÑÑÑÑ ÑкÑаниÑоваÑÑ Ñкобки в оболоÑке. (См. пÑимеÑÑ Ð½Ð¸Ð¶Ðµ.)
-v--verboseÐÑвеÑÑи подÑобнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑа.
-V--versionСообÑиÑÑ Ð²ÐµÑÑÐ¸Ñ vacuumdb и завеÑÑиÑÑÑÑ.
-z--analyzeТакже вÑÑиÑлиÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑоÑа.
-Z--analyze-onlyТолÑко вÑÑиÑлиÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑоÑа (не пÑоизводиÑÑ Ð¾ÑиÑÑкÑ).
--analyze-in-stagesТолÑко вÑÑиÑлиÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑоÑа (без оÑиÑÑки), подобно
--analyze-only. Ðо Ð´Ð»Ñ ÑкоÑейÑего полÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾Ð¹ ÑÑаÑиÑÑики, вÑполниÑÑ Ð°Ð½Ð°Ð»Ð¸Ð· в неÑколÑко пÑÐ¾Ñ Ð¾Ð´Ð¾Ð² (в наÑÑоÑÑее вÑемÑ, ÑÑи) Ñ ÑазнÑми паÑамеÑÑами.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи пÑовеÑÑи анализ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑолÑко ÑÑо наполненной даннÑми из аÑÑ Ð¸Ð²Ð° или командой
pg_upgrade. С ÑÑим паÑамеÑÑом vacuumdb поÑÑаÑаеÑÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ ÐºÐ°Ðº можно ÑкоÑее, ÑÑÐ¾Ð±Ñ Ð±Ð°Ð·Ð¾Ð¹ можно бÑло полÑзоваÑÑÑÑ, а на ÑледÑÑÑÐ¸Ñ Ð¿ÑÐ¾Ñ Ð¾Ð´Ð°Ñ Ð²ÑÑиÑÐ»Ð¸Ñ Ð¿Ð¾Ð»Ð½ÑÑ ÑÑаÑиÑÑикÑ.-?--helpÐоказаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ аÑгÑменÑам командной ÑÑÑоки vacuumdb и завеÑÑиÑÑÑÑ.
УÑилиÑа vacuumdb Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки в каÑеÑÑве паÑамеÑÑов подклÑÑениÑ:
-hÑеÑвеÑ--host=ÑеÑвеÑУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, на коÑоÑом ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ ÐºÐ¾Ñой ÑеÑÑÑ, оно опÑеделÑÐµÑ ÐºÐ°Ñалог Unix-ÑокеÑа.
-pпоÑÑ--port=поÑÑУказÑÐ²Ð°ÐµÑ TCP-поÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
-UимÑ_полÑзоваÑелÑ--username=имÑ_полÑзоваÑелÑÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, под коÑоÑÑм пÑоизводиÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение.
-w--no-passwordÐе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½Ðµ доÑÑÑпен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´ÑÑÐ³Ð¸Ñ ÑÑедÑÑв, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Ñайл
.pgpass, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.-W--passwordÐÑинÑдиÑелÑно запÑаÑиваÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÐµÑед подклÑÑением к базе даннÑÑ .
ÐÑо неÑÑÑеÑÑвеннÑй паÑамеÑÑ, Ñак как vacuumdb запÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð°Ð²ÑомаÑиÑеÑки, еÑли ÑеÑÐ²ÐµÑ Ð¿ÑовеÑÑÐµÑ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾ÑÑÑ Ð¿Ð¾ паÑолÑ. Ðднако ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ ÑÑо, vacuumdb лиÑний Ñаз подклÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ввеÑÑи
-W, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.--maintenance-db=имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð»ÐµÐ¶Ð°ÑÐ¸Ñ Ð¾ÑиÑÑке баз даннÑÑ , когда иÑполÑзÑеÑÑÑ ÐºÐ»ÑÑ
-a/--all. ÐÑли ÑÑо Ð¸Ð¼Ñ Ð½Ðµ Ñказано, бÑÐ´ÐµÑ Ð²ÑбÑана базаpostgres, а еÑли она не ÑÑÑеÑÑвÑÐµÑ âtemplate1. Рданном аÑгÑменÑе Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑока подклÑÑениÑ. Ð ÑÑом ÑлÑÑае паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеопÑеделÑÑÑ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÑннÑе паÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке. ÐÑоме Ñого, вÑе паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑениÑ, за иÑклÑÑением имени базÑ, бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¸ пÑи подклÑÑении к дÑÑгим базам даннÑÑ .
ÐеÑеменнÑе окÑÑжениÑ
PGDATABASEPGHOSTPGPORTPGUSERÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 32.14).
ÐиагноÑÑика
Ð ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ ÑÑÑдноÑÑей, обÑаÑиÑеÑÑ Ðº опиÑаниÑм VACUUM и psql, где обÑÑждаÑÑÑÑ Ð¿Ð¾ÑенÑиалÑнÑе пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ . УÑÑиÑе, ÑÑо на Ñелевом компÑÑÑеÑе должен ÑабоÑаÑÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ . ÐÑи ÑÑом пÑименÑÑÑÑÑ Ð²Ñе ÑвойÑÑва подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ пеÑеменнÑе окÑÑжениÑ, коÑоÑÑе иÑполÑзÑÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека libpq.
ÐамеÑаниÑ
УÑилиÑе vacuumdb Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº ÑеÑвеÑÑ Postgres Pro неÑколÑко Ñаз, и пÑи ÑÑом она бÑÐ´ÐµÑ ÐºÐ°Ð¶Ð´Ñй Ñаз запÑаÑиваÑÑ Ð¿Ð°ÑолÑ. Ð ÑакиÑ
ÑлÑÑаÑÑ
Ñдобно имеÑÑ Ñайл ~/.pgpass. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº РазделÑ 32.15.
ÐÑимеÑÑ
ÐÑиÑÑка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
test:
$vacuumdb test
ÐÑиÑÑка и анализ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑоÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
bigdb:
$vacuumdb --analyze bigdb
ÐÑиÑÑка одной ÑаблиÑÑ foo в базе даннÑÑ
xyzzy и анализ ÑолÑко ÑÑолбÑа bar ÑаблиÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑоÑа:
$vacuumdb --analyze --verbose --table='foo(bar)' xyzzy