Установка серверной части

Установка серверной части

 

папка с дитрибутивом называется FullVersionVerXXX, где XXX номер версии. На данный момент актуальная версия 145.

1. Создайте папку C:\_UCS. Диск С: указан для примера, можно использовать любой.

2. Создайте папку _UCS\FITNESS скопируйте в неё папки LIB, Licence, skins из папки \fullVersionver…

3. Папку LIB (например, C:\_UCS\FITNESS\LIB) нужно добавить в системную переменную переменную PATH - см. пункт 7.

4. Создайте папку IBDATA в папке FITNESS и из \fullVersionver...\Empty скопируйте в неё fitness.fbk (backup пустой базы) и файл ibsh.errors.ru.

5. Из папки \fullVersionver…\Server\INI.SERVER скопируйте файл shelter.IB.ini в системный каталог (папка C:\Windows\), предварительно настроив его (может не быть прав на изменение файла в системной папке). Параметры настройки файла:

[General]
Messages = "C:\FITNESS\IBDATA\ibsh.errors.ru"       ;путь до файла ibsh.errors.ru
skins    = "C:\FITNESS\skins\skins.ini"             ;путь до файла skins.ini

Установка Firebird 2.5

!!!ВНИМАНИЕ!!! Для исключения возможности необоснованного роста базы данных и других неисправностей связанных с работой СУБД, необходимо использовать дистрибутив Firebird 2.5.3 из дистрибутива ПО "Абонемент" ( \fullVersionver...\FireBird_2_5\)

6. Скопируйте содержимое папки \fullVersionver...\FireBird_2_5 в C:\Program Files (x86)\FireBird\FireBird_2_5

7. Папку C:\Program Files (x86)\FireBird\FireBird_2_5\UDF\ добавить в системную переменную PATH. Для этого необходимо:

Зайти в свойства компьютера → Дополнительные параметры системы → Переменные среды → в списке переменных найти «Path» и к ее значению в начале дописать путь до папки (см. Рис. 1)

image-1634547824197.png

Рис. 1 - Добавление в переменную Path путей до папок

8. В файле C:\Program Files (x86)\FireBird\FireBird_2_5\Firebird.conf найти параметр RemoteServicePort и указать для него значение 3080

9. Установить службу с помощью bat-файла C:\Program Files (x86)\FireBird\FireBird_2_5\bin\install_classic.bat  (выполнять от имени администратора).

10. Проверить, запущена ли служба FireBird. Если нет — запустить её вручную через "Службы" Windows.

11. Добавить пользователя UCS, запустив bat-файл C:\Program Files (x86)\FireBird\FireBird_2_5\bin\addUserUCS.bat

12. Если на машине используется только одна версия Firebird, файл fbclient.dll нужно копировать, копию переименовать в gds32.dll и поместить в папку C:\Windows\System32\

Если версий Firebird несколько, необходимо разместить файл gds32.dll, взятый из необходимой версии Firebird, под .exe-файлами тех программ, которые в своей работе обращаются к БД (например, в папке Abonementmanager данный файл уже имеется изначально).

13. В первый раз программы нужно запустить от имени администратора, иначе необходимо вручную зарегистрировать midas.dll из папки \LIB\ и frDlgDef.dll в папке \Reports\dll\ с помощью следующей команды (прописать в консоли windows, запущенной от имени администратора):

regsvr32 C:\_UCS\FITNESS\LIB\midas.dll
regsvr32 С:\_UCS\FITNESS\REPORTS\DLL\frDlgDef.dll 

 

Приложение 1 - Настройка bat-файлов.

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

 1 _backup_2_5.bat - создание копии базы (.fdb -> .fbk)

set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"  ;путь до файла gbak.exe в папке, куда устанавливался FireBird
set EXE_rar="D:\_2_Base\_FB25\Rar.exe"                                    ;путь до файла запуска архиватора winRar

set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\fitness.FDB"                     ;путь до рабочей базы
set FBK="D:\_2_Base\_FB25\autobackup\fitness.FBK"                         ;путь до файла, в который будет делаться бэкап (все папки должны быть уже созданы)
set RAR="D:\_2_Base\_FB25\autobackup\FITNESS.RAR"                         ;путь до файла с архивом бэкапа (все папки должны быть уже созданы)

