Migracja Firebird 2.5 do wersji Firebird 3
Współpracująca z nami firma Arisco będzie wykorzystywała w swoich programach wyłącznie wersję serwera Firebird w wersjach 3.0 i wyższych. W związku z tym zalecamy jak najszybszą aktualizację wersji serwera baz danych, szczególnie tam, gdzie system ewidencji odpadów współpracuje z naszym systemem księgowym Księgowość Zobowiązań (KSZOB). Wersje Firebirda wcześniejsze niż 3.0 należy traktować jako zdezaktualizowane.
Wersja trzecia Firebirda wprowadza nową strukturę baz danych i tylko tę obsługuje. Oznacza to, że bazy utworzone poprzednimi wersjami stały się dla wersji trzeciej nieczytelne. W związku z tym, aby przenieść bazę danych z poprzednich wersji należy najpierw utworzyć jej kopię zapasową, a następnie odtworzyć ją z tej kopii używając programów narzędziowych z wersji 3.
FBBack - narzędzie do migracji
FBBack to narzędzie ułatwiające proces migracji baz danych z Firebird 2.5 do wersji Firebird 3.
groszek.pl > zakładka Pobieranie > katalog zz_dodatki > info-sys_fb25to30.zip groszek.pl > info-sys_fb25to30.zip
Do przeprowadzenia migracji wymagany jest serwer Firebird w wersji 2.5.9 oraz ODS = 11.2
- Uruchamiamy aplikacje 'FBBack.exe'
- Backup (kopia zapasowa) - na komputerze z Firebird 2.5:
- Zaznaczamy 'Backup' oraz 'Skrypty naprawcze'
- Przyciskiem 'Wybierz pliki' wskazujemy pliki baz danych (bazy zalecamy przenieść do katalogu z aplikacją 'fbback'; można zaznaczyć wiele baz)
- W polach 'Login' oraz 'Hasło' wprowadzamy dane logowania użytkownika baz danych
- Przyciskiem 'Start' rozpoczynamy procedurę tworzenia kopii zapasowej - kopia zostanie utworzona w tej samej lokalizacji
- Restore (odtworzenie z kopii zapasowej) - po odinstalowaniu Firebird 2.5 i zainstalowaniu Firebird 3 (zalecamy instalacje wersji 3.0.10)
- W aplikacji 'FBBack.exe' zaznaczamy 'Restore'
- Przyciskiem 'Wybierz pliki' wskazujemy pliki z kopią baz danych
- W polach 'Login' oraz 'Hasło' wprowadzamy dane logowania użytkownika baz danych
- Przyciskiem 'Start' rozpoczynamy procedurę odtworzenia - docelowe pliki bazy danych zostaną utworzone w tej samej lokalizacji

Skrypty (opcja alternatywna dla zaawansowanych, zapewnia szybszy proces tworzenia plików)
Na serwerze z Firebird 2.5.9
Pierwszym krokiem jest wykonanie skryptu naprawczego (skrypt jest potrzebny tylko, gdy w bazie istnieje tabela IS_KONTA_W):
alter table is_konta_w add UWAGI_BUFOR varchar(30000);
update is_konta_w set uwagi_bufor = uwagi_ksg;
alter table is_konta_w drop uwagi_ksg;
alter table is_konta_w add UWAGI_KSG BLOB SUB_TYPE 1 SEGMENT SIZE 4096;
update is_konta_w set uwagi_ksg = uwagi_bufor;
alter table is_konta_w drop uwagi_bufor;
Następnie w konsoli udajemy się do lokalizacji z zainstalowany Firebird, najczęściej jest to:
cd C:\Program Files (x86)\Firebird\Firebird_2_5\bin
Uruchamiamy polecenie wykonujące kopię bazy danych (gdzie: usr - nazwa użytkownika, psw - hasło, database - pełna ścieżka do pliku bazy danych, backupfile - pełna ścieżka do tworzonej kopii bazy):
gbak -user usr -pas psw -b -v -g -se service_mgr database backupfile
Na serwerze z Firebird 3.0
Instalujemy i uruchamiamy Firebirda 3 (wcześniej odinstalowujemy bieżącą wersję). W konsoli uruchamiamy katalog z Firebird 3.0 (domyślnie jest w katalogu):
cd C:\Program Files (x86)\Firebird\Firebird_3*
Wykonujemy polecenie odtworzenia bazy danych z kopii zapasowej (gdzie: usr - nazwa użytkownika, psw - hasło, database - pełna ścieżka do pliku kopii z poprzedniego korku, database1 - pełna ścieżka do nowo tworzonej bazy)::
gbak -user usr -pas psw -p 16384 -c -v -se service_mgr backupfile database1
Komputery klienckie
Po ukończeniu migracji baz na serwerze należy odinstalować klienta Firebird 2.5 z urządzeń końcowych. Do podłączenia się przez użytkowników do baz w wersji 3.0 najczęściej wystarczy dodana biblioteka GDS32.DLL przy programach Info-System. Biblioteka musi znaleźć się przy każdym z programów. Jeżeli w dalszym ciągu będzie występował jeden z poniższych błędów:
"connection rejected by remote interface"
lub
"DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path."
należy doinstalować klienta FB 3.0.13 na urządzeniach końcowych.
Jak przyspieszyć proces tworzenia kopii i ich odtwarzania
Proces tworzenia kopii i odtwarzania baz z kopii można przyspieszyć, stosując się do następujących wskazówek:
- Używamy przełącznika -g podczas tworzenia kopii, który wyłącza 'odśmiecanie' (garbage collector).
- Używamy przełącznika -se service_mgr zarówno przy tworzeniu kopii, jak i odtwarzaniu. Powoduje on wykonywanie polecenia w ramach procesu serwera.
- Używamy dysków SSD.
- Zablokowanie innych czynników, które mogłyby używać dyskowych operacji I/O.
- Jeżeli serwer dysponuje dużą ilością pamięci RAM, to na czas odtwarzania bazy z kopii możemy zwiększyć parametr TempCacheLimit znajdujący się w pliku firebird.conf. Dzięki temu serwer może użyć więcej pamięci potrzebnej przy tworzenia indeksów.
Zmiana hasła użytkownika SYSDBA
Aby zmienić hasło dla użytkownika SYSDBA w Firebird, należy wykonać następujące kroki:
- Otwórz wiersz poleceń i przejdź do katalogu bin w instalacji Firebird.
- Wykonaj poniższe polecenie, aby zmienić hasło (w tym przykładzie nowe hasło to nowehaslo):
gsec -user sysdba -pass masterkey -mo sysdba -pw nowehaslo
W powyższym poleceniu:
- -user sysdba – identyfikujesz się jako użytkownik SYSDBA.
- -pass masterkey – podajesz aktualne hasło użytkownika SYSDBA.
- -mo sysdba – modyfikujesz konto SYSDBA.
- -pw nowehaslo – określasz nowe hasło.
Po wykonaniu tych kroków, nowe hasło zostanie zaszyfrowane i zapisane, a stare hasło przestanie być ważne.
Nowe hasło należy wprowadzić w plikach konfiguracyjnych XML aplikacji, które łączą się z bazami danych Firebird.
Wprowadzenie nowego hasła w aplikacji Admin
Menu -> Plik konfiguracyjny -> Edycja pliku konfiguracyjnego
Okno wyświetla informacje z otwartego pliku konfiguracyjnego (plik, który otwieramy przy logowaniu do programu Admin). Dla każdego wpisu, po naciśnięciu przycisku Zmień możemy zmienić parametry, w tym login i hasło do serwera baz danych Firebird.

