Выполнение сетевых команд управляющей программой

После проверки санкционированности команды или непосредственно после её приема управляющая программа анализирует команду на возможность выполнения. Если команда не может быть выполнена, об этом информируется утилита hresctl (srvcmd) в ответном сообщении. Причина отказа описывается в текстовой форме.

В случае успешной проверки всех условий выполнения команды управляющая программа приступает к её выполнению. Выполнение команды часто заключается в смене состояния управляющей программы и/или отсылке команд на изменение состояние другим управляющим программам данной системы резервирования.

Причины отказа команд arc, copy, testdb:

"This server is not SLAVE_OK or is changing state" – для выполнения команд резервный сервер должен находиться в состоянии готовности;

"Testdb is already run or scheduled for running" – получена команда на проверку БД, но уже выполняется копирование, архивирование или проверка БД;

"Copy or testdb are already run or scheduled for running" – уже выполняется копирование, архивирование или проверка БД.

Причины отказа команд main, slave, exch:

"Server is already in MONO or MAIN or SW_TO_MONO or STARTMONO state" – сервер уже является главным или переключается на роль главного;

"Server is not in MAIN state" – сервер в состоянии, отличном от главного;

"Command exchange disabled in starting mode" – обмен состояниями невозможен в стартовом (UNDEFINED) режиме.

При переключении состояний и необходимости проведения конкурса на роль главного сервера сервер, получивший команду, становится старшим. Т.е. он выполняет функции по выбору главного сервера и рассылает команды остальным серверам на изменение своего состояния.

Для выполнения команды на переключение или завершение работы всей системы резервирования используется передача команд управляющей программы одного сервера управляющей программе другого.