Утилита reindexer_tool для управления БД Reindexer через командную строку
Консольная утилита reindexer_tool
предназначена для управления сервером Reindexer и базами данных с помощью интерфейса командной строки. Утилита может работать как клиент для сервера Reindexer с доступом по сети, или самостоятельно непосредственно с локальным дисковым хранилищем без участия сервера.
Возможности reindexer_tool
Консольная утилита reindexer_tool
позволяет:
- Выполнять бэкапы базы данных. Результат можно вывести в командную строку (консоль) или сохранить в текстовый файл.
- Делать запросы к базе данных. Можно выполнять запросы из командной строки или из файла. Результаты также можно выводить в командную строку или записывать в файл.
- Изменять записи в базе данных.
- Изменять связанные с базой данных метаданные.
Использование утилиты
Утилита может работать в интерактивном режиме или запускаться однократно для выполнения одной или нескольких команд с автоматическим завершением после этого.
Обобщенный синтаксис команды для запуска reindexer_tool
:
reindexer_tool [<db_name>] {<options>}
Здесь:
[<db_name>]
(обязательный) — имя базы данных, к которой нужен доступ;{<options>}
— набор опций.
В качестве [<db_name>]
можно передавать:
- Имя базы данных
dbname
. В этом случае происходит подключение кcproto://reindexer:reindexer@127.0.0.1:6534/dbname
. - Имя источника данных — DSN (Data Source Name). Указывается как опция командной строки
- d
,--dsn
и определяет особенности подключения к северу Reindexer или непосредственно к дисковому хранилищу. Возможные форматы:builtin://<path>
— для случая, когда Reindexer используется в режиме встроенного компонента (built-in, embedded). Здесь<path>
— путь к дисковому хранилищу, доступ к нему со стороны reindexer_tool производится напрямую.cproto://<username>:<password>@<host>:<port>/<db_name>
— подключение к автономному (stand-alone) или работающему в режиме встроенного сервера (built-in server) Reindexer по сети с помощью RPC. Здесь:<username>
— имя пользователя;<password>
— пароль;<host>
— имя или адрес хоста, на котором развернут сервер;<port>
— порт, который прослушивается сервером в рамках взаимодействия с клиентами по RPC;<db_name>
— имя базы данных;
Опции командной строки для запуска утилиты reindexer_tool
Опция | Значение | Особенности |
---|---|---|
-f , --filename |
Путь к файлу, содержащему список команд для выполнения | После выполнения команд из файла утилита завершает работу |
-c , --command |
Одиночная команда для выполнения, которая использует внутренний DSL или представляет собой SQL-запрос | После выполнения команды утилита завершает работу |
-o , --output |
Путь к файлу для вывода результатов выполнения одиночной команды либо запроса, или списка команд (запросов) | Значение по умолчанию stdout - используется стандартный вывод |
--createdb |
Флаг, предписывающий создать базу данных с заданным именем | После выполнения команды reindexer_tool запускается в интерактивном режиме и подключается к созданной базе данных |
-l , --log |
Уровень логирования | Задается в виде целого числа. Возможные значения: 1 - none 2 - warning 3 - error 4 - info 5 - trace |
-C , --connections |
Количество одновременных соединений с базой данных | |
-r , --repair |
Флаг, который сообщает, что необходимо выполнить восстановление/исправление базы данных с нарушенной целостностью | |
-a , --appname |
Имя приложения-клиента, которое должно использоваться в составе данных о логине (при доступе с использованием аутентификации) со стороны reindexer_tool | |
-h , --help |
Флаг для вывода краткой справки о назначении аргументов командной строки | После выполнения команды утилита завершает работу |
Бэкап и восстановление базы данных
Создание дампа базы данных в виде файла:
reindexer_tool --dsn cproto://127.0.0.1:6534/mydb --command '\dump' --output mydb.rxdump
Восстановление базы данных из дампа:
reindexer_tool --dsn cproto://127.0.0.1:6534/mydb --filename mydb.rxdump
Использование reindexer_tool в интерактивном режиме
Для запуска reindexer_tool
в интерактивном режиме используется shell-команда вида
reindexer_tool [<db_name>]
или
reindexer_tool [<db_name>] {<options>}
с опциями, для которых не предусмотрено завершение работы утилиты после выполнения команды.
При работе в интерактивном режиме reindexer_tool
может выполнять SQL-запросы и команды, которые записываются с префиксом \
.
Получение справки
Для получения справки по запросам и командам, поддерживаемым reindexer_tool
в интерактивном режиме, выполните команду:
\help
SQL-запросы
Указываются без префикса. В качестве команды для утилиты reindexer_tool
может выступать SQL-запрос, который начинается с ключевых слов:
SELECT
,DELETE
,UPDATE
,EXPLAIN
.
Добавление новой записи (документа) в неймспейс
Обобщенный синтаксис команды:
\upsert <namespace> <document>
Здесь:
<namespace>
— имя неймспейса;<document>
— содержимое новой записи (документа).
Пример использования команды:
\upsert books {"id":5,"name":"NewBook"}
Удаление записи (документа) из неймспейса
Обобщенный синтаксис команды:
\delete <namespace> <document>
Здесь:
<namespace>
— имя неймспейса;<document>
— содержимое записи (документа).
Пример использования команды:
\delete books {"id":5}
Создание бэкапа базы данных в виде дампа в текстовом формате
Обобщенный синтаксис команды:
\dump [namespace1 [namespace2]...]
Здесь <namespace_*>
— имена неймспейсов, данные которых нужно включить в дамп. Эти параметры необязательны. Если их не указывать и выполнить команду \dump
, произойдет бэкап базы данных, к которой подключен reindexer_tool
, целиком.
Команды для управления неймспейсами
Создание нового неймспейса
Обобщенный синтаксис команды:
\namespaces add <namespace> <definition>
Здесь:
<namespace>
— имя нового неймспейса;<definition>
— определение нового неймспейса.
Вывод списка доступных неймспейсов в текущей базе данных
Синтаксис команды:
\namespaces list
Удаление неймспейса из базы данных
Обобщенный синтаксис команды:
\namespaces drop <namespace>
Здесь <namespace>
— имя удаляемого неймспейса.
Команды для управления базами данных
Вывод списка доступных баз данных
Синтаксис команды:
\databases list
Переключение между базами данных
Обобщенный синтаксис команды:
\databases use <dbmame>
Здесь <dbmame>
- имя базы данных, на которую нужно переключиться.
Команды для управления метаданными
Добавление новой порции метаданных
Обобщенный синтаксис команды:
\meta put <namespace> <key> <value>
Здесь:
<namespace>
— имя неймспейса;<key>
— ключ добавляемой порции метаданных;<value>
— содержимое метаданных.
Вывод всех метаданных, которые относятся к неймспейсу
Обобщенный синтаксис команды:
\meta list <namespace>
Здесь <namespace>
— имя неймспейса.
Задание выходного формата данных
Обобщенный синтаксис команды:
\set output <format>
Здесь <format>
— выходной формат. Возможные значения:
json
— неформатированный JSON;pretty
— JSON с разбиением на строки и форматированием;table
— табличное представление (со строками и столбцами).
Запуск простого теста производительности
Обобщенный синтаксис команды:
\bench [<time>]
Здесь [<time>]
— необязательный параметр, устанавливающий длительность выполнения теста в секундах. Значение по умолчанию — 5 секунд.
Завершение работы утилиты reindexer_tool
Синтаксис команды:
\quit