Второй экземпляр Firebird недоступен

Мое требование состоит в том, чтобы создать именованный экземпляр, пока на том же компьютере работает экземпляр по умолчанию, и подключиться к нему через какую-либо консоль управления или командную строку.

Я создал 2,5-секундный экземпляр firebird, используя

instsvc install -auto -superserver -guardian -name secondservice
instsvc start -name secondservice

Это создало службу ядра и службу-хранитель, и было подтверждено, что они работают с помощью центра управления Firebird и через окно служб.

Однако я не могу подключиться к экземпляру с помощью консоли ibo, когда я помещаю параметры в имя хоста как localhost/secondservice, и я не могу подключиться к нему через isql, используя

isql localhost\secondservice:employee  

Я загрузил zip-файл через http://downloads.sourceforge.net/project/firebird/firebird-win32/2.5.4-Release/Firebird-2.5.4.26856-0_Win32.zip

Кто-нибудь знает, чего не хватает?


person user3614386    schedule 30.07.2015    source источник
comment
Эти экземпляры FB должны прослушивать другой порт. Вы изменили порт secondservice в файле firebird.conf? Если вы это сделали, вы также должны использовать этот порт в строке подключения.   -  person ain    schedule 30.07.2015
comment
Я изменил порт в файле firebird.conf над каталогом bin. Однако, запустив netstat, я не смог подтвердить, что он работает на другом порту. Сервис появился под другим именем. Я пытаюсь подключиться через isql, поэтому строки подключения я еще не проверял.   -  person user3614386    schedule 31.07.2015


Ответы (2)


В Firebird нет концепции именованных экземпляров, как в SQL Server. Если вы хотите запустить второй экземпляр, то файл firebird.conf этого экземпляра должен иметь другое значение параметра конфигурации RemoteServicePort (по умолчанию 3050), и вам необходимо указать этот номер порта при подключении (скажем, вы настроили порт на 13050):

isql localhost/13050:employee

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

person Mark Rotteveel    schedule 30.07.2015
comment
начиная с firebird 2.1 вы можете destructor.de/firebird/multiinstance.htm, но ни порт или имя не работает для меня. Я могу без проблем подключиться к первому экземпляру. - person user3614386; 31.07.2015
comment
firebird-tips.blogspot.com.au/ 2009/12/ были выполнены шаги установки для установки второго экземпляра (второй службы) - person user3614386; 31.07.2015
comment
@user3614386 user3614386 Недостаточно запустить второй экземпляр с другим портом, вы также должны подключиться к нему, используя этот порт. У меня все работает нормально. - person ; 31.07.2015
comment
Спасибо, неверная ссылка на конфигурацию через реестр все испортила. Спасибо. Я поставил то, что я сделал, в вопрос, на всякий случай, это поможет кому-нибудь - person user3614386; 31.07.2015

Это сработало

я убедился

  1. В реестре нет ключей, связанных с firebird, которые указывают на firebird 1.5 или что-то еще.

  2. echo %FIREBIRD% не печатает значение

  3. В файле firebird.conf ниже две строки (изменена только строка порта с 3050 на 3070):

    #RemoteServiceName = gds_db
    RemoteServicePort = 3070
    

Ран

instsvc stop -name secondservice

instsvc stop -name DefaultInstance

instsvc r -n secondservice

instsvc install -auto -superserver -guardian -name secondservice

instsvc start -name secondservice

Службы запущены и работают

telnet -a подтверждает, что служба прослушивает порт 3070.

isql localhost/3070:C:\test.fdb -user SYSDBA -pass masterkey 

работал на меня

Что решило, так это очистка переменных ENV и реестра, после этого ничего особенного.

person user3614386    schedule 31.07.2015
comment
О третьем пункте: строки, начинающиеся с #, являются комментариями, поэтому их значение не важно, будет использоваться значение по умолчанию. - person ain; 31.07.2015