if exist %FBK% del %FBK%                                                  ;удаляем предыдущий бэкап, если он имеется
%EXE_gbak%  -user "ucs" -password "ucs"   -b  %FDB% %FBK%                 ;делаем бэкап
%EXE_rar%   a -ep -ag %RAR%  %FBK%                                        ;создаём архив

 2 _restore_2_5.bat - Восстановление базы из бэкапа (.fbk -> .fdb)

Обратите внимание, что при использовании файла _restore.bat он не перезаписывает конечный файл с БД, а дополняет его, поэтому перед использованием запуском данного bat-файла нужно переименовать, переместить (рекомендуется внутри папки IBDATA создать папку OLD, куда и помещать предыдущие восстановленные из бэкапа базы), либо удалить уже имеющуюся БД с таким именем. 

set EXE_gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"
set EXE_rar="D:\_2_Base\_FB25\Rar.exe"

set FDB="127.0.0.1/3080:D:\_2_Base\_FB25\FITNESS_TEST.FDB"
set FBK="D:\_2_Base\_FB25\autobackup\FITNESS.FBK"

set resout=resultrestore.txt
set charset=win1251

if exist %resout% del %resout%
%EXE_gbak% -c -k -p 8192 %FBK% %FDB% -user ucs -password ucs -v -y %resout%

3 _backup_2_5_EX.bat - создание архива базы в случае её повреждения.

Стоит отдельно обозначить данный вариант создания архива БД, так как он будет работать в том случае, если невозможно сделать бекап поврежденной БД обычным методом (_backup.bat)

set EXE_Gbak="C:\Program Files (x86)\Firebird\FireBird_2_5\bin\gbak.exe"
set EXE_Rar="c:\Program Files\WinRAR\Rar.exe"

set server=127.0.0.1/3080
set FDB_Dir=D:\FITNESS\_IBDATA
set FDB_Name=FITNESS

set FBK_Dir=%FDB_Dir%\autobackup
set FDB_Path=%FDB_Dir%\%FDB_Name%.FDB
set FDB="%server%:%FDB_Path%"
set FBK="%FBK_Dir%\%FDB_Name%.FBK"
set FBK_RAR="%FBK_Dir%\%FDB_Name%.RAR"
set FDB_ER="%FBK_Dir%\%FDB_Name%_ERROR.FDB"
set FDB_ER_RAR="%FBK_Dir%\%FDB_Name%_ERROR.RAR"

if exist %FBK% del %FBK%
%EXE_Gbak% -user "ucs" -password "ucs"  -b  %FDB% %FBK%
%EXE_Rar% a -ep -ag %FBK_RAR%  %FBK%

if exist %FDB_ER% del %FDB_ER% 
if not exist %FBK%  copy %FDB_Path% %FDB_ER% 
if exist %FDB_ER%  %EXE_Rar% a -ep -ag %FDB_ER_RAR% %FDB_ER%

4  restore_1_5_to_2_5.bat - используется для миграции с FireBird 1.5 на Firebird B 2.5

set backup=" C:\fitness\IBDATA\Empty\fitness.FBK"	             
set dbname="127.0.0.1/3080:C:\fitness\ IBDATA \fitness.FDB" 
set resout=resultrestore.txt
if exist %resout% del %resout%
"C:\Program Files\Firebird\FireBird_2_5\bin\gbak.exe" -c -k -p 8192 %backup% %dbname% -FIX_FSS_DATA win1251 -FIX_FSS_METADATA win1251 -user ucs -password ucs -v -y %resout%

;set backup – локальный путь к файлу fitness.FBK – backup базы;
;set dbname – путь до новой базы, начиная с IP-адреса (имени) сервера, если используем Firebird 2.5 не забываем указывать порт .

 

 

Приложение 2 - Выполнение SQL-скриптов.

IBExpert. Регистрация базы.

    Рассмотрим выполнение скриптов в программе IBExpert. Вход в  программу осуществляется путем запуска файла \fullVersionver…\OS\IBEXPERT\IBExpert.exe - следует скопировать его в папку "_UCS\UTILS\" для будущего использования клиентом.

