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, и удаляет соответствующие записи из временной таблицы. (Замечание: рассматриваются только типы именно с такими именами, а не, например, домены на их базе.) Оставшиеся записи во временной таблице указывают на потерянные БО, которые затем и удаляются.
Пред. | Начало | След. |
pgbench | Уровень выше | Серверные приложения |