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

MBaum (dyskusja | edycje)
MBaum (dyskusja | edycje)
 
(Nie pokazano 27 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:
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.11 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 51: Linia 63:
#Zablokowanie innych czynników, które mogłyby używać dyskowych operacji I/O.
#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.
#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):
<syntaxhighlight lang="bat">gsec -user sysdba -pass masterkey -mo sysdba -pw nowehaslo</syntaxhighlight>
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.
<big>Nowe hasło należy wprowadzić w plikach konfiguracyjnych XML aplikacji, które łączą się z bazami danych Firebird.</big>
===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.
[[Plik:Info-sys admin edycja-pliku-konfiguracyjnego.png|ramka|brak|Edycja pliku konfiguracyjnego]]
===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:
<syntaxhighlight lang="xml"><configuration title="Dane konfiguracyjne aplikacji" owner="Wersja demonstracyjna" version="1.0"></syntaxhighlight>
Następnie, w linku do bazy danych, należy podać login i hasło do Firebird w formie niezaszyfrowanej. Przykład:
<syntaxhighlight lang="xml"><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"></syntaxhighlight>
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.
[[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?==