Аргументы командной строки
Picodata является консольным приложением, которое поддерживает различные параметры запуска в виде аргументов командной строки.
Полный список аргументов доступен с помощью команды picodata help
:
USAGE:
picodata <SUBCOMMAND>
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
connect Сonnect a Picodata instance and start interactive Lua console
expel Expel node from cluster
help Print this message or the help of the given subcommand(s)
run Run the picodata instance
tarantool Run tarantool
test Run picodata integration tests
В общем случае после picodata
следует указать название команды и затем, опционально, параметры:
picodata <command> [<params>]
Команда run
Запускает инстанс (экземпляр) Picodata.
Использование
picodata run [Параметры]
Параметры
advertise
--advertise <[host][:port]>
Адрес, по которому другие инстансы смогут подключиться к данному инстансу. По умолчанию используется значение из аргумента --listen
.
Аналогичная переменная окружения: PICODATA_ADVERTISE
.
cluster-id
--cluster-id <name>
Имя кластера. Инстанс не сможет стать частью кластера, если у него указано другое имя.
Аналогичная переменная окружения: PICODATA_CLUSTER_ID
.
console-sock
--console-sock <path>
Путь к файлу сокета, который впоследствие можно использовать для
подключения с помощью команды picodata connect
--unix
. В отличие от подключения к адресу,
указанному в параметре --listen
, данный способ использует обычный текстовый протокол и привилегии администратора. Аналогичная переменная окружения:
PICODATA_CONSOLE_SOCK
.
audit
--audit <file>
Файл журнала. Данный параметр включает запись событий инстанса в журнал аудита. В качестве журнала может быть указан:
- обычный полный или относительный путь к файлу (
/var/audit.log
/audit.log
) - перенаправление на внешний обработчик, указанный после вертикального слеша (
| /usr/bin/name-goes-here -v ...
) - перенаправление на службу
syslog
защищенной ОС (syslog:
)
Аналогичная переменная окружения: PICODATA_AUDIT_LOG
data-dir
--data-dir <path>
Директория, в которой инстанс будет сохранять свои данные для постоянного хранения.
Аналогичная переменная окружения: PICODATA_DATA_DIR
.
failure-domain
--failure-domain <key=value>
Список параметров географического расположения сервера (через запятую). Также этот аргумент называется зоной доступности.
Каждый параметр должен быть в формате КЛЮЧ=ЗНАЧЕНИЕ. Также, следует помнить о том, что добавляемый инстанс должен обладать
тем же набором доменов (т.е. ключей данного аргумента), которые уже есть в кластере.
Picodata будет избегать помещения двух инстансов в один репликасет, если хотя бы один параметр зоны доступности у них совпадает.
Соответственно, инстансы будут формировать новые репликасеты.
Аналогичная переменная окружения: PICODATA_FAILURE_DOMAIN
.
help
-h, --help
Вывод справочной информации.
http-listen
--http-listen <[host][:port]>
Адрес, на котором будет доступен запущенный
HTTP-сервер. Для
работы с API маршрутизации в Lua следует использовать переменную
_G.pico.httpd
. Сервер будет запущен только при явном указании
--http-listen
с корректным адресом.
Аналогичная переменная
окружения: PICODATA_HTTP_LISTEN
.
interactive
-i, --interactive
Запуск интерактивной консоли.
Аналогичная переменная окружения:
PICODATA_INTERACTIVE_MODE
.
init-replication-factor
--init-replication-factor <INIT_REPLICATION_FACTOR>
Число реплик (инстансов с одинаковым набором хранимых данных) для каждого репликасета.
Данный параметр не может использоваться одновременно с init-cfg.
Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR
.
instance-id
--instance-id <name>
Название инстанса. Если этот аргумент не указать, то название будет сгенерировано автоматически.
Данный аргумент удобно использовать для явного указания инстанса при его перезапуске
(например, в случае его недоступности или при переносе в другую сеть).
Аналогичная переменная окружения: PICODATA_INSTANCE_ID
.
listen
-l, --listen <[host][:port]>
Адрес и порт привязки инстанса. По умолчанию используется localhost:3301
Аналогичная переменная окружения: PICODATA_LISTEN
.
log-level
--log-level <LOG_LEVEL>
Уровень регистрации событий. Возможные значения: fatal, system, error, crit, warn, info, verbose, debug.
По умолчанию используется уровень info.
Аналогичная переменная окружения: PICODATA_LOG_LEVEL
.
peer
--peer <[host][:port]>
Один или несколько адресов других инстансов (через запятую). По
умолчанию используется значение localhost:3301. Указание порта
опционально. Аналогичная переменная окружения: PICODATA_PEER
.
replicaset-id
--replicaset-id <name>
Имя репликасета. Аналогичная переменная окружения: PICODATA_REPLICASET_ID
script
--script <path>
Путь к файлу Lua-скрипта, который будет выполнен после присоединения инстанса к кластеру.
Аналогичная переменная окружения: PICODATA_SCRIPT
.
init-cfg
--init-cfg <path>
Относительный или абсолютный путь к конфигурационному файлу.
Данный параметр не может использоваться одновременно с init-replication-factor. Аналогичная переменная окружения: PICODATA_INIT_CFG
.
tier
--tier <tier>
Название тира которому будет
принадлежать инстанс. Аналогичная переменная окружения:
PICODATA_INSTANCE_TIER
.
Команда connect
Подключается к указанному инстансу и открывает интерактивную консоль
Использование
picodata connect [Параметры] <Аргументы>
Аргументы
ADDRESS
: Адрес инстанса Picodata в формате [user@][host][:port]
.
Параметры
-a, --auth_type <METHOD>
, тип аутентификации. По умолчанию используетсяchap-sha1
, также доступныmd5
иldap
.-h, --help
, вывод справки о командеconnect
.-u, --user <USER>
, пользователь, под которым будет инициировано подключение. Если пользователь указан в рамках<ADDRESS>
(например,user@localhost:3301
), то параметр--user
будет проигнорирован. Если пользователя не указывать, то будет использован пользователь по умолчанию (guest
).--password-file
, путь к файлу с паролем указанного пользователя (хранится в виде обычного текста). Без этого параметра пароль будет запрошен в интерактивном режиме. Путь к файлу пароля можно также передать через переменную окруженияPICODATA_PASSWORD_FILE
.--unix
, подключение к файлу сокета. С этим параметром обязательный аргумент интерпретируется как путь до сокета (путь может быть как относительным, так и абсолютным).
Пример
picodata connect localhost:3301
Подключение под определенным пользователем
picodata connect --user user_name localhost:3301
Передача пароля в файле
picodata connect --user user_name --password-file ~/vault/user_name_pass.txt localhost:3301
Путь к файлу пароля может быть как относительным, так и абсолютным.
Команда tarantool
Запускает Tarantool и открывает его консоль.
Использование
picodata tarantool [Параметры]
Параметры
-h, --help
, вывод справки о командеtarantool
.
Команда expel
Исключает инстанс Picodata из состава кластера.
Использование
picodata expel [Параметры]
Параметры
--cluster-id <name>
, имя кластера, из которого должен быть исключен инстанс (по умолчанию этоdemo
).-h, --help
, вывод справки о командеexpel
.--instance-id <name>
, имя инстанса, который следует исключить (без указания имениexpel
не имеет силы).--peer <[host][:port]>
, адрес любого инстанса из состава кластера (по умолчанию этоlocalhost:3301
).
Сценарии применения команд
Ниже приведены типовые ситуации и подходящие для этого команды.
-
На хосте с инстансом
i4
вышел из строя жесткий диск, данные инстанса утрачены, сам инстанс неработоспособен. Какой-то из оставшихся инстансов доступен по адресу192.168.104.55:3301
.picodata expel --instance-id i4 --peer 192.168.104.9:3301
-
В кластере
mycluster
из 3-х инстансов, где каждый работает на своем физическом сервере, происходит замена одного сервера. Выключать инстанс нельзя, так как оставшиеся 2 узла кластера не смогут создать стабильный кворум. Поэтому сначала в сеть добавляется дополнительный сервер:picodata run --instance-id i4 --peer 192.168.104.1 --cluster-id mycluster
Далее, если на сервере с инстансом i3 настроен автоматический перезапуск Picodata в Systemd или как-либо иначе, то его нужно предварительно отключить. После этого c любого из уже работающих серверов кластера исключается инстанс i3:
picodata expel --instance-id i3 --cluster-id mycluster
Указанная команда подключится к
127.0.0.1:3301
, который самостоятельно найдет лидера кластера и отправит ему команду на исключение инстансаi3
. Когда процессpicodata
на i3 завершится — сервер можно выключать.
Подробнее об устройстве кластера и репликасетов Picodata см. в разделе Запуск кластера.