vacuumdb
Синтаксис
vacuumdb [ параметр-подключения ...] [ параметр ...] [ --table | -t таблица [( колонка [,...] )] ] ... [ база_данных ]
vacuumdb [ параметр-подключения ...] [ параметр ...] --all | -a
Описание
Утилита vacuumdb предназначена для очистки базы данных PostgreSQL. Кроме того, vacuumdb генерирует внутреннюю статистику, которую использует оптимизатор запросов PostgreSQL.
Утилита vacuumdb представляют собой обёртку SQL-команды VACUUM. Выполнение очистки и анализа баз данных с её помощью по сути не отличается от выполнения тех же действий при обращении к серверу другими способами.
Параметры
Утилита vacuumdb принимает следующие аргументы командной строки:
- -a
--all Очистить все базы данных.
- [-d] база_данных
[--dbname=]база_данных Задаёт имя базы данных, подлежащей очистке. Если это имя не задано и отсутствует параметр -a (или --all), имя базы данных берётся из переменной окружения PGDATABASE. Если и эта переменная не задана, выбирается имя подключающегося пользователя.
- -e
--echo Выводить команды, которые vacuumdb генерирует и передаёт серверу.
- -f
--full Произвести "полную" очистку.
- -F
--freeze Агрессивно "замораживать" версии строк.
- -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 и завершиться.
Утилита reindexdb также принимает следующие аргументы командной строки в качестве параметров подключения:
- -h host
--host=host Указывает имя компьютера, на котором запущен сервер. Если значение начинается с косой черты, оно интерпретируется как имя каталога с доменным сокетом Unix.
- -p порт
--port=порт Указывает TCP-порт или расширение файла Unix-сокета, на котором сервер слушает подключения.
- -U имя_пользователя
--username=имя_пользователя Имя пользователя, под которым производится подключение.
- -w
--no-password Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.
- -W
--password Принудительно запрашивать пароль перед подключением к базе данных.
Это несущественный параметр, так как vacuumdb запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако, чтобы понять это, vacuumdb лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести -W, чтобы исключить эту ненужную попытку подключения.
- --maintenance-db=база_данных
Задаёт имя базы данных, через подключение к которой будут находиться другие базы, подлежащие очистке. По умолчанию используется postgres, а в случае её отсутствия — template1.
Переменные окружения
- PGDATABASE
PGHOST
PGPORT
PGUSER Параметры подключения по умолчанию
Эта утилита, как и большинство других утилит PostgreSQL, также использует переменные среды, поддерживаемые libpq (см. Раздел 31.14).
Диагностика
В случае возникновения трудностей, обратитесь к описаниям VACUUM и psql , где обсуждаются потенциальные проблемы и сообщения об ошибках. Учтите, что на целевом компьютере должен работать сервер баз данных. При этом применяются все свойства подключения по умолчанию и переменные окружения, которые использует клиентская библиотека libpq.
Замечания
Утилите vacuumdb может потребоваться подключаться к серверу PostgreSQL несколько раз, и при этом она будет каждый раз запрашивать пароль. В таких случаях удобно иметь файл ~/.pgpass. За дополнительными сведениями обратитесь к Разделу 31.15.
Примеры
Очистка базы данных test:
$ vacuumdb test
Очистка и анализ для оптимизатора базы данных bigdb:
$ vacuumdb --analyze bigdb
Очистка одной таблицы foo в базе данных xyzzy и анализ только колонки bar этой таблицы для оптимизатора:
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
Пред. | Начало | След. |
reindexdb | Уровень выше | Серверные утилиты PostgreSQL |