Migracja Firebird 2.5 do wersji Firebird 3: Różnice pomiędzy wersjami

MBaum (dyskusja | edycje)
MBaum (dyskusja | edycje)
 
(Nie pokazano 15 wersji utworzonych przez 2 użytkowników)
Linia 25: Linia 25:
[[Plik:Info-sys fb25to3.png|ramka|brak|FBBack - okno aplikacji]]
[[Plik:Info-sys fb25to3.png|ramka|brak|FBBack - okno aplikacji]]


==Skrypty (opcja alternatywna dla zaawansowanych)==
==Skrypty (opcja alternatywna dla zaawansowanych, zapewnia szybszy proces tworzenia plików)==
===Na serwerze z Firebird 2.5.9===
===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):
Pierwszym krokiem jest wykonanie skryptu naprawczego (skrypt jest potrzebny tylko, gdy w bazie istnieje tabela IS_KONTA_W):
<syntaxhighlight lang="sql">alter table is_konta_w add UWAGI_BUFOR varchar(30000);
<syntaxhighlight lang="sql">alter table is_konta_w add UWAGI_BUFOR varchar(30000);
update is_konta_w set uwagi_bufor = uwagi_ksg;
update is_konta_w set uwagi_bufor = uwagi_ksg;
alter table is_konta_w drop uwagi_ksg;</syntaxhighlight>
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;</syntaxhighlight>


Następnie 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)'':
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
  gbak -user usr -pas psw -b -v -g -se service_mgr database backupfile


===Na serwerze z Firebird 3.0===
===Na serwerze z Firebird 3.0===
Instalujemy i uruchamiamy Firebirda 3 (zalecamy wersję 3.0.12 x86; wcześniej odinstalowujemy bieżącą wersję). Wykonujemy polecenie odtworzenia bazy danych z kopii zapasowej:
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
  gbak -user usr -pas psw -p 16384 -c -v -se service_mgr backupfile database1


Po odtworzeniu bazy z kopii należy wykonać poniższy skrypt:
 
<syntaxhighlight lang="sql">alter table is_konta_w add UWAGI_KSG BLOB SUB_TYPE 1 SEGMENT SIZE 4096;
===Komputery klienckie===
update is_konta_w set uwagi_ksg = uwagi_bufor;
 
alter table is_konta_w drop uwagi_bufor;</syntaxhighlight>
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:
<syntaxhighlight lang="sql">"connection rejected by remote interface"</syntaxhighlight>
lub
<syntaxhighlight lang="sql">"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."</syntaxhighlight>  
 
należy doinstalować klienta FB 3.0.13 na urządzeniach końcowych.


===Jak przyspieszyć proces tworzenia kopii i ich odtwarzania===
===Jak przyspieszyć proces tworzenia kopii i ich odtwarzania===
Linia 90: Linia 102:


{{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.
{{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.
[[Plik:ODS12.png|ramka|brak|Informacje o środowisku - Firebird 3.0 - ODS: 12]]
===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.
<syntaxhighlight lang="dos">
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
</syntaxhighlight>
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?==
==Potrzebna pomoc?==