Dwie instancje serwera Firebird działające równolegle

Z wiki.groszek.pl
Wersja z dnia 10:54, 6 lis 2023 autorstwa MBaum (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania


W artykule omówimy temat wdrożenia dwóch instancji serwera baz danych Firebird na jednym komputerze. Istnieje wiele przypadków, w których konieczne jest uruchomienie dwóch niezależnych instalacji Firebird na tym samym sprzęcie, co niesie ze sobą ułatwienia i korzyści. Jeśli zaistnieje potrzeba obsłużenia w ramach jednego komputera dwóch wersji serwera, należy wykonać poniższe kroki. Poniższy artykuł oparty jest o wersję 2.5 oraz 3.0, które różnią się strukturą danych ODS.

Zatrzymanie istniejącej usługi serwera

Zakładamy, że jedna instancja jest już działająca na urządzeniu. Jeśli nie, postępowanie jej instalacji jest standardowe.

Aby rozpocząć instalację drugiej wersji należy wstrzymać działanie serwera Firebird.

  • Otwieramy - Usługi
Okno - Usługi
Okno - Usługi
  • Prawym klawiszem myszy wybieramy usługę Firebird Server i zatrzymujemy, tak samo Firebird Guardian. Ten jednak powinien wyłączyć się automatycznie po zatrzymaniu usługi Firebird Server.
Firebird Server - zatrzymanie usługi
Firebird Server - zatrzymanie usługi


Instalacja drugiej usługi

Po wybraniu odpowiedniego instalatora (Firebird) proces powinien przebiegać standardowo. W przypadku wersji 3.0 należy dodatkowo wpisać hasło użytkownika SYSDBA.

Po instalacji nie uruchamiać usługi!

Jeśli wykorzystane zostały domyślne ścieżki (C:\Program Files (x86)\Firebird\) to efekt końcowy winien wyglądać następująco

Firebird - domyslna lokalizacja
Firebird - domyslna lokalizacja

Konfiguracja

Następnie udajemy się do katalogu z zainstalowaną nową wersją firebird, domyślnie jest to C:\Program Files (x86)\Firebird\Firebird_3_0 i odnajdujemy plik firebird.conf, a w nim linię #RemoteServicePort = 3050

firebird.conf
  • Linię należy zmodyfikować przez usunięcie znacznika wykomentowania '#' oraz zmianę portu na kolejny, w naszym przypadku 3051. Zapisać zmiany.

Po edycji linia prezentuję się następująco:

Firebird.conf po edycji


Usługi

  • Aby dodać nową usługę należy uruchomić wiersz poleceń CMD z uprawnieniami administratora i wejść do katalogu z Firebird 3.0
cd C:\Program Files (x86)\Firebird\Firebird_3_0
  • Wykonujemy polecenie
instreg
  • Jeśli otrzymana odpowiedź wygląda jak na załączony poniżej obrazie, możemy przejść do następnego kroku.
CMD instreg
CMD instreg
  • Polecenie
instreg install
  • Polecenie
instsvc install -auto -name firebird3
  • Polecenie
instsvc start -name firebird3
  • Efekt końcowy - Dwie usługi Firebird - Okno Usługi

To ważne, aby na tym etapie włączyć usługę Firebird 2.5 (Firebird Server - DefaultInstance) oraz (Firebird Guardian - DefaultInstance).

Okno Usługi
Okno Usługi

Biblioteka GDS32.DLL

Może zdarzyć się, iż biblioteka gds32.dll w katalogu C:\Windows\System32\ pozostała z wersji Firebird 2.5. Ta niestety wymaga podmiany na nowszą, obsługującą Firebird 3.0 ze wstecznym wsparciem dla Firebird 2.5.

W celu dostarczenia odpowiedniej biblioteki należy skontaktować się z serwisem.

Sposób wykorzystania wdrożonego rozwiązania

Poprawnie skonfigurowana usługa pozwala w ramach jednego urządzenia otwierać bazy z różnych wersji Firebird-a, co znaczenie ułatwia zarządzanie bazami w okresie przejściowym między wersjami. Zdarza się, że część baz została już przeniesiona na nową wersję, a trzeba zachować możliwość otwierania kopii zapasowych ze starej, bez użycia serwerów trzecich.

Łącząc się z bazą danych należy w connection string wskazać port oraz IP po jakim ma odbywać się komunikacja. Do wzoru XML użyty został wpis 'localhost', czyli adres IP 127.0.0.1.

<?xml version="1.0" encoding="windows-1250" ?>
<configuration title="Dane konfiguracyjne aplikacji" owner="----" version="3.0">
<glbLinks/>
<applications>
<application sysid="2" name="Kadry i Płace" key="0000-0000-0000-0000">
<links>
<link id="id23" alias="localhost/3050:C:\DB\is_place_fb25.GDB" user="s3uMfJd3" password="qLmsrLq/3dDk" kind="Interbase" protocol="Lokalny" charSet="WIN1250" name="Płace Firebird 2.5">
<parameters/>
</link>
<link id="id24" alias="localhost/3051:C:\DB\is_place_fb30.GDB" user="s3uMfJd3" password="qLmsrLq/3dDk" kind="Interbase" protocol="Lokalny" charSet="WIN1250"  name="Płace Firebird 3.0">
<parameters/>
</link>
</links>
<parameters/>
</application>
</applications>
</configuration>