Приложение vacuumdb
Приложение vacuumdb
Для команды VACUUM, как и для многих других команд управления базами данных, существует вспомогательное приложение командной строки vacuumdb. По сравнению с командой SQL VACUUM сценарий vacuumdb обладает одной важной дополнительной функцией: с его помощью можно выполнить команду VACUUM для всех баз данных PostgreSQL в системе.
Кроме того, сценарию передаются параметры подключения к PostgreSQL, что позволяет использовать его в удаленном режиме (то есть без предварительного подключения к компьютеру при помощи терминального клиента и последующего выполнения программ vacuumdb или psql с удаленного компьютера). Впрочем, для этого режим аутентификации в файле pg_hba.conf должен быть настроен для внешнего доступа (за дополнительной информацией обращайтесь к главе 8).
Синтаксис запуска приложения vacuumdb:
vacuumdb [ параметры ] [ бдза_данных ]
Ключи командной строки сценария vacuumdb, как и сценариев createdb и dropdb, могут задаваться как с одним дефисом, так и с двумя дефисами в стиле GNU. Обязательным является только параметр база_дапных (который может быть заменен ключом --all); этот параметр определяет базу данных, с которой выполняются операции очистки и анализа. Строка параметры определяет режим выполнения команды VACUUM. Ниже приведен полный список ключей приложения vacuumdb.
- - h хост, -- host=*oc//z. Хост, с которым устанавливается связь для очистки базы данных. Ключ используется для очистки удаленных баз данных.
- -р порт, --port=nopm. Порт, по которому должно производиться подключение к серверу, вместо порта по умолчанию (обычно 5432, хотя при компиляции PostgreSQL можно задать другой порт при помощи флага --with-pgport).
- U пользователь, -- изегтте=полъзова7пелъ. Имя пользователя, с которым производится подключение к PostgreSQL для очистки базы данных (вместо имени системного пользователя, запустившего программу vacuumdb).
- -W, - - password. Ключ передается без параметров и обеспечивает запрос пароля у пользователя. Это происходит автоматически, если в файле pg_hba.conf хост, от которого поступил запрос, не объявлен доверенным.
- -d 6аза_даппых, —6Ьг\ате=база_данньис. Имя базы данных, для которой выполняется команда VACUUM. Ключ -d является взаимоисключающим по отношению к ключу -а.
- - а, - - а! 1. Команда VACUUM с заданными параметрами применяется ко всем базам данных, присутствующим в системном каталоге.
- -z, - -analyze. Аналог ключевого слова ANALYZE в команде SQL VACUUM. Обновляет статистику распределения данных в полях, используемую оптимизатором запросов в процессе внутреннего планирования.
- -t 'таблица [ (поле\_, ...])]', --tab~\e='таблица [ (поле[, ...])]'. Ключ определяет таблицу (или конкретные поля в таблице), обрабатываемые командой VACUUM. Для обработки отдельных полей должен быть установлен ключ : - analyze.
- -v, - -verbose. Аналог ключевого слова VERBOSE в команде SQL VACUUM. Обеспечивает вывод подробного внутреннего отчета по результатам выполнения команды VACUUM.
- -е, - -echo. Ключ передается без параметров. При включении вывода эха запрос, передаваемый PostgreSQL, выводится на экран в момент его выполнения программой vacuumdb.
- -q, - -quiet. Ключ передается без параметров и запрещает вывод данных в стандартный поток stdout (хотя ошибки по-прежнему направляются в стандартный поток stderr).
В листинге 9.16 приведен пример использования сценария vacuumdb для сервера базы данных booktown. Ключ -U указывает, что для подключения должно использоваться имя пользователя manager, а флаг - -all обеспечивает последовательную обработку всех баз данных в системном каталоге.