Upload
dinhxuyen
View
327
Download
1
Embed Size (px)
Citation preview
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
OnLine
Podział bez wstrzymywania pracy systemu
Brak możliwości zmiany (zmniejszenia) rozmiaru pliku. Podział nastąpi od aktualnego rozmiaru
OffLine
Możliwość zmniejszenia aktualnego rozmiaru pliku (podział na mniejsze);
Możliwość zmiany lokalizacji plików bazy danych;
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.
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).
rozmiar strony bazy danych podawany w bajtach
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
Rozmiar pliku 1.2GB to 314572 stron dla bazy danych o rozmiarze strony 4096
bajtów.
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.
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!!!
Nazwy plików MUSZĄ być podane z pełnymi ścieżkami BEZ adresu serwera
Ostatni plik NIE MOŻE mieć podanego rozmiaru
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).