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