Wprowadzenie nowego hasła w XML konfiguracyjnym
W pliku konfiguracyjnym XML należy w drugiej linijce zmienić wartość atrybutu version z "3.0" na "1.0", jak poniżej:
<configuration title="Dane konfiguracyjne aplikacji" owner="Wersja demonstracyjna" version="1.0">
Następnie, w linku do bazy danych, należy podać login i hasło do Firebird w formie niezaszyfrowanej. Przykład:
<link id="id2" alias="D:\Bazy\IS_PDK.GDB" user="SYSDBA" password="masterkey" kind="Interbase" protocol="Lokalny" charSet="WIN1250" dialect="1" name="Podatki - os. fizyczne" timerDB="60000">
Po wykonaniu powyższych kroków, uruchamiamy program. Przy pierwszym uruchomieniu dane w pliku konfiguracyjnym zostaną zaszyfrowane.
- Uwaga! Wystarczy jeden raz zaszyfrować hasło w opisany wyżej sposób, a w kolejnych plikach XML można wykorzystać nowe hasło zapisane w sposób zaszyfrowany.
Potwierdzenie poprawnie wykonanej migracji
Weryfikacja poprawności migracji nastąpi po poprawnym zalogowaniu się do dowolnego programu Info-System, otwarcie zakładki Konfiguracja -> Informacja o środowisku. Informacja o bazie powinna zawierać ODS: 12.0, jeżeli występuje 11.2, nasz Firebird to stara wersja 2.5.

Kontrola spójności i poprawności bazy danych
Dla ułatwienia wykonania porządkowania bazy danych przygotowano skrypt o nazwie BACK_DB.BAT, który należy skopiować do katalogu z bazą danych. Konieczne jest także skopiowanie programów GBAK.EXE, GFIX.EXE oraz fbclient.dll z katalogu instalacyjnego Firebird 3.0 . Skrypt należy wykonywać z linii poleceń, podając jako parametr nazwę pliku bazy danych bez rozszerzenia (przyjęto także standardową nazwę i hasło użytkownika bazy danych). Oczywiście, w czasie wykonywania skryptu baza nie może być wykorzystywana.
Kolejne fazy skryptu zamykają niedokończone transakcje, wykonują kontrolę i porządkowanie struktury bazy danych, a następnie pełną kopią bazy danych i przywrócenie bazy danych.
gfix -shut single -force 60 -user sysdba -password masterkey %1.GDB
gfix -v -full -user sysdba -password masterkey %1.GDB
gfix -commit all -user sysdba -password masterkey %1.GDB
gfix -mend -full -i -user sysdba -password masterkey %1.GDB
del back21.log
gbak -B -y back21.log -user sysdba -pas masterkey %1.GDB %1.GBK
gbak -REP -p 8192 -user sysdba -pas masterkey %1.GBK %1.GDB
gfix -shut full -force 0 -user sysdba -password masterkey %1.GDB
gfix -online -user sysdba -password masterkey %1.GDB
pause
Zalecamy regularne wykonywanie skryptu porządkującego – oprócz uporządkowania bazy i utworzenia kopii, podczas procesu odtwarzania tworzone są na nowo indeksy tabel, oraz usuwane są stare, niepotrzebne i niewykorzystywane dane. Wykonanie skryptu może więc dobrze wpłynąć na efektywność korzystania z bazy danych, dając krótsze czasy dostępu do danych, a także zmniejsza rozmiar pliku bazy danych.
Potrzebna pomoc?
Skontaktuj się z nami za pośrednictwem poczty e-mail jeśli potrzebujesz pomocy podczas procesu migracji.