Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка нескольких серверов Firebird, на одной системе 
:(
    Опции темы
Golden Hands
Дата 23.6.2008, 13:22 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


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

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



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

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

Firebird_2_0 - firebird.conf, firebird.msg, security2.fdb
Firebird_2_0\bin - все файлы (как в стандартной установке)
Firebird_2_0\intl - все файлы
Firebird_2_0\lib - все файлы
Firebird_2_0\UDF - все файлы


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


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

   Меняем это значение у каждого сервера. Например, первому можно назначить порт 3050, второму - 3051.
   После этого строка подключения на клиентах должна ОБЯЗАТЕЛЬНО содержать номер порта того сервера, с которым устанавливается соединение. Например:
      
Цитата
192.168.0.1/3051 


2) Для регистрации Firebird как сервера используем утилиту SC.EXE, включенную в поставку Windows, начиная с версии XP. Расположение -  
Цитата
%windir%\%systemdir%\sc.exe
. При регистрации используются те же параметры, что и при родной установке Firebird (архитектура, период рестарта при сбое и т.д.).

 
Цитата
sc.exe create Firebird_server_1 binpath= "Firebird_2_0_v1\bin\fbserver.exe -s" start= auto displayname= Firebird_server_1
sc.exe create Firebird_server_2 binpath= "Firebird_2_0_v2\bin\fbserver.exe -s" start= auto displayname= Firebird_server_2

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

;sc.exe stop Firebird_server_1     -     останов и удаление сервиса, пригодится при деинсталляции
;sc.exe delete Firebird_server_1


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



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

Важно не забыть, что теперь, например, нужно использовать не  
Цитата
Firebird_2_0_v1\bin\instsvc.exe start 
, а  
Цитата
sc.exe start Firebird_server_1
. То есть все вызовы обращаются к системному сервису, а не к исполняемому файлу Firebird.

Это сообщение отредактировал(а) Akella - 23.6.2008, 13:39


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
Akella
Дата 24.9.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



PM MAIL   Вверх
Akella
Дата 7.10.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



PM MAIL   Вверх
tm1
Дата 12.12.2011, 21:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

Код

instsvc-fb25.cmd remove


или

Код

"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


затем классик 2.0

Код

"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", можно менять там же) 
надо дать права записи на файл базы.

Кажется "в этот раз" ничего не забыл ;)

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

Устранено надеюсь 3 бага smile

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

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

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

Код

net user Firebird password1234 /add


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

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

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

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

Пока все на этом.


Это сообщение отредактировал(а) tm1 - 17.2.2012, 18:16

Присоединённый файл ( Кол-во скачиваний: 56 )
Присоединённый файл  instsvc_fb25.cmd 11,76 Kb
PM MAIL   Вверх
tm1
Дата 17.2.2012, 17:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

echo ----------------------------------------------------------------------
echo Firebird DBMS (1.5, 2.0, 2.5, greater) Windows Service installer ver. 0.2.5
echo .     This utility should be located and run from the 'bin' directory
echo .     of your Firebird installation.
echo ----------------------------------------------------------------------

...

Изменения описаны в сообщении выше smile


Присоединённый файл ( Кол-во скачиваний: 120 )
Присоединённый файл  instsvc_fb25.cmd 12,25 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

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

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

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

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


 




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


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.