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
.--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
. В данном аргументе может задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке. Кроме того, все параметры в строке подключения, за исключением имени базы, будут использоваться и при подключении к другим базам данных.
Переменные окружения
PGDATABASE
PGHOST
PGPORT
PGUSER
Параметры подключения по умолчанию
PG_COLOR
Выбирает вариант использования цвета в диагностических сообщениях. Возможные значения:
always
(всегда),auto
(автоматически) иnever
(никогда).
Эта утилита, как и большинство других утилит Postgres Pro, также использует переменные среды, поддерживаемые libpq (см. Раздел 36.15).
Диагностика
В случае возникновения трудностей, обратитесь к описаниям REINDEX и psql, где обсуждаются потенциальные проблемы и сообщения об ошибках. Учтите, что на целевом компьютере должен работать сервер баз данных. При этом применяются все свойства подключения по умолчанию и переменные окружения, которые использует клиентская библиотека libpq.
Примечания
Утилите reindexdb может потребоваться подключаться к серверу Postgres Pro несколько раз, и при этом она будет каждый раз запрашивать пароль. В таких случаях удобно иметь файл ~/.pgpass
. За дополнительными сведениями обратитесь к Разделу 36.16.
Примеры
Переиндексирование базы данных test
:
$
reindexdb test
Переиндексирование таблицы foo
и индекса bar
в базе данных abcd
:
$
reindexdb --table=foo --index=bar abcd