1. Зарегистрировать базу (если она ещё не зарегистрирована). Для этого необходимо: нажать кнопку  Register Database (в разделе Database), ввести необходимые параметры подключения (см. рис.1) (Remote - IP-адрес машины, 127.0.0.1 - для локальной машины, используемый порт - 3080), выбрать  кодировку Win1251, установить логин UCS и пароль ucs для базы, выбрать версию Firebird (для всех актуальных установок используется версия 2.5). Указать путь до файла gds32.dll, который по умолчанию находится в папке с установленной версией Firebird в каталоге bin. Рекомендуется для Alias'а (отображаемого названия) использовать WORK - для рабочей базы и TEST - для тестовой.

    

(Рис.1 - Заполненные регистрационные данные базы)

2. Создать подключение к ещё одной базе можно простым методом - Клонировать Регистрационные Данные (Clone Registration Info) - нажав правой кнопкой на БД в списке Database Explorer (см. рис. 2 - пункт 1). Подключиться к базе данных, дважды кликнув по ней в списке либо выбрав соответствующий пункт из выпадающего меню (см. рис. 2 - пункт 2).

(Рис.2 - Клонирование данных базы и Подключение)

Выполнение скрипта.

3. Зайти в меню  Tools\Script Executive (Ctrl+F12), открыть  sql файл, содержащий нужный скрипт, установить галочку (checkbox) "Use current connect" (данная функция будет активна, если выполнено хотя бы одно подключение).

При выполнении скриптов, базу регистрировать не обязательно - если подключение не выполнено, можно указать путь до базы в самом скрипте, например так:

CONNECT '127.0.0.1/3080:c:\FITNESS\IBDATA\FITNESS.FDB' USER 'UCS' PASSWORD 'ucs';

4. Нажать кнопку  Run Script (F9). Скрипт должен выполнится без ошибок. Выполните его на рабочей (пустой) и на тестовой базе.

5. При обновлении базы данных программы abonementmanager, скрипты выполняются в возрастающем порядке (например, при переходе со 117 на 119 версию - сперва выполнить скрипт 118, а потом 119). Перед любыми обновлениями необходимо всё проверить на копии базы. Копия базы делается только через bat-файлы backup/restore.

6. После обновления, необходимо сделать backup-restore базы. 

 

Пример выполнения скрипта перевода базы на английский язык

*по аналогии, выполняется любой другой скрипт

 
Рис.3. Заходим в программу IBExpert (FullVersionVer129/OS/IBEXPERT/ibexpert.exe), нажимаем на кнопку "Register database".
 
 
Рис.4. Прописываем путь к БД "Абонемент" (см. Регистрация базы).
 

Рис.5. Нажимаем кнопку "Connect ot Database" (1) затем нажимаем кнопку"Script Executive" (2).

Рис.6. В открывшемся окне ставим галку "Use current connect", далее нажимаем "Script"->"Run from file..."  и в открывшемся окне выбираем наш скрипт (например: Translate_DB_to_English.sql) и нажимаем кнопку "Открыть".

Рис.7. Выполнится скрипт, после чего появится информационное сообщение о его успешном выполнении.

После выполнения перечисленных выше действий - закрываем IBExpert.

Приложение 3 - Управление лицензиями.

_____ описание в разработке____

Работа с ключом защиты ПО Абонемент.

После того, как установлены драйвера для ключа, и ключ вставлен в ПК, запустите файл licence.exe из Абонемент Fullversion\__SERVER\Licence\ или скачайте его по этой ссылке.
Если всё в порядке, после нажатия кнопки «Получить код сессии» в поле «Код сессии» появится набор символов, по 4, разделенных «-». (см. Рис. 3)
Если код сессии не появился, перед вами пустой не форматированный ключ. Нажмите кнопку Форматирование ключа. Внимание! Убедитесь что в данном компьютере установлен только этот ключ.
Для добавления лицензии: запустить licence.exe, получить "код сессии", сообщить его в московский офис КБЦП Спектр (вместе с информацией о требуемой лицензии) на почтовый ящик licenсe@shelter.ru и zakaz@game-keeper.com
В московском офисе  сформируют "код лицензии" - его необходимо ввести в поле «Код для записи» (см. Рис.3).
 
Внимание! Глобусом, расположенным после ID ключа, не пользоваться! 
 

image-1673345820045.png

 
Рис.3 - Внешний вид окна Licence.exe

Приложение 4 - Отслеживание автоматического запуска приложений.

    Описание утилиты StarterA1.exe

Файлы программы лежат в папке \FullVersionVer...\UTILS

Данная программа отслеживает, запущено ли приложение, и запускает его при необходимости. Имеется возможность использовать следующие параметры запуска:
Отслеживаются приложения, которые настраиваются в ini-файле, в секции [tasks.XXX] , где XXX - номер приложения от 0 до 100.
 [tasks.XXX]
   exename = C:\Projects\GKHC\GKHOSTCONNECT2\gkhostconnect.exe       ;Путь до исполняемого файла. Всегда следует использовать полный (абсолютный) путь. Именно этот файл служба ищет в процессах
   enabled=1                                                         ;0 - не отслеживать этот exe, 1 - отслеживать. По умолчанию enabled=0
   parameters=                                                       ;Параметры командной строки для запуска exe
   CommandLine=C:\Projects\GKHC\GKHOSTCONNECT2\gkhostconnect.exe dodo
   

Порядок работы службы

  1. Служба каждую секунду проверяет секции [tasks.XXX]
  2. Анализирует параметр enabled. Если enabled=1, то см.п.3
  3. Служба ищет в процессах процесс exename
  4. Если НЕ находит, то анализирует параметры CommandLine, exename и parameters.
  5. Если CommandLine НЕ пустой, то служба пытается запустить его. Если CommandLine пустой, то служба создаёт строку  exename + parameters и пытается запустить её.
    
Параметр DelayAfterStart в секции [tasks.XXX] - отвечает за задержку после успешного запуска (в миллисекундах). По умолчанию равен нулю.
[tasks.XXX]
  DelayAfterStart=3000

Примеры использования

Рекомендуется создавать отдельную копию утилиты для контроля запуска каждой необходимой программы. Для удобства, внутри ini-файла следует изменять имя и описание Службы. Например:

[Main]
DisplayName = UCS Служба StarterA1           ;Имя сервиса - отображается в графе "Имя" в "Службах"
ServiceName = StarterA1_1                    ;Внутреннее имя сервиса (одно слово. Только латинские символы и цифры. Начинается с буквы)
Description = UCS StarterA1 - ServerT1       ;Описание сервиса - отображается в графе "описание" в "службах"

Неполный список утилит, которым требуется контроль автоматического запуска:

Приложение 5 - Настройка автоматического резервного копирования.

 

_____under construction ____

Настройка автоматического резервного копирования.

Необходимость настройки автоматического резервного копирования продиктована множеством причин и является обязательным элементом работы с БД. При установке ПО, необходимо заключить с клиентом соглашение  о резервном копировании БД, которое оставляет дальнейшую ответственность за резервное копирование на заказчике (приложено к данной статье).

Чтобы настроить автоматический backup БД, необходимо создать Простую Задачу в Планировщике Задач Windows (Task Scheduler).

Триггер: ежедневно. Повторять каждый день или чаще/реже - по договорённости с заказчиком. Обычно бэкап делается в ночное время (никто не работает с базой, в ней сохранены все изменения за день). Установите галочку "

Действие: запустить программу. Указываем путь до bat-файла _backup.bat, который находится в директории \FITNESS\IBDATA\ подробнее смПриложение 1. Настройка bat-файлов.

После сохранения, зайдите в свойста задачи. Поставьте галочки "Выполнить с наивысшими правами", "Немедленно запускать задачу, если пропущен плановый запуск". Попробуйте выполнить эту задачу из планировщика. Резервная копия должна создаться без ошибок. Если этого всё-таки не происходит, перепроверьте ещё раз все пути, особенное внимание обратите на относительные пути (если имеются) - можно заменить их на абсолютные.

Рекомендуемой опцией резервного копирования является настройка копирования на внешний диск / диск удаленной машины / облачное хранилище данных (например Yandex Disk). Для этого необходимо установить Яндекс (или Google) Диск на локальную машину, настроить папку синхронизации и установить копирование архива бэкапа базы в эту папку, таким образом она будет синхронизироваться с облачным хранилищем, значительно уменьшая вероятность потери данных, необходимых для восстановления БД.

 

Вложение Размер
ucs_soglashenie_storon_o_rezervnom_kopirovanii.doc 628.5 КБ