Управление базой данных (Shdbinst.exe)

Для работы с БД используется консольная утилита Shdbinst.exe, с помощью которой можно выполнять следующий операции:

  • создание новой БД
  • восстановление БД из архивной копии
  • обновление текущей БД

Параметры Shdbinst.exe

Для получения списка поддерживаемых параметров необходимо запустить из командной строки (cmd.exe) утилиту Shdbinst.exe без указания параметров
вызов утилиты - C:\UCS\StoreHouse_5\Shdbinst.exe

Примеры запуска

Создание новой БД

Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB  /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"New db" /uAdmin /lC:\UCS\StoreHouse_5\Server\shcrtdb64.dll 
DELPHI

Восстановление БД

Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Restore db" /uAdmin /bC:\UCS\StoreHouse_5\Backup\backup.bkp
DELPHI

Обновление БД

Shdbinst.exe /sSDBSERV /fC:\UCS\StoreHouse_5\Database\SH5DB /i22 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Update db" /uAdmin /bC:\UCS\StoreHouse_5\Backup\backup.bkp /lc:\UCS\StoreHouse_5\Server\shcrtdb64.dll 
DELPHI

или

Shdbinst.exe /s127.0.0.1 /fC:\UCS\StoreHouse_5\Database\SH5DB /i1024 /tC:\UCS\StoreHouse_5\Database\SH5DBLog /aAdmin /d"Update db" /uAdmin /lc:\UCS\StoreHouse_5\Server\shcrtdb64.dll 
DELPHI

Поддерживаемые параметры

  • /s<Имя_Сервера> — имя сервера SH5 для подключения
  • /f<Имя_Файла_БД> — имя файла базы данных, которое должно включать в себя полное имя файла базы данных
  • /i<Размер_БД> — размер создаваемой БД (Мб)
  • /t<Имя_Журнала_Транзакций> — имя файла журнала транзакций, которое должно включать в себя полное имя файла 
  • /z<Размер_Журнала_Транзакций> — размер создаваемого журнала транзакций (Мб, по умолчанию 10Мб)
  • /a<Имя_Администратора> — имя администратора БД
  • /p<Пароль_Администратора> — пароль администратора БД (по умолчанию пусто)
  • /d<Описание_БД> — описание БД (по умолчанию пусто)
  • /b<Имя_файла_резервной_копии> — имя файла резервной копии при восстановления/обновлении БД (может включать полный путь к файлу)
  • /l<Путь_к_управляющей_библиотеке> — путь к библиотеке shcrtdb64.dll (используется для создания/обновления БД)
  • /u<Имя_пользователя> — имя пользователя (при загруженной БД)
  • /v<Пароль_пользователя> — пароль пользователя (при загруженной БД)

Коды ошибок 

  • 0  Ok
  • 1  Неверно задан параметр
  • 2  Параметр не найден
  • 3  Ошибка инициализации domm.dll
  • 4  Ошибка инициализации sdbcli.dll
  • 5  Ошибка выполнения процедуры domm.dll
  • 6  Ошибка выполнения процедуры sdbcli.dll
  • 7  Неизвестная ошибка
  • 8  Операция прервана пользователем

Запуск сервера

Для запуска сервера необходимо запустить  Sdba и Sdbserv через командную строку.

Запуск Sdba службой

  • Имя сервиса (ServiceName): "Sdba" или "Sdba64"
  • Отображаемое имя (DisplayName) : "Sdbserv assistent" или "Sdbsrv64 assistent"
  • Командная строка: <полный_путь> + параметр " /s".
    Пример команды:

C:\UCS\StoreHouse_5\Shdbinst>C:\UCS\StoreHouse_5\Server\Sdba64.exe /s

Запуск Sdbserv службой

  • Имя сервиса (ServiceName) и отображаемое имя (DisplayName): "Sdbserv: " + <название_экземпляра_сервера> или "Sdbsrv64: " + <название_экземпляра_сервера>
  • Командная строка: полный_путь + параметр " /s"  + параметр " /n" + <название_экземпляра_сервера>

Пример: C:\UCS\StoreHouse_5\Shdbinst>c:\UCS\StoreHouse_5\Server\SdbSrv64.exe /s /nSDBSERV
Проверить запустились сервисы или нет можно в процессах (в диспетчере задач)

Параметры в в реестре

Параметры сервера

Общие серверные параметры

Серверные параметры хранятся в ветке HKLM\SOFTWARE\UCS\Sdbserv.2 (корневая ветка)

Если при запуске сервера не указано имя экземпляра (параметр /n), используется ветка HKLM\SOFTWARE\UCS\Sdbserv.2\SDBSERV

Параметры, доступные в корневой ветке HKLM\SOFTWARE\UCS\Sdbserv.2:

  • Autorun (строковый) - список экземпляров серверов через ";" для автоматического запуска при загрузке Windows (но не сервисами):
  • RootDir (строковый) -  каталог, из которого запускается сервер и его утилиты

Параметры экземпляра сервера

Параметры конкретного экземпляра сервера хранятся в ветке HKLM\SOFTWARE\UCS\Sdbserv.2\<Имя_экземпляра_сервера>
Параметры, доступные в ветке экземпляра сервера

Общие параметры сервера

  • params (DWORD) - битовая маска нижеперечисленных параметров:
  • AutoRepair=1 -  автоматически восстанавливать БД по журналу транзакций
  • DisableAutoValidation= 2 - запретить проверку файла данных при загрузке при обрыве записи в журнал транзакций 
  • OpenDbReadOnly=4  - файл БД открывается только на чтение (read only)
  • PriorityHigh=8  - запускать с высоким приоритетом
  • PriorityIdle=16  - запускать с низким приоритетом
  • ShowInitErrors=64  - ошибки инициализации будут выведены на экран (для сервиса игнорируется)
  • SafeMode=128  - будет загружен только файл БД без прикладных библиотек

Если не выставлен флаг AutoRepair  и обнаружена незавершенная транзакция, то

  • сервис будет остановлен
  • не сервис будет остановлен, если не выставлен флаг ShowInitErrors
  • в противном случае на экране будет отображено окно диалога


 Параметры протоколирования

  • lgprms (DWORD) -  битовая маска нижеперечисленных параметров (необязательный параметр):
  • Logins=1
  • ChannelEvts=2

Прочие параметры

  • descr (строковый) - описание назначения сервера, для информации (необязательный параметр)
  • dbfile (строковый) - полный путь к файлу БД
  • dblog (строковый) - полный путь к журналу транзакций БД
  • minwss (DWORD) - размер минимального рабочего набора (min working set) процесса сервера (см. документацию Microsoft) в килобайтах, (необязательный параметр, настоятельно рекомендуется не устанавливать параметр без необходимости)
  • maxwss (DWORD) - размер максимального рабочего набора (min working set) процесса сервера (см. документацию Microsoft) в килобайтах, (необязательный параметр, настоятельно рекомендуется не устанавливать параметр без необходимости)
  • maxch (DWORD)  -  максимльный размер резервируемого кэша в байтах (необязательный параметр, рекомендуется использовать значение по умолчанию)
  • incch (DWORD)  - минимальный размер памяти в байтах для увеличения размера кэша в случае исчерпания ранее выделенной памяти (необязательный параметр, рекомендуется использовать значение по умолчанию)
  • logfile (строковый) - полный путь к лог-файлу сервера (может быть пустым)
  • libpath (строковый) - путь к каталогу с библиотеками пользователя
  • bkppath (строковый) - путь к каталогу хранения резервных копий БД
  • bkpprms (DWORD) - опции автоматического резервного копирования; содержат структуру 
struct { 
BYTE Type; // Тип копирования (0-отключить автоматическое резервное копирование; 1-включить) 
BYTE Period; // Периодичность в днях минус 1 [1, 256] 
WORD Time; // Время в минутах [00:00, 23:59] 
}
PHP
  • monitor (строковый) - полный путь к библиотеке монитора
  • threads (DWORD) - максимальное кол-во потоков для обработки данных (необязательный параметр, на текущий момент если параметр определен, его значение строго должно равняться единице)
  • stack (DWORD) - размер стека, используемый при создании потока (необязательный параметр; по умолчанию 1 MB)
  • tam (строковый)  -  префикс ThreadAffinityMask (tam0, tam1, ...) (необязательный параметр)
  • tip (строковый)  - префикс ThreadIdealProcessor (tip0, tip1, ...) (необязательный параметр)
  • nplist  (DWORD) -  битовая маска протоколов (необязательный параметр; 1-локальный, 2-tcp/ip; по умолчанию оба)
  • np1p  (строковый)  -  порт tcp/ip
  • np1to  (строковый)  - таймаут tcp/ip

Параметры клиента

Параметры клиента хранятся в корневой ветке HKLM\SOFTWARE\WOW6432Node\UCS\Sh.5 (x64) или HKLM\SOFTWARE\WOW6432Node\UCS\Sh.5 (x86):

  • dmalib (строковый) - полный путь к shadm.bpl (обязательный параметр)
  • dmlgnt (DWORD)  - тип логина (необязательный параметр, по умолчанию 0)
    Может принимать значения:
  • 0 - отображать диалог логина с выбором типа аутентификации
  • 1 - отображать диалог логина только с типом аутентификации через сервер
  • 2 - отображать диалог логина только с типом аутентификации через Windows
  • 3 - в случае, если в списке серверов прописан только один сервер, производится аутентификация через Windows, при ошибке выдается сообщение об ошибке; если кол-во серверов не равно 1, диалог как при типе логина 0
  • 4 - в случае, если в списке серверов прописан только один сервер, производится аутентификация через Windows, при ошибке показывается диалог логина с выбором типа аутентификации; если кол-во серверов не равно 1, диалог как при типе логина 0
  • dmsrvs (строковый) - список серверов
  • dmsrva (строковый)  - список псевдонимов серверов
  • dmusrm (DWORD) - макс. хранимое кол-во пользователей (необязательный параметр, по умолчанию 5)
  • dmsrvm (DWORD) - макс. хранимое кол-во доп. серверов, введенных вручную (необязательный параметр, по умолчанию 5)
  • dmopts (DWORD) - битовая маска нижеперечисленных параметров (необязательный параметр, по умолчанию 0):
  • dmRegOptionsEnableExServers=1  - разрешить ручной ввод серверов