2 firebird на одной машине

2 firebird на одной машине

Золотой

Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 3
Всего: 83

Имеем два бинарных сервера Firebird, которые нужно зарегистрировать на одной машине.

Примерный состав файлов:

1) Нужно разнести сервера по разным портам. 2) Нужно зарегистрировать каждый сервер под своим именем. 3) Удалить информацию о Firebird из реестра. Совсем.

1) В firebird.conf находим строчку:

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

sc.exe failure Firebird_server_1 reset= 10 actions= restart/1000
sc.exe failure Firebird_server_2 reset= 10 actions= restart/1000

sc.exe start Firebird_server_1
sc.exe start Firebird_server_2

Цитата
Firebird_2_0_v1\bin\instreg.exe r
Firebird_2_0_v2\bin\instreg.exe r

Я таскаю со своим приложением файл SC.EXE, взятый из Resource Kit for Windows 2000. Если в системной директории нет этого файла, то я копирую его туда. Можно обойтись и без этого, а запускать все команды из папки, где он лежит.

Важно не забыть, что теперь, например, нужно использовать не

. То есть все вызовы обращаются к системному сервису, а не к исполняемому файлу Firebird.

Творец

Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329

Творец

Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329

Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.12.2011

Репутация: нет
Всего: нет

Простой cmd-файл подходящий для установки версий Firebird от 1.5 до 2.5 на Windows XP/2003/7/2008 (x86/64)

1) установка службы с запуском из любого каталога (с использованием instsvc.exe и поддержки instance)
2) с запуском службы от имени простого пользователя с именем Firebird (держать можно хоть в группе “Гости”)
3) указанием необходимых для него прав на NTFS (с использованием cacls.exe)
4) хоть сколько разных версий параллельно в реестре (с использованием reg.exe)
5) open-source, feel free to modify (GPL)

Закинуть instsvc-fb25.cmd в подкаталог bin каталога, где установлен Firebird,
например “C:\Program Files (x86)\Firebird\Firebird_1_5\bin\”

UPD: Хотя я тут попробовал и оказалось, что cmd-файл закидывать лучше просто
в каталог, где установлен Firebird (и лежит файл firebird.conf),
например “C:\Program Files (x86)\Firebird\Firebird_1_5\”
так как тогда в реестре пропишется “правильно” путь к “instance”, без “..” в пути,
и будет срабатывать указание в firebird.conf относительных путей, например для UDF

то есть если cmd-файл запускать из подкаталога bin, то в реестре будет (Windows 64-bit для Firebird 32-bit)

Код
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Firebird Project\Firebird Server\Instances
DefaultInstance REG_SZ C:\Program Files (x86)\Firebird\Firebird_1_5\bin\..
SecondInstance REG_SZ C:\Program Files (x86)\Firebird\Firebird_2_5\bin\..

а так будет, если запускать из каталога, где установлен Firebird

Код
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Firebird Project\Firebird Server\Instances
DefaultInstance REG_SZ C:\Program Files (x86)\Firebird\Firebird_1_5
SecondInstance REG_SZ C:\Program Files (x86)\Firebird\Firebird_2_5

Если использовать для параллельной работы не архивы с дистрибутивом (Firebird*.zip), а установщики (Firebird*.exe),
то желательно ставить сначала раннюю версию (1.5), удалить его службу (сами файлы оставить конечно),
а затем поздние (> 1.5) в разные каталоги конечно, также удаляя их службы, так как все они ставятся как DefaultInstance.

Команда для удаления экземпляра DefaultInstance

Код
“C:\Program Files (x86)\Firebird\Firebird_1_5\instsvc-fb25.cmd” remove DefaultInstance

Затем установить службы, при этом надо ставить 1.5 как экземпляр по умолчанию (DefaultInstance),
так как он по другому сам не ставится (через instsvc.exe)

вот так например суперсервер 1.5

Код
“C:\Program Files (x86)\Firebird\Firebird_1_5\instsvc-fb25.cmd” install-ss DefaultInstance
Код
“C:\Program Files (x86)\Firebird\Firebird_2_0\instsvc-fb25.cmd” install-cs SecondInstance

а дальше суперклассик 2.5

Код
“C:\Program Files (x86)\Firebird\Firebird_2_5\instsvc-fb25.cmd” install-im ThirdInstance

само собой не забудьте указать разные значения портов для соединений в файлах firebird.conf

RemoteServicePort = 3050
RemoteServicePort = 3051
RemoteServicePort = 3052

и рекомендую для работы Event-ов

RemoteAuxPort = 3060
RemoteAuxPort = 3061
RemoteAuxPort = 3062

Для баз установите права доступа на NTFS сами,
пользователю под которым запускается служба (его имя в cmd-файле “Firebird”, можно менять там же)
надо дать права записи на файл базы.

Читайте также:  Test drive unlimited прокачка машин

Кажется “в этот раз” ничего не забыл 😉

UPD: скрипт обновился, старая версия 0.2.4 прикреплена здесь для истории,
а новая версия 0.2.5 сообщением ниже.

Первый баг был в добавлении конец пути к каталогу Firebird двойной кавычки вместо обратного слэша
при сохранении в реестре. Из-за этого Firebird 1.5 не запускался, так как не мог найти файл
“firebird.conf”. А вот Firebird 2.5 работал при таком неправильном” указании пути.

Второй баг был в добавлении пользователя Firebird для запуска службы от его имени, в Windows 7
почему-то не сработало при установке скриптом с “нуля”, сейчас переделано. Хотя я думаю, что
проблема не в Windows 7 была.

Если что добавляем пользователя вручную в “админской” командной строке например так :

ну или через GUI (“mmc compmgmt.msc”), группы для запуска достаточно “Гости”, право на запуск службы
добавляет сам instsvc.exe от Firebird 1.5 и выше.

Не забудьте про настройки “устаревание пароля” и “запрет смены пароля самим пользователем”.

Также не забудьте поменять пароль пользователя Firebird, “зашитый” в самом cmd-файле.
Ну и потом запускаем сам скрипт из каталога, где установлен Firebird, как было выше описано.

Третий баг был в том, что я забыл (!), что в Firebird 1.5 нет параметра “-n” для “instsvc.exe”.
Он всегда устанавливает службу с именем экземпляра “DefaultInstance”. Сейчас, если имя передаваемое скрипту
в параметрах равняется “DefaultInstance”, то оно не передается через параметр “-n” далее для “instsvc.exe”.

Присоединённый файл ( Кол-во скачиваний: 56 )
instsvc_fb25.cmd 11,76 Kb

Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.12.2011

Репутация: нет
Всего: нет

“Простой cmd-файл подходящий для установки версий Firebird от 1.5 до 2.5 на Windows XP/2003/7/2008 (x86/64)”

Новый скрипт “instsvc-fb25.cmd” версии 0.2.5

Присоединённый файл ( Кол-во скачиваний: 120 )
instsvc_fb25.cmd 12,25 Kb

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »

[ Время генерации скрипта: 0.1252 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Содержание

Установка нескольких экземпляров СУБД Firebird 2.5 в режиме службы на Windows Server 2012 R2

В этой статье рассматривается порядок развёртывания нескольких экземпляров СУБД 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. В этот подкаталог в дальнейшем будут размещаться файлы БД.

Создание сервисных учётных записей gMSA

Перед установкой и началом использования служб экземпляров 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, нам потребуется выполнить настройку некоторых параметров конфигурации экземпляров.

В каталоге с файлами первого экземпляра Firebird, который в нашем примере расположен в D:\FBInst1\Bin находим и открываем на редактирование конфигурационный файл firebird.conf. По умолчанию все параметры в данном файле закомментированы (#), то есть подразумевается работа экземпляра с настройками по умолчанию. Находим и убираем комментарий у параметра RemoteServicePort, который определяет TCP порт, на котором экземпляр будет создавать TCP-прослушиватель, принимающий клиентские подключения (по умолчанию используется порт TCP 3050)

Так как в нашем случае экземпляр Firebird планируется использовать в режиме SuperServer и на нашем виртуальном сервере 4 логических процессора (4 процессорных ядра, выданных ВМ), то возможно имеет смысл дополнительно настроить параметр CpuAffinityMask таким образом, чтобы использовались все логические процессоры (значение по умолчанию 1 предполагает использование только первого процессора). Согласно документации для сервера с 4 логическими процессорами значение CpuAffinityMask должно быть установлено в 15.

Сохраняем конфигурационный файл и закрываем его.

По аналогии редактируем конфигурационный файл второго экземпляра Firebird (E:\FBInst2\Bin\firebird.conf), только в этом случае в качестве порта TCP-прослушивателя указываем другой номер порта, чтобы он отличался от номера порта первого экземпляра Firebird

После того как конфигурационный файлы изменены, можем приступить к регистрации системной службы Windows для каждого экземпляра Firebird.

Регистрация служб экземпляров Firebird

Обратите внимание на то, что упоминаемая в некоторых руководствах утилита instreg, которая используется для регистрации (и разрегистрации) инсталляции Firebird в реестре Windows, в случае использования на одном сервере нескольких экземпляров Firebird 2.5 использоваться категорически не должна. В противном случае корректная совместная работа нескольких экземпляров Firebird на одном сервере может быть нарушена. Если в системе всё же по какой-то причине раньше использовалась утилита instreg, или просто выполнялась установка «дефолтного» экземпляра Firebird с помощью стандартного инсталлятора (exe-файл), в ходе работы которого вызывается instreg, то перед запуском нескольких служб с разными экземплярами Firebird, нужно предварительно удалить информацию об инсталляции Firebird с помощью команды instreg remove.

В нашем примере настройка служб Firebird выполняется на чистой системе и без применения инсталлятора, поэтому предварительное выполнение команды instreg remove нам не потребуется.

Итак, приступим к регистрации служб экземпляров Firebird.

Открываем командную строку с правами Администратора, переходим в каталог с исполняемыми файлами первого экземпляра Firebird и выполняем команду регистрации службы экземпляра с помощью утилиты instsvc (запросить информацию о ключах утилиты и её версии можно запуском с опцией -z):

В команде регистрации мы используем следующие опции:

В ходе выполнения последней команды мы должны получить сообщение об успешной регистрации службы.

По аналогии выполняем регистрацию службы второго экземпляра Firebird, обязательно предварительной перейдя в соответствующий каталог:

Теперь перейдём в оснастку управления службами Windows (services.msc) и убедимся в том, что в перечне служб появились две новых службы и обе они находятся в незапущенном состоянии.

Откроем свойства службы первого экземпляра Firebird и на вкладке General настроим автоматический тип запуска службы

Переключимся на вкладку Log On и выберем ранее созданную нами сервисную учётную запись gMSA, от имени которой должна выполняться данная служба. Обратите внимание на то, что так как используется учётная запись gMSA, в конце имени обязательно должен присутствовать символ «$», а поле с паролем при этом следует оставить пустым (ОС сервера будет сама аутентифицировать данную учётную запись в домене). При сохранении настроек по кнопке Apply мы получим сообщение о том, что для указанной нами учётной записи автоматически добавлено право входа в систему в качестве службы (Log On As A Service)

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

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

Службы должны запускаться без длительных задержек и ошибок.

Убедимся в том, что после запуска служб от каждого из экземпляров Firebird в системе появился TCP-прослушиватель для принятия клиентских подключений на ранее заданном порту.

Не забываем открыть соответствующие порты в Windows Firewall. Оперативно сделать это можно, например, с помощью PowerShell:

Теперь оба развёрнутых экземпляра Firebird можно считать запущенными и готовыми к работе.

Следующим обязательным шагом заключительной настройки является смена пароля служебной административной учётной записи SYSDBA в базе данных безопасности каждого экземпляра Firebird. О том, как это делается смотрим в отдельной заметке: Смена пароля пользователя SYSDBA в СУБД Firebird 2.5

Дополнительные источники информации:

Источник

Переход на Firebird 3.0. Многопользовательский режим

В 64-х разрядном Firebird 3 данные ограничения устранены. Теперь можно добиться значительного увеличения быстродействия (в нашей практике в 5-10 раз) за счет выделения кэша, сопоставимого с размером файла базы данных.

Реальный случай, на примере одного из наших клиентов. Размер файла базы данных составляет 60 Гб. Сервер базы данных содержит два 10-ти ядерных процессора и 128 Гб оперативной памяти. Мы установили следующее распределение оперативной памяти:

Использовались следующие параметры:

Были установлены следующие параметры в файле firebird.conf:

Чтобы не дергать лишний раз файловую систему при увеличении размера базы данных.

Разрешим операционной системе использовать свой файловый кэш для нашей базы данных. Число должно быть больше, чем размер буфера в страницах.

Разрешим ОС использовать до 20% оперативной памяти под файловый кэш.

Блоки памяти под сортировку будут увеличиваться на такую величину.

32 Гб выделяем под буфер сортировки в оперативной памяти.

Устанавливаем режим безопасности максимально приближенный к тому, как было в версии 2.5, чтобы не нарушить работу всех существующих рабочих мест.

Если файл базы данных больше размера оперативной памяти

В приведенном выше примере размер файла базы данных меньше размера оперативной памяти компьютера и распределение памяти между кэшем страниц и буфером сортировки не вызывает особых проблем. Но, как распределить память, если она меньше файла базы данных? Здесь потребуется эксперемент. Начать мы рекомендуем со следующих параметров:

Далее, наблюдаем за работающей системой:

Порядок перехода на Firebird 3

Схема перехода на третью версию сервера Firebird:

Удаление сервера Firebird 2.5

Перед установкой новейшей версии сервера Firebird 3 следует остановить службу Firebird 2.5. Конечно, если у вас нет необходимости в одновременном использовании двух разных версий сервера. Такой случай подробно рассматривается ниже.

Если вы устанавливали сервер с помощью инстолятора, то остановить службу и деинсталировать сервер можно через панель управления Windows.

Если сервер Firebird 2.5 был установлен вручную, следует выполнить следующую последовательность действий:

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

Запуск программы

Одновременная работа двух версий сервера Firebird

Изменение размера буфера для файла базы данных

Размер кэша задается при восстановлении базы данных из архива. В последствии его можно изменить с помощью параметра -buffers n утилиты командной строки gfix, которая находится в папке с выполняемыми файлами сервера Firebird. Пример вызова команды:

Источник

Интересные факты и лайфхаки