vacuumdb сборка мусора и анализ базы данных QHB

vacuumdb - сборка мусора и анализ базы данных QHB

Синтаксис

vacuumdb [connection-option...] [option...] [ --table | -t table [( column [,...] )] ] ... [dbname]

vacuumdb [connection-option...] [option...] --all | -a

Описание

vacuumdb утилита для очистки базы данных QHB. vacuumdb также генерирует внутреннюю статистику, используемую оптимизатором запросов QHB.


vacuumdb - это "обертка" над SQL командой VACUUM. Нет разницы между очисткой и анализом баз данных с помощью этой утилиты или же иным способом при обращении к серверу

Параметры

vacuumdb принимает следующие аргументы командной строки:

  • -a
    --all

    Обрабатывать все базы данных.

  • [-d] dbname
    [--dbname=]dbname

    Указывает имя базы данных, которая будет очищена или проанализирована. Если не указывать и не использовать параметр -a (или --all), имя базы данных считывается из переменной окружения PGDATABASE. Если не установлена переменная окружения, используется имя пользователя, указанное в параметрах подключения.

  • --disable-page-skipping

    Отключить пропуск страниц на основе содержимого карты видимости.

  • -e
    --echo

    Выводить команды, которые vacuumdb генерирует и отправляет на сервер.

  • -f
    --full

    Выполнить «полную» очистку.

  • -F
    --freeze

    Агрессивно «замораживать» кортежи.

  • -j njobs
    --jobs=njobs

    Выполняет вакуум или анализ параллельно, запуская несколько (в количестве njobs) команд одновременно. Этот параметр сокращает время обработки, но также увеличивает нагрузку на сервер базы данных.

    vacuumdb открывает njobs соединений с базой данных, поэтому убедитесь, что параметр max_connections достаточно высок, чтобы принять все соединения.

    Обратите внимание, что использование этого режима вместе с параметром -f (FULL) может привести к сбоям из-за взаимоблокировки, если определенные системные каталоги обрабатываются параллельно.

  • --min-mxid-age mxid_age

    Выполняет вакуум или анализ только для таблиц с возрастом идентификатора мультитранзакции не менее mxid_age. Этот параметр полезен для определения приоритетности таблиц для обработки, чтобы предотвратить зацикливание при обходе идентификатора мультитранзакции. (см. раздел Мультитранзакции и зацикливание).

    Для этого параметра возраст идентификатора мультитранзакции для отношения является наибольшим из возрастов основного отношения и связанной с ним таблицы TOAST, если такая существует. Так как команды, выполняемые vacuumdb также будут при необходимости обрабатывать таблицу TOAST для отношений, их возрасты не нужно рассматривать по отдельности.

  • --min-xid-age xid_age

    Выполняет вакуум или анализ только для таблиц с возрастом идентификатора транзакции не менее xid_age. Этот параметр полезен для определения приоритетности таблиц для обработки, чтобы предотвратить зацикливание идентификатора транзакции (см. раздел Предотвращение ошибок зацикливания идентификатора транзакции).

    Для этого параметра возраст идентификатора транзакции для отношения является наибольшим из возрастов основного отношения и связанной с ним таблицы TOAST, если такая существует. Поскольку команды, выполняемые vacuumdb, также при необходимости будут обрабатывать таблицу TOAST для отношений, их возрасты не нужно рассматривать по отдельности.

  • -q
    --quiet

    Не отображать сообщения о прогрессе выполнения.

  • --skip-locked

    Пропускать отношения, которые неудаётся немедленно заблокировать для обработки.

  • -t table[ (column [,...]) ]
    --table=table[ (column [,...]) ]

    Очистить или проанализировать конкретные таблицы. Имена столбцов могут быть указаны только вместе с --analyze или --analyze-only. Несколько таблиц можно очищать, написав несколько параметров -t.

Заметка
Если вы укажете столбцы, вам, вероятно, придется экранировать скобки в коносли. (См. Примеры ниже.)

  • -v
    --verbose

    Показать подробную информацию во время процесса.

  • -V
    --version

    Показать версию vacuumdb и выйти.

  • -z
    --analyze

    Рассчитать статистику для оптимизатора.

  • -Z
    --analyze-only

    Рассчитать статистику для оптимизатора (без вакуума).

  • --analyze-in-stages

    Рассчитать статистику для оптимизатора (без вакуума), наподобие --analyze-only. Чтобы быстрее получить полезную статистику, выполняется в несколько этапов (в настоящее время в три этапа) с различными настройками конфигурации.

    Этот параметр полезен для анализа базы данных, которая была заполнена путем восстановлением из дампа или с помощью утилиты qhb_upgrade. С ним vacuumdb попытается собрать некоторую статистику как можно быстрее, чтобы как можно скорее сделать базу данных пригодной для использования. А затем, рассчитать полную статистику на последующих этапах.

  • -?
    --help

    Показать справку об аргументах командной строки vacuumdb и выйти.

vacuumdb также принимает следующие аргументы командной строки для параметров подключения:

  • -h host
    --host=host

    Указывает имя или адрес компьютера, на котором работает сервер. Если значение начинается с косой черты, оно используется в качестве каталога для Unix-сокета.

  • -p port
    --port=port

    Указывает порт TCP или расширение файла локального Unix-сокета, на котором сервер прослушивает соединения.

  • -U username
    --username=username

    Имя пользователя для подключения как.

  • -w
    --no-password

    Не запрашивать ввод пароля. Если серверу требуется аутентификация по паролю, а пароль недоступен другими способами, такими как файл .pgpass, попытка подключения завершится неудачно. Эта опция может быть полезна в пакетных заданиях и сценариях, где нет ни одного пользователя для ввода пароля.

  • -W
    --password

    Эта опция не является существенной, так как vacuumdb автоматически запросит пароль, если сервер требует аутентификацию по паролю. Тем не менее, vacuumdb потратит одну дополнительную попытку подключения для аутентификации. В некоторых случаях стоит ввести -W, чтобы не делать эту попытку.

  • --maintenance-db=dbname

    Задает имя базы данных для подключения, чтобы определить какие другие базы данных должны быть очищены или проанализированны. Если не указано иное, будет использоваться база данных QHB, а если и её не существует, то будет использоваться template1.

Окружение

PGDATABASE

PGHOST

PGPORT

PGUSER

  • Параметры подключения по умолчанию

PG_COLOR

  • Указывает, использовать ли цвета в диагностических сообщениях. Возможные значения always, auto, never.

Эта утилита, как и большинство других утилит QHB, также использует переменные среды, поддерживаемые libpq.

Диагностика

В случае затруднений см. VACUUM и qsql для обсуждения потенциальных проблем и сообщений об ошибках. Сервер базы данных должен работать на целевом хосте. Кроме того, будут применяться любые параметры подключения по умолчанию и переменные среды, используемые интерфейсной библиотекой libpq.

Примечания

vacuumdb может потребоваться несколько раз подключиться к серверу QHB, каждый раз запрашивая пароль. В таких случаях удобно иметь файл ~/.pgpass.

Примеры

Очистка базы данных test:

$ vacuumdb test

Очистка и анализ для оптимизатора базы данных с именем bigdb:

$ vacuumdb --analyze bigdb

Чтобы очистить одну таблицу foo в базе данных с именем xyzzy и проанализировать один столбец таблицы для оптимизатора:

$ vacuumdb --analyze --verbose --table='foo(bar)' xyzzy

Смотрите Также

VACUUM