Управление с помощью программ hresctl и srvcmd

Для удаленного управления системой резервирования предназначены утилиты hresctl и srvcmd.

Удаленное управление осуществляется с помощью команд, передаваемых по локальной сети по протоколу UDP управляющей программе (в частном случае, если указан адрес локального интерфейса, выполняется управление локальным сервером). Каждый запуск утилиты соответствует передаче одной команды управления и ожидания ответа от сервера резервирования в течение тайм-аута. Для программы srvcmd тайм-аут ожидания постоянен и равен 5 секундам. Для программы hresctl тайм-аут задается в значении ключа /t.

Т.к. протокол UDP не гарантирует доставку сетевых пакетов на удаленный сервер, то в случае потери сетевого пакета команда должна быть повторена (путем повторного запуска программы).

Примечание

В дистрибутиве СУБД ЛИНТЕР для ОС Windows поставляется только программа hresctl.

Для программы srvcmd имеется возможность получения файла трассировки путем установки переменной окружения SRVCMD_LOG=0xFFFFFFFF (см. описание переменной окружения SRVCMD_LOG).

Программа hresctl при старте информирует о параметрах запуска:

"command = show" – текущая команда;
"timeout (sec) = 5 " – таймаут ожидания ответа;
"HostAddr=localhost" – IP адрес сервера (может быть опущен);
"Port=1060" – порт сервера.

Передаваемая команда задается с помощью аргументов командной строки.

Далее по тексту при указании программы hresctl также подразумевается программа srvcmd.

Командная строка запуска утилиты имеет следующий формат:

hresctl -< команда > [-u=< пользователь/пароль >] [-t=< значение >] [< адрес сервера > [< номер порта >]]

Параметры командной строки:

  1. < команда >:

    • getstate|show – опросить текущее состояние сервера;

    • stop – остановить сервер резервирования;

    • shut – остановить все серверы системы резервирования;

    • exch – изменить статус сервера резервирования;

    • main – перевести резервный сервер в режим главного;

    • slave – перевести главный сервер в режим резервного;

    • testdb – протестировать БД. Команда может быть выполнена только SLAVE-сервером;

    • copy – скопировать БД в архивный каталог. Команда может быть выполнена только SLAVE-сервером;

    • arc – запустить на выполнение процесс архивирования. Путь архива и архиватор задаются из командной строки утилиты server, или используются значения по умолчанию. Архивирование запускается, даже если не задан ключ /archivate при запуске server;

    • dead_node=< имя узла > – отсоединить узел системы резервирования;

    • dead_server=< имя узла > – отсоединить сервер системы резервирования.

  2. -u=< пользователь >/< пароль >

    Задает регистрационные данные (имя и пароль) пользователя СУБД ЛИНТЕР. Используется в случае применения защиты сервера от несанкционированного управления (ключ сервера /cu).

  3. -t=< значение >

    Задает длительность тайм-аута ожидания ответа от сервера резервирования.

    Примечание

    Ключ поддерживается только программой hresctl.

  4. < адрес сервера >

    Задает сетевое имя или адрес узла, на котором работает сервер резервирования. Если адрес не задан, предполагается работа с localhost (127.0.0.1).

  5. < номер порта >

    Задает номер порта сервера резервирования, который идентичен ключу /port при запуске программы server (по умолчанию 1060). При обозначении порта обязательно явное указание адреса сервера.

Синтаксические правила:

  • квадратные скобки указывают на необязательный элемент командной строки или ключа. Внутри ключа он может быть заменен пробелом или пропущен;

  • имена ключей регистронезависимы (можно задавать как большими, так и малыми буквами);

  • название ключа предваряется символом "-" (минус);

  • значение ключа может отделяться от имени ключа пробелом или символом "=".

  • допускается предварять имя ключа символом "/". Однако в этом случае значение должно быть отделено от имени только символом "=".

Если ключ указан неправильно, то утилита не выполнит команду и выведет на консоль краткую информацию о своих ключах.

Примечание

В описании ключей значение в скобках является значением по умолчанию.

Утилита hresctl всего лишь передает серверу резервирования соответствующую команду – отработку команды выполняет непосредственно сервер резервирования. Команда может быть отвергнута сервером резервирования, если ее выполнение способно привести к потере данных или противоречит логике работы системы резервирования.

Для команд, изменяющих состояние сервера (всех, кроме getstate и show) в случае, если сервер работает в защищенном режиме (запущен с ключом /cu), необходимо задавать имя пользователя и пароль пользователя СУБД ЛИНТЕР. Этот пользователь к тому же должен быть владельцем БД.