vacuumlo
vacuumlo — удалить потерянные большие объекты из базы данных PostgreSQL
Синтаксис
vacuumlo [параметр...] имя_бд... 
Описание
Программа vacuumlo представляет собой простую утилиту, которая удаляет все «потерянные» большие объекты из базы данных PostgreSQL. Потерянным большим объектом (БО) считается такой БО, OID которого не фигурирует ни в каком столбце oid или lo в базе данных.
Если вы применяете эту утилиту, вас также может заинтересовать триггер lo_manage в модуле lo. Триггер lo_manage полезен тем, что стремится предотвратить образование потерянных БО.
Обработке подвергаются все базы данных, перечисленные в командной строке.
Параметры
vacuumlo принимает следующие аргументы командной строки:
- -l- предел
- Удалять в одной транзакции ограниченное количество больших объектов (максимальное количество задаёт - предел, по умолчанию 1000). Так как сервер запрашивает блокировку для каждого удаляемого БО, удаление слишком большого количества БО в одной транзакции чревато превышением лимита max_locks_per_transaction. Если вы всё же хотите, чтобы все удаления происходили в одной транзакции, установите этот предел, равным нулю.
- -n
- Не удалять ничего, только показать, какие операции должны были выполняться. 
- -v
- Выводить подробные сообщения о прогрессе. 
- -V- --version
- Вывести версию vacuumlo и завершиться. 
- -?- --help
- Вывести справку об аргументах командной строки vacuumlo и завершиться. 
vacuumlo также принимает в командной строке следующие аргументы, задающие параметры подключения:
- -h- компьютер
- Адрес сервера баз данных. 
- -p- порт
- Порт сервера баз данных. 
- -U- имя_пользователя
- Имя пользователя, под которым производится подключение. 
- -w- --no-password
- Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл - .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.
- -W
- Принудительно запрашивать пароль перед подключением к базе данных. - Это несущественный параметр, так как vacuumlo запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако, чтобы понять это, vacuumlo лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести - -W, чтобы исключить эту ненужную попытку подключения.
Замечания
Программа vacuumlo работает следующим образом: сначала vacuumlo строит временную таблицу, содержащую все OID больших объектов в выбранной базе данных. Затем она сканирует все столбцы в базе данных, имеющие тип oid или lo, и удаляет соответствующие записи из временной таблицы. (Замечание: рассматриваются только типы именно с такими именами, а не, например, домены на их базе.) Оставшиеся записи во временной таблице указывают на потерянные БО, которые затем и удаляются.
Автор
Питер Маунт <peter@retep.org.uk>