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

Z wiki.groszek.pl
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Linia 1: Linia 1:
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.
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.   
''FBBack'' to narzędzie ułatwiające proces migracji baz danych z Firebird 2.5 do wersji Firebird 3.   
  [https://groszek.pl groszek.pl] > zakładka Pobieranie > katalog ''zz_dodatki'' > info-sys_fb25to30.zip
  [https://groszek.pl groszek.pl] > zakładka Pobieranie > katalog ''zz_dodatki'' > info-sys_fb25to30.zip
  [https://groszek.pl/pob/info-sys_fb25to30.zip groszek.pl > info-sys_fb25to30.zip]
  [https://groszek.pl/pob/info-sys_fb25to30.zip groszek.pl > info-sys_fb25to30.zip]


==Proces migracji==
  Do przeprowadzenia migracji wymagany jest serwer Firebird w wersji 2.5.9
  Do przeprowadzenia migracji wymagany jest serwer Firebird w wersji 2.5.9


Linia 41: Linia 41:
update is_konta_w set uwagi_ksg = uwagi_bufor;
update is_konta_w set uwagi_ksg = uwagi_bufor;
alter table is_konta_w drop uwagi_bufor;</syntaxhighlight>
alter table is_konta_w drop uwagi_bufor;</syntaxhighlight>
===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.


[[Kategoria:Baza danych]]
[[Kategoria:Baza danych]]

Wersja z 08:10, 22 maj 2023

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
  1. Uruchamiamy aplikacje 'FBBack.exe'
  2. Backup (kopia zapasowa) - na komputerze z Firebird 2.5:
    1. Zaznaczamy 'Backup' oraz 'Skrypty naprawcze'
    2. Przyciskiem 'Wybierz pliki' wskazujemy pliki baz danych (bazy zalecamy przenieść do katalogu z aplikacją 'fbback'; można zaznaczyć wiele baz)
    3. W polach 'Login' oraz 'Hasło' wprowadzamy dane logowania użytkownika baz danych
    4. Przyciskiem 'Start' rozpoczynamy procedurę tworzenia kopii zapasowej - kopia zostanie utworzona w tej samej lokalizacji
  3. Restore (odtworzenie z kopii zapasowej) - po odinstalowaniu Firebird 2.5 i zainstalowaniu Firebird 3 (zalecamy instalacje wersji 3.0.10)
    1. W aplikacji 'FBBack.exe' zaznaczamy 'Restore'
    2. Przyciskiem 'Wybierz pliki' wskazujemy pliki z kopią baz danych
    3. W polach 'Login' oraz 'Hasło' wprowadzamy dane logowania użytkownika baz danych
    4. Przyciskiem 'Start' rozpoczynamy procedurę odtworzenia - docelowe pliki bazy danych zostaną utworzone w tej samej lokalizacji


FBBack - okno aplikacji

Skrypty (opcja alternatywna dla zaawansowanych)

Na serwerze z Firebird 2.5

Pierwszym krokiem jest wykonanie skryptu naprawczego:

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;

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):

gbak -user usr -pas psw -b -v -g -se service_mgr database backupfile

Na serwerze z Firebird 3.0

Instalujemy i uruchamiamy Firebirda 3 (zalecamy wersję 3.0.10; wcześniej odinstalowujemy bieżącą wersję). Wykonujemy polecenie odtworzenia bazy danych z kopii zapasowej:

gbak -user usr -pas psw -c -v -se service_mgr backupfile database1

Po odtworzeniu bazy z kopii należy wykonać poniższy skrypt:

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;

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:

  1. Używamy przełącznika -g podczas tworzenia kopii, który wyłącza 'odśmiecanie' (garbage collector).
  2. Używamy przełącznika -se service_mgr zarówno przy tworzeniu kopii, jak i odtwarzaniu. Powoduje on wykonywanie polecenia w ramach procesu serwera.
  3. Używamy dysków SSD.
  4. Zablokowanie innych czynników, które mogłyby używać dyskowych operacji I/O.
  5. 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.