Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Это старая версия документа!
В этой статье рассматривается порядок развёртывания нескольких экземпляров СУБД Firebird 2.5 в рамках одной серверной системы на базе ОС Windows Server 2012 R2. Каждый экземпляр Firebird при этом должен выполняться в режиме службы Windows, которая запускается от имени специальной сервисной учётной записи Group Managed Service Account (gMSA). В рассматриваемом примере каждый экземпляр располагается на выделенном диске и имеет отдельный TCP-порт для обслуживания клиентских подключений.
Так как мы планируем разворачивать в рамках одного сервера несколько экземпляров Firebird, важно не использовать для установки стандартный exe-инсталлятор, так как он вносит в системный реестр Windows данные, которые могут отрицательным образом повлиять на работу в мульти-экземплярном варианте.
Переходим на страницу загрузки Firebird 2.5 и загружаем не инсталляционный пакет в виде exe-файла, а архив в виде zip-файла. Например, в нашем случае будет устанавливаться 32-битная версия Firebird 2.5.8, поэтому загружается файл Firebird-2.5.8.27089-0_Win32.zip.
В нашем случае установка будет выполняться на виртуальный сервер c гостевой ОС Windows Server 2012 R2 Standard. Сервер имеет 3 дисковых тома. На первом томе C:\ расположена ОС. Второй (D:\) и третий том (E:\) будут использоваться для установки двух отдельных экземпляров СУБД Firebird.
При подготовке дисковых томов под экземпляры Firebird форматируем их в файловую систему NTFS с размером кластера в 4KB (используется по умолчанию в Windows Server 2012 R2). Единственная информация, которую удалось найти по поводу рекомендуемого размера кластера, была обнаружена в обсуждении How to Determine Optimal Disk Cluster Size for Firebird 2.5.
Необходимость разнесения экземпляров Firebird по разным дисковым томам может быть продиктована разными соображениями, начиная с разных требований по производительности дисковой подсистемы к разным экземплярам, заканчивая вопросами изоляции файлов экземпляров в целях безопасности.
Создадим под первый экземпляр Firebird на диске D: каталог D:\FBInst1\Bin и распакуем в него содержимое загруженного ранее zip-архива.
Создадим под второй экземпляр Firebird на диске E: каталог E:\FBInst2\Bin и также скопируем в него содержимое загруженного ранее zip-архива.
В каждом из каталогов D:\FBInst1 и E:\FBInst2 создадим ещё один подкаталог \Data. В этот подкаталог в дальнейшем будут размещаться файлы БД.
Перед установкой и началом использования служб экземпляров Firebird нам нужно будет создать учётные записи, от имени которых будут выполняться службы экземпляров. Для этого есть несколько вариантов:
Каждый из вариантов имеет свои преимущества и недостатки, но если подходить к вопросу с точки зрения безопасности, то вариант наиболее оптимальным представляется вариант с использованием Управляемых служебных учетных записей Group Managed Service Account (gMSA).
Создадим в домене для каждого экземпляра создаём отдельную учётную запись gMSA.
О том, как создать учётную запись gMSA смотрим в статье Создание учётных записей MSA и gMSA
В нашем случае в домене создано две учётных записи gMSA с именами s-S11 и s-S12
О том, как установить созданные в домене учётные записьи gMSA на сервере смотрим в статье Установка учётных записей MSA и gMSA на серверы
После того, как сервисные учётные записи созданы и установлены на сервере, выдадим им полные права NTFS на каталоги, в которых будут выполняться экземпляры Firebird. Учётной записи s-S11 выдадим права на каталог первого экземпляра (D:\FBInst1), а учётной записи s-S12 выдадим права на каталог второго экземпляра Firebird (D:\FBInst2)
Перед тем, как мы зарегистрируем службы экземпляров Firebird, нам потребуется выполнить настройку некоторых параметров конфигурации экземпляров.
В каталоге с файлами первого экземпляра Firebird, который в нашем примере расположен в D:\FBInst1\Bin находим и открываем на редактирование конфигурационный файл firebird.conf. По умолчанию все параметры в данном файле закомментированы (#), то есть подразумевается работа экземпляра с настройками по умолчанию. Находим и убираем комментарий у параметра RemoteServicePort, который определяет TCP порт, на котором экземпляр будет создавать TCP-прослушиватель, принимающий клиентские подключения (по умолчанию используется порт TCP 3050)
... RemoteServicePort = 3051 ...
Так как в нашем случае экземпляр Firebird планируется использовать в режиме SuperServer и на нашем виртуальном сервере 4 логических процессора (4 процессорных ядра, выданных ВМ), то возможно имеет смысл дополнительно настроить параметр CpuAffinityMask таким образом, чтобы использовались все логические процессоры (значение по умолчанию 1 предполагает использование только первого процессора). Согласно документации для сервера с 4 логическими процессорами значение CpuAffinityMask должно быть установлено в 15.
... CpuAffinityMask = 15 ...
Сохраняем конфигурационный файл и закрываем его.
По аналогии редактируем конфигурационный файл второго экземпляра Firebird (E:\FBInst2\Bin\firebird.conf), только в этом случае в качестве порта TCP-прослушивателя указываем другой номер порта, чтобы он отличался от номера порта первого экземпляра Firebird
... RemoteServicePort = 3052 ...
После того как конфигурационный файлы изменены, можем приступить к регистрации системной службы Windows для каждого экземпляра Firebird.
…
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 06.11.2018 23:01