clusterdb#

Примечание

Эта страница переведена при помощи нейросети GigaChat.

clusterdb — кластеризует базы данных PostgreSQL

Синтаксис#

clusterdb [connection-option...] [option...] [ --table | -t table ] ... [ dbname | -a | --all ]

Описание#

clusterdb — утилита для повторной кластеризации таблиц в базе данных PostgreSQL. Она находит таблицы, которые уже были кластеризованы, и снова кластеризует их, используя тот же индекс, что и в последний раз. Таблицы, которые ранее не были кластеризовались, остаются без изменений.

clusterdb является оболочкой для команды SQL CLUSTER. По своей эффективности она не отличается от выполнения кластеризации другими способами, доступными в сервере PostgreSQL.

Параметры#

Для утилиты clusterdb существуют следующие параметры командной строки:

-a
--all

Кластеризует все базы данных.

-d dbname
--dbname=dbname

Задает имя базы данных, которую нужно кластеризовать, если не применяется параметр -a/--all. Если dbname не задан, имя базы данных берется из переменной окружения PGDATABASE, а при ее отсутствии — из имени пользователя, указанного при подключении. Также можно передать строку соединения. В этом случае параметры строки подключения имеют приоритет над одноименными параметрами командной строки.

-e
--echo

Выводит на экран команды, которые clusterdb отправляет на сервер.

-q
--quiet

Отключает вывод сообщений о ходе выполнения.

-t table
--table=table

Выполняет кластеризацию только указанной таблицы table. Параметр можно указать несколько раз для кластеризации нескольких таблиц.

-v
--verbose

Выводить подробную информацию во время обработкиВключает расширенный вывод информации.

-V
--version

Выводит версию clusterdb и завершается.

-?
--help

Показывает справку о параметрах командной строки утилиты clusterdb и завершается.

-h host
--host=host

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

-p port
--port=port

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

-U username
--username=username

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

-w
--no-password

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

-W
--password

Запрашивает пароль перед подключением к основному серверу.

Параметр не является обязательным, поскольку clusterdb автоматически запросит пароль, если сервер требует аутентификацию паролем. Однако утилита потратит попытку подключения, чтобы выяснить, что сервер хочет пароль. В некоторых случаях стоит ввести -W, чтобы избежать дополнительной попытки подключения.

--maintenance-db=dbname

Определяет базу данных, к которой следует подключиться для получения списка баз данных, подлежащих кластеризации при использовании параметра -a/--all. Если параметр не указан, по умолчанию будет использоваться база postgres, если она отсутствует — template1.

Также можно передать строку подключения. В этом случае параметры строки подключения имеют приоритет над одноименными параметрами командной строки. Все настройки строки подключения (кроме имени базы данных) будут использоваться и для подключения к другим базам.

Переменные окружения#

Утилита поддерживает переменные окружения:

  • PGDATABASE

  • PGHOST

  • PGPORT

  • PGUSER

  • PG_COLOR

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

Утилита clusterdb использует переменные окружения, поддерживаемые libpq.

Диагностика#

В случае возникновения трудностей, обратитесь в разделы CLUSTER и psql.

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

Примеры#

Кластеризация базы данных test:

$ clusterdb test

Группировка одной таблицы foo в базе данных с именем xyzzy:

$ clusterdb --table=foo xyzzy

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

CLUSTER