Migracja Firebird 2.5 do wersji Firebird 3: Różnice pomiędzy wersjami
| (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 ( | 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 | |||
<syntaxhighlight lang="sql"> | ===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: | |||
<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?== | ||