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