vacuumdb
Очищает неиспользуемое пространство и собирает статистику базы данных.
Синтаксис
vacuumdb [ <connection-option> ... ]
[ --full | -f ]
[ --freeze | -F ]
[ --verbose | -v ]
[ --analyze | -z ]
[ --analyze-only | -Z ]
[ --table | -t <table> [ ( <column> [ , ... ] ) ] ]
[ <dbname> ]
vacuumdb [ <connection-option> ... ]
[ --all | -a ]
[ --full | -f ]
[ --freeze | -F ]
[ --verbose | -v ]
[ --analyze | -z ]
[ --analyze-only | -Z ]
vacuumdb -? | --help
vacuumdb -V | --version
Описание
vacuumdb — утилита для очистки базы данных Greengage DB.
Также vacuumdb собирает внутреннюю статистику, используемую оптимизатором запросов.
vacuumdb — это обертка над SQL-командой VACUUM.
Вакуумирование с помощью этой утилиты эквивалентно выполнению команды VACUUM через SQL-клиент (например, psql).
Параметры
- -a | --all
-
Вакуумирует все базы данных.
- [-d] <dbname> | [--dbname=]<dbname>
-
Имя базы данных для вакуумирования. Если не указано и не используется
-a(или--all), имя читается из переменной окруженияPGDATABASE. Если она не задана, используется имя пользователя, указанное для подключения. - -e | --echo
-
Выводит команды, которые
vacuumdbгенерирует и отправляет на сервер. - -f | --full
-
Выполняет полное вакуумирование, которое освобождает больше пространства, но работает намного дольше и устанавливает эксклюзивную блокировку таблицы.
ВНИМАНИЕИспользование
VACUUM FULLв Greengage DB не рекомендуется. - -F | --freeze
-
"Замораживает" версии строк.
- -q | --quiet
-
Подавляет вывод сообщений о прогрессе выполнения.
- -t <table> [(<column>)] | --table=<table> [(<column>)]
-
Очищает или анализирует только указанную таблицу. Имена столбцов можно указать только в сочетании с параметрами
--analyzeили--analyze-only. Для очистки нескольких таблиц укажите несколько параметров-t. При указании столбцов может потребоваться экранировать скобки от оболочки. - -v | --verbose
-
Выводит подробную информацию о ходе выполнения.
- -z | --analyze
-
Собирает статистику для использования планировщиком запросов.
- -Z | --analyze-only
-
Ограничивается сбором статистики для планировщика запросов и не выполняет вакуумирование.
- --analyze-in-stages
-
Обновляет статистику оптимизатора поэтапно для ускорения процесса.
- -V | --version
-
Выводит версию
vacuumdbи завершает работу. - -? | --help
-
Выводит справку по аргументам командной строки
vacuumdbи завершает работу.
Параметры подключения
- -h <host> | --host=<host>
-
Имя хоста, на котором запущен экземпляр мастера. Если параметр не указан, читается из переменной окружения
PGHOSTили используется значение по умолчаниюlocalhost. - -p <port> | --port=<port>
-
TCP-порт, на котором мастер принимает подключения. Если параметр не указан, читается из переменной окружения
PGPORTили используется значение по умолчанию5432. - -U <username> | --username=<username>
-
Имя роли для подключения. Если параметр не указан, читается из переменной окружения
PGUSERили используется имя пользователя операционной системы. - -w | --no-password
-
Не запрашивает пароль. Если сервер требует пароль и он недоступен другими способами (например, через файл .pgpass), подключение завершится неудачей. Этот параметр удобен для пакетных заданий и скриптов, где невозможен ввод пароля.
- -W | --password
-
Принудительно запрашивает пароль.
- --maintenance-db=<dbname>
-
Указывает имя базы данных для подключения, чтобы определить, какие другие базы данных следует вакуумировать. Если параметр не указан, используется база данных
postgres, а если она не существует, используетсяtemplate1.
Примечания
Утилита vacuumdb может несколько раз подключаться к мастеру, каждый раз запрашивая пароль.
В таких случаях удобно использовать файл ~/.pgpass.
Примеры
Очистить базу данных test:
$ vacuumdb test
Очистить и собрать статистику для базы данных bigdb:
$ vacuumdb --analyze bigdb
Очистить и собрать статистику для таблицы foo в базе данных mydb, собирая статистику только для столбца bar.
Обратите внимание на кавычки вокруг имени таблицы и столбца для экранирования скобок от оболочки:
$ vacuumdb --analyze --verbose --table 'foo(bar)' mydb