reindexdb
reindexdb — переиндексировать базу данных Postgres Pro
Синтаксис
reindexdb [параметр-подключения...] [параметр...] [ -S | --schema схема ] ... [ -t | --table таблица ] ... [ -i | --index индекс ] ... [ -s | --system ] [ dbname | -a | --all ]
Описание
Утилита 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 достаточно велико, чтобы все эти подключения были приняты.Заметьте, что этот параметр несовместим с параметром
--system.-q--quietПодавлять вывод сообщений о прогрессе выполнения.
-s--systemПереиндексировать только системные каталоги базы данных.
-Sсхема--schema=схемаПереиндексировать только указанную
схему. Переиндексировать несколько схем можно, добавив несколько ключей-S.-tтаблица--table=таблицаПереиндексировать только указанную
таблицу. Переиндексировать несколько таблиц можно, добавив несколько ключей-t.--tablespace=табличное_пространствоУказывает табличное пространство, в котором перестраиваются индексы. (Это имя обрабатывается как идентификатор в двойных кавычках.)
-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. В данном аргументе может задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке. Кроме того, все параметры в строке подключения, за исключением имени базы, будут использоваться и при подключении к другим базам данных.
Переменные окружения
PGDATABASEPGHOSTPGPORTPGUSERПараметры подключения по умолчанию
PG_COLORВыбирает вариант использования цвета в диагностических сообщениях. Возможные значения:
always(всегда),auto(автоматически) иnever(никогда).
Эта утилита, как и большинство других утилит Postgres Pro, также использует переменные среды, поддерживаемые libpq (см. Раздел 35.15).
Диагностика
В случае возникновения трудностей, обратитесь к описаниям REINDEX и psql, где обсуждаются потенциальные проблемы и сообщения об ошибках. Учтите, что на целевом компьютере должен работать сервер баз данных. При этом применяются все свойства подключения по умолчанию и переменные окружения, которые использует клиентская библиотека libpq.
Примеры
Переиндексирование базы данных test:
$reindexdb test
Переиндексирование таблицы foo и индекса bar в базе данных abcd:
$reindexdb --table=foo --index=bar abcd