reindexdb
reindexdb — переиндексировать базу данных Postgres Pro
Синтаксис
reindexdb [параметр-подключения...] [параметр...] [ -S | --schema схема ] ... [ -t | --table таблица ] ... [ -i | --index индекс ] ... [dbname]
reindexdb [параметр-подключения...] [параметр...] -a | --all
reindexdb [параметр-подключения...] [параметр...] -s | --system [dbname]
Описание
Утилита reindexdb предназначена для перестроения индексов в базе данных Postgres Pro.
Утилита reindexdb представляет собой обёртку SQL-команды REINDEX. Переиндексация базы данных с её помощью по сути не отличается от переиндексации при обращении к серверу другими способами.
Параметры
reindexdb принимает следующие аргументы командной строки:
- -a- --all
- Переиндексировать все базы данных. 
- --concurrently
- Использовать режим - CONCURRENTLY. Все особенности этого режима подробно описаны в REINDEX.
- [-d]- dbname- [--dbname=]- dbname
- Указывает имя базы данных для переиндексации, когда не используется параметр - -a/- --all. Если это указание отсутствует, имя базы определяется переменной окружения- PGDATABASE. Если эта переменная не установлена, именем базы будет имя пользователя, указанное для подключения. В аргументе- имя_бдможет задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке.
- -e- --echo
- Выводить команды, которые reindexdb генерирует и передаёт серверу. 
- -i- индекс- --index=- индекс
- Пересоздать только указанный - индекс. Добавив дополнительные ключи- -i, можно пересоздать несколько индексов.
- -j- число_заданий- --jobs=- число_заданий
- Выполнять команды переиндексации в параллельном режиме, запуская их одновременно в количестве - число_заданий. Это может сократить время обработки, но при этом увеличить нагрузку на сервер.- reindexdb будет устанавливать несколько подключений к базе данных (в количестве - число_заданий), так что убедитесь в том, что значение max_connections достаточно велико, чтобы все эти подключения были приняты.- Заметьте, что этот параметр несовместим с параметрами - --indexи- --system.
- -q- --quiet
- Подавлять вывод сообщений о прогрессе выполнения. 
- -s- --system
- Переиндексировать только системные каталоги базы данных. 
- -S- схема- --schema=- схема
- Переиндексировать только указанную - схему. Переиндексировать несколько схем можно, добавив несколько ключей- -S.
- -t- таблица- --table=- таблица
- Переиндексировать только указанную - таблицу. Переиндексировать несколько таблиц можно, добавив несколько ключей- -t.
- -v- --verbose
- Вывести подробную информацию во время процесса. 
- -V- --version
- Сообщить версию reindexdb и завершиться. 
- -?- --help
- Показать справку по аргументам командной строки reindexdb и завершиться. 
Утилита reindexdb также принимает следующие аргументы командной строки в качестве параметров подключения:
- -h- сервер- --host=- сервер
- Указывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета. 
- -p- порт- --port=- порт
- Указывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения. 
- -U- имя_пользователя- --username=- имя_пользователя
- Имя пользователя, под которым производится подключение. 
- -w- --no-password
- Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл - .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.
- -W- --password
- Принудительно запрашивать пароль перед подключением к базе данных. - Это несущественный параметр, так как reindexdb запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако чтобы понять это, reindexdb лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести - -W, чтобы исключить эту ненужную попытку подключения.
- --maintenance-db=- dbname
- Указывает имя базы данных, к которой будет выполняться подключение для определения подлежащих переиндексации баз данных, когда используется ключ - -a/- --all. Если это имя не указано, будет выбрана база- postgres, а если она не существует —- template1. В данном аргументе может задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке. Кроме того, все параметры в строке подключения, за исключением имени базы, будут использоваться и при подключении к другим базам данных.
Переменные окружения
- PGDATABASE- PGHOST- PGPORT- PGUSER
- Параметры подключения по умолчанию 
- PG_COLOR
- Выбирает вариант использования цвета в диагностических сообщениях. Возможные значения: - always(всегда),- auto(автоматически) и- never(никогда).
Эта утилита, как и большинство других утилит Postgres Pro, также использует переменные среды, поддерживаемые libpq (см. Раздел 36.14).
Диагностика
В случае возникновения трудностей, обратитесь к описаниям REINDEX и psql, где обсуждаются потенциальные проблемы и сообщения об ошибках. Учтите, что на целевом компьютере должен работать сервер баз данных. При этом применяются все свойства подключения по умолчанию и переменные окружения, которые использует клиентская библиотека libpq.
Примечания
Утилите reindexdb может потребоваться подключаться к серверу Postgres Pro несколько раз, и при этом она будет каждый раз запрашивать пароль. В таких случаях удобно иметь файл ~/.pgpass. За дополнительными сведениями обратитесь к Разделу 36.15.
Примеры
Переиндексирование базы данных test: 
$reindexdb test
Переиндексирование таблицы foo и индекса bar в базе данных abcd: 
$reindexdb --table=foo --index=bar abcd