Instalacja serwera Firebird Plik instalacyjny serwera Firebird można pobrać z strony http://www.firebirdsql.org. Przed instalacją należy zamknąć wszystkie działające programy. Uruchamiamy plik Firebird-1.5.4.4910-0-Win32.exe, pojawi się okno o wybór języka, klikamy przycisk OK uruchomiony zostanie instalator serwera klikamy przycisk dalej akceptujemy warunki umowy licencyjnej i klikamy przycisk dalej
w kolejnym oknie pojawi się okno z treścią licencji, w którym ponownie wybrać należy dalej
W następnym oknie należy wskazać folder w którym serwer FireBird będzie zainstalowany i wybrać przycisk dalej. Zaleca się niezmienianie domyślnych ustawień. w kolejnym oknie użytkownik ma możliwość wyboru typu instalacji. Należy pozostawić wartości domyślne i wybrać przycisk dalej.
następnie podać należy nazwę która będzie widoczna w Menu Start i wcisnąć przycisk dalej.
następnie należy zaznaczyć: - Kontrolować pracę serwera za pomocą Guardiana w tle będzie działał dodatkowy program kontrolujący pracę serwera - Uruchamiaj FireBird automatycznie przy starcie systemu uruchamiany będzie automatycznie przy starcie systemu - Skopiować bibliotekę fbclient.dll do <system> kopiuje bibliotekę fbclient.dll - Utworzyć bibliotekę GDS32.dll kopiuje bibliotekę gds32.dll Dodatkowo w systemie XP/2000 należy zaznaczyć: - Uruchom serwer FireBird jako usługę serwer powinien działać jako usługa Pojawi się okno pozwalające na rozpoczęcie procesu instalacji za pomocą przycisku instaluj.
okno z informacjami należy kliknąć przycisk dalej
W oknie tym należy wybrać przycisk zakończ. Serwer Firebird został zainstalowany i automatycznie uruchomiony
Przełączenie bazy w tryb synchroniczny Przełączenie bazy w tryb synchroniczny (większa odporność bazy na uszkodzenia podczas nieprawidłowego wyłączenia serwera) gfix baza.gdb write sync -user SYSDBA -password masterkey Wyłączenie automatycznego porządkowania bazy danych gfix baza.gdb h 0 -user SYSDBA -password masterkey Naprawa uszkodzonej bazy danych 1. Powody uszkodzeń baz danych problemy sprzętowe (uszkodzenie dysku, pamięci operacyjnej) wirusy komputerowe niepoprawne wyłączenie komputera (reset, zanik napięcia) 2. Ratowanie uszkodzonej bazy danych Ratowanie bazy danych jest wykonywane przy pomocy standardowych programów GBAK oraz GFIX. Są one dostępne praktycznie w każdej instalacji serwera Firebird SQL. W systemie Windows w katalogu C:\Program Files\Firebird\Firebird_1_5\bin. W systemie Linux /opt/firebird/bin. W programach GBAK i GFIX występują między innymi parametry user SYSDBA password masterkey. W tym miejscu zamiast masterkey należy oczywiście użyć odpowiedniego hasła użytkownika SYSDBA.
zablokowanie dostępu do bazy Po stwierdzeniu lub podejrzeniu uszkodzenia bazy danych należy jak najszybciej zablokować możliwość pracy na uszkodzonej bazie danych ponieważ niektóre działania naprawcze wymagają wyłącznego dostępu do bazy danych, oraz dalsza praca na uszkodzonej bazie danych może spowodować jeszcze większe uszkodzenie bazy (a programy użytkowników mogą nie działać prawidłowo) wykonanie kopii bezpieczeństwa Działania naprawcze zmieniają informacje w pliku bazy danych. Może się zdarzyć, że podjęte działania nie przyniosą oczekiwanego efektu. W skrajnym przypadku plik bazy danych może ulec dalszemu uszkodzeniu. Dlatego zawsze należy wykonać kopię uszkodzonej bazy danych dzięki temu w razie potrzeby będzie można podjąć inne działania naprawcze. copy uszkodzona.gdb naprawiana.gdb weryfikacja uszkodzonej bazy Zanim przystąpimy do naprawy należy zweryfikować uszkodzenia pliku bazy danych. W tym celu wykonujemy polecenie gfix naprawiana.gdb -validate -full -user SYSDBA -password masterkey To polecenie nie tylko wykrywa uszkodzenia bazy danych, ale część z nich automatycznie naprawia. Jeżeli będą sygnalizowane błędy bazy danych to polecenie należy powtórzyć w celu upewnienia się czy wszystkie błędy zostały naprawione. Jeżeli do powyższego polecenia zostanie dodana opcja no_update to polecenie sprawdzi i pokaże wszystkie wykryte błędy w strukturze bazy danych, ale nie będzie próbować niczego zmieniać. Jeżeli natomiast do powyższego polecenia zostanie dodana opcja ignore to polecenie zignoruje wszelkie błędy sum kontrolnych rekordów lub stron bazy danych.
pominięcie uszkodzonych części bazy Kolejnym krokiem może być pominięcie uszkodzonych części bazy danych. W tym celu należy wykonać polecenie gfix naprawiana.gdb -mend -full -ignore -user SYSDBA -password masterkey To polecenie oznacza wszystkie uszkodzone części bazy danych jako niedostępne. Dzięki temu będą pominięte przy najbliższym wykonywaniu kopii bezpieczeństwa bazy danych. ponowna weryfikacja bazy danych Po zaznaczeniu uszkodzonych fragmentów bazy danych jako niedostępne ponownie zweryfikuj bazę danych aby się upewnić czy wszystkie uszkodzenia zostały naprawione. gfix naprawiana.gdb -validate -full -user SYSDBA -password masterkey przebudowanie bazy danych Następnym krokiem jest przebudowa bazy danych. W tym celu należy wykonać kopię bezpieczeństwa bazy danych. gbak naprawiana.gdb kopia.gbk -backup_database -verify -ignore - garbage_collect -user SYSDBA -password masterkey Teraz na podstawie kopii bezpieczeństwa tworzymy bazę danych od nowa. gbak kopia.gbk nowa.gdb -create_database -verify -user SYSDBA - password masterkey Jeżeli podczas odtwarzania stwierdzimy, że uszkodzone są indeksy to możemy do powyższego polecenia dodać opcję inactive. Dzięki niej indeksy nie będą aktywowane w odtworzonej bazie danych. Po utworzeniu bazy będzie można takie indeksy aktywować indywidualnie lub zmienić ich definicję. Użycie opcji one_at_a_time pozwoli na odtworzenie każdej tabeli z danymi oddzielnie i pominięcie uszkodzonych tabel. ponowna weryfikacja bazy danych
Upewniamy się czy odtworzona baza danych jest poprawna. gfix nowa.fdb -valildate -full -user SYSDBA -password masterkey Ostatnim krokiem jest przejrzenie danych w bazie w celu upewnienia się czy i jakie dane zostały utracone. 3. Działania, które prawdopodobnie uszkodzą bazę danych Jest też szereg działań, których wykonanie może spowodować uszkodzenie bazy danych. kopiowanie pliku bazy danych Jeżeli kopiujemy plik bazy danych podczas pracy użytkowników tej bazy to może się zdarzyć, że uszkodzone zostaną zarówno oryginalny plik bazy danych oraz wykonywana kopia! NIGDY nie kopiujemy pliku bazy danych jeżeli nie mamy pewności, że żaden użytkownik nie korzysta z tej bazy danych! Kopię bezpieczeństwa należy wykonywać przy pomocy programu GBAK Podczas wykonywania kopii wykonywane jest również porządkowanie bazy danych (garbage collection). Jeżeli kopia bezpieczeństwa jest wykonywana regularnie to również regularnie baza jest porządkowana. Powoduje to stabilniejszą oraz szybszą pracę serwera i aplikacji korzystających z tej bazy danych. Plik powstały w wyniku działania programu GBAK można oczywiście swobodnie kopiować. używanie odtwarzanej bazy danych Jeżeli podczas odtwarzania bazy danych pozwolimy użytkownikom na korzystanie z odtwarzanej właśnie bazy to niemal na pewno odtworzona baza będzie uszkodzona! Aby uniknąć takiego niebezpieczeństwa najlepiej odtwarzać bazę do pliku o innej nazwie i dopiero po utworzeniu pliku skopiować go w docelowe miejsce lub zmienić nazwę na docelową. Jeżeli baza jest odtwarzana przy pomocy standardowego programu GBAK to zamiast opcji replace_database lepiej
powody sprzętowe Powodem uszkodzenia bazy mogą być oczywiście wszelkiego rodzaju awarie sprzętu, a w szczególności: niespodziewany zanik zasilania gdy komputer nie ma zasilacza awaryjnego lub inny powód niepoprawnego zakończenia pracy komputera, błędne działanie dysku twardego, sterowników lub innych podzespołów komputera, brak wystarczającej ilości wolnego miejsca na dysku gdy baza danych musi zostać powiększona, brak wystarczającej ilości wolnego miejsca na dysku dla plików roboczych tworzonych podczas wykonywania niektórych działań.
PODZIAŁ BAZY DANYCH NA KILKA PLIKÓW Serwer FireBird umożliwia podział bazy danych na kilka plików. Podział na niezależne pliki ma na celu: uniezależnienie rozmiaru bazy danych od ograniczeń systemów operacyjnych co do wielkości plików (np. 2GB); optymalizację wydajności, np. rozmieszczenie plików na różnych, niezależnie działających dyskach Podział bazy danych na pliki można wykonać w dwóch trybach: OnLine podział działającej bazy danych, bez zatrzymywania systemu OffLine podział bazy danych na podstawie wykonanej wcześniej kopii bazy danych Tryb Zalety Wady Podział bez wstrzymywania pracy Brak możliwości zmiany systemu (zmniejszenia) rozmiaru pliku. OnLine Podział nastąpi od aktualnego OffLine Możliwość zmniejszenia aktualnego rozmiaru pliku (podział na mniejsze); Możliwość zmiany lokalizacji plików bazy danych; rozmiaru Konieczność wstrzymania pracy systemu Kiedy zdecydować się na podział bazy danych na kilka plików? Rozmiar pliku bazy danych zbliża się do ~1.2 GB (rozmiar optymalny ze względu na wydajność); Przewidujemy, iż baza danych rozrośnie się do rozmiaru powyżej ~1.2 GB; Dysponujemy co najmniej dwoma niezależnymi, szybkimi dyskami i chcemy uzyskać wzrost wydajności (UWAGA! Dotyczy to tylko dysków NIE PRACUJĄCYCH w systemie RAID)
OD CZEGO ZACZĄĆ? 1. Zrelaksować się, aby nie wykonywać czynności w pośpiechu i stresie, 2. Przemyśleć położenie plików (łatwość w identyfikacji pliku do jakiej bazy należy), 3. Przemyśleć nazewnictwo plików, 4. Określić docelowe rozmiary plików. JAK OKREŚLIĆ ROZMIAR PLIKÓW? Wykonując podział bazy danych, rozmiary poszczególnych plików, podaje się w ilościach stron. Aby określić rozmiar pliku w stronach, należy odczytać rozmiar strony bazy danych, np. z programu IBConsole. rozmiar strony bazy danych podawany w bajtach właściwości bazy danych, opcja Database-> Properties Rozmiar strony bazy danych podawany jest w bajtach. Liczba (z przykładu) 4096 oznacza, iż strona posiada 4kB (4096 bajtów).
Przykład: Zakładany rozmiar pliku to 1.2GB, rozmiar strony bazy danych to 4096 bajtów. 1. Gigabajty (GB) przeliczamy na megabajty (MB): 1.2 GB * 1024 = 1228,8 MB 2. Megabajty (MB) przeliczamy na kilobajty (kb): 1228,8 MB * 1024= 1258291,2 kb 3. Kilobajty (kb) przeliczamy na bajty (B): 1258291,2 kb * 1024 = 1288490188,8 B 4. Rozmiar w bajtach dzielimy przez rozmiar strony: 1288490188,8 B / 4096 314572 bajtów. Rozmiar pliku 1.2GB to 314572 stron dla bazy danych o rozmiarze strony 4096 PODZIAŁ BAZY W TRYBIE ONLINE Podział bazy danych w trybie OnLine, należy wykonać z poziomu poleceń SQL, np. w programie IBConsole lub IBExpert. Podział następuje po wykonaniu polecenia: alter table add file nazwa_pliku length rozmiar_pliku_w_stronach np.: alter database add file 'd:/bazy/demo01.gdb' length 314572 add file 'd:/bazy/demo02.gdb' length 314572 add file 'd:/bazy/demo03.gdb' polecenie podziału bazy w programie IBConsole
Powyższe polecenie, spowoduje dodanie do istniejącego pliku bazy danych, trzech kolejnych, z których demo01.gdb oraz demo02.gdb mają określone rozmiary 314572 stron. UWAGA!!! Nazwy plików MUSZĄ być podane z pełnymi ścieżkami BEZ adresu serwera Ostatni plik NIE MOŻE mieć podanego rozmiaru Po wykonaniu polecenia, baza danych zostanie podzielona na nowe pliki oraz zostanie rozpoczęty zapis do pierwszej z nowo utworzonych części (pliku). PODZIAŁ BAZY W TRYBIE OFFLINE Podział bazy danych w trybie OffLine, odbywa się na podstawie wcześniej wykonanej kopii bazy danych. W tym trybie konieczne jest ZATRZYMANIE pracy systemu. Podobnie jak w trybie OnLine, wynikowe rozmiary plików (części) podawane są w stronach (patrz Jak określić rozmiar plików? ). Podział bazy wykonuje się z linii komend systemu operacyjnego, narzędziem gbak. gbak r user SYSDBA pass hasło_serwera pierwszy_plik rozmiar drugi_plik rozmiar trzeci_plik np.: gbak -r -user SYSDBA -pas masterkey kopia.gbk 127.0.0.1:d:/bazy/demo.gdb 314572 d:/bazy/demo01.gdb 314572 d:/bazy/demo02.gdb Wykonanie polecenia spowoduje odtworzenie bazy danych z pliku kopii (kopia.gbk) z jednoczesnym podziałem bazy danych na pliki: demo.gdb, demo01.gdb, demo02.gdb. Rozmiary plików demo oraz demo01 zostały ustalone na 314572 stron (dla bazy o rozmiarze strony 4096 bajtów, oznacza plik 1.2GB). UWAGA!!! TYLKO pierwszy plik posiada adres serwera Nazwy plików (poza pierwszym) MUSZĄ być podane z pełnymi ścieżkami BEZ adresu serwera Ostatni plik NIE MOŻE mieć podanego rozmiaru
UWAGI 1. Dostęp do podzielonej bazy danych odbywa się tak samo jak dla bazy posiadającej jeden plik, tj. przez podanie lokalizacji oraz nazwy pliku głównego (pierwszego); 2. Wykonując kopię podzielonej bazy danych, należy podać tylko nazwę pliku głównego; 3. Odtwarzając z kopii już wcześniej podzieloną bazę danych, należy za każdym razem podawać nazwy oraz rozmiary części (plików).