Firebird zarządzanie
Główne funkcje
- Pełna obsługa procedur przechowywanych i wyzwalaczy,
- Pełna zgoda z standardem ACID,
- Więzy integralności,
- Multi Generational Architecture,
- Bardzo mały rozmiar,
- W pełni funkcjonalny wewnętrzny język procedur przechowywanych i wyzwalaczy (PSQL)
- Wsparcie dla zewnętrznych funkcji (UDF),
- Niewiele lub brak potrzeby specjalistycznych DBA,
- Prawie nie wymaga konfiguracji - wystarczy zainstalować i zacząć używać!
- Duża społeczność i wiele miejsc, gdzie można uzyskać bezpłatną wsparcie,
- Opcjonalna wersja jedno plikowa - świetna do tworzenia katalogów CD, pojedynczego użytkownika lub wersje aplikacji do oceny,
- Dziesiątki narzędzi firm trzecich, w tym graficznych narzędzi administracyjnych, narzędzi replikacji itp,
- Ostrożne zapisy - szybki odzyskiwanie, nie wymagane logi transakcji,
- Wiele możliwości dostęp do bazy danych: native/API, sterowniki dbExpress, ODBC, OLEDB, .Net, JDBC, Python moduł, PHP, Perl, etc,
- Natywny wsparcie dla wszystkich głównych systemów operacyjnych, włączając Windows, Linuks, Solaris, OS X, HP-UX i FreeBSD,
- Przyrostowe kopie zapasowe,
- 64-bitowa architektura,
- Pełna implementacja kursorów w PSQL,
- Monitorowanie tabel,
- Połączeń i transakcji wyzwalacze,
- Tabele tymczasowe,
- TraceAPI - monitorowanie stanu serwera.
Serwer bazy danych Firebird
- Procesor. Jeśli serwer posiada kilka fizycznych procesorów lub procesor wielordzeniowy, instalujemy Firebirda w wersji Classic Server (lub SuperClassic dla >= Firebirda 2.5). Monitorujemy obciążenia procesora, może okazać się, że będzie konieczna wymiana CPU na wydajniejszy,
- Dysk twardy,
- Plik z bazą danych najlepiej jeśli jest umieszczony na dedykowanym dysku. Dla dużych danych macierz RAID lub dyski SSD. Można plik bazy umieścić bezpośrednio w pamięci RAM (w Linuksie montowanie przez fstab, w Windowsie dodatkowe programy) i włączyć shadowing/rsync,
- Zabezpieczamy dostęp do pliku bazy danych nie udostępniając dysku i/lub pliku.
- Sieć:
- Zapora sieciowa. Firebird korzysta z portu TCP/IP 3051. Jeśli są duże opóźnienia w dostepie do bazy, można wyłączyć chwilowo zaporę,
- Wydajność sieci sprawdzamy poprzez polecenie ping do serwera Firebirda z parametrem -l 8192. Opóźnienie nie powinno być większe niż 2 ms. Przykład:
ping -l 8192 192.168.1.2
- Oprogramowanie:
- Program antywirusowy jeśli serwer Windows. Dodaje serwera firebirda do zaufanych aplikacji. Skanowanie pliku bazy danych może również wpłynąć na wydajność (wykluczamy lokalizację),
- Aktualny system operacyjny wraz z aktualnym sterownikami,
- Okresowo przeglądamy logi serwera dostępne w pliku Firebird.log
- Aliasy bazy Firebird.
Narzędzia administracyjne
Konsola
- isql - Interactive SQL,
- gbak and gsplit,
- gbak - Firebird kopia zapasowa i przywracanie,
- nbackup - przyrostowe kopie zapasowe,
- nbak - moduł wsparcia silnika bazy danych,
- gsec - zarządzanie użytkownikami,
- gfix - różne parametry, naprawa,
- gstat - statystyki,
- fbtracemgr - interaktywny wiersz poleceń do wykonywania komend i skryptów DDL i DDM.
Graficzny interfejs użytkownika
- FlameRobin (Open Source, dla Windowsa, Linuksa, OS X i FreeBSD),
- IBExpert (wersja do użytku niekomercyjnego za darmo),
- DB Workbench,
- EMS SQL Management Studio,
- Firebird Development Studio.
Firebird usługi
- ibmgr - Windowsowy program do zarządzania serwerem bazy danych,
- fbguard - usługa the Firebird Guardian,
- fbserver - aktualna usługa the Firebird Superserver database,
- fb_inet_server.exe - usługa the Firebird Classic database,
- fbmgr - dotyczy tylko Linkuksa: uruchamia i wyłącza demona Firebirda,
- fbsvcmgr - wprowadzone w Firebird 2.1; dostarcza wiersz poleceń dla Services API,
- instsvc - konfiguracja usługi,
- instreg - ustawienia paremtrów rejestru.
Operacja Firebirda
gbak
gfix
gfix -sweep
sweep
gstat
Instalacja na Linuksie
W trakcie instalacji serwera bazy Firebird na platformie Linuks automatycznie generowane jest losowe hasło dostępu do serwera dla użytkownika „sysdba”. Hasło znajduje się w pliku:
/opt/firebird/SYSDBA.password
Aby było możliwe połączenie się z bazą U.I.INFO-SYSTEM zmieniamy hasło na standardowe „masterkey”. W tym celu uruchamiamy poniższy skrypt
/opt/firebird/bin/changeDBAPassword.sh script
Po uruchomieniu zostaniemy zapytani o aktualne hasło użytkownika „sysdba” – odczytujemy je z pliku SYSDBA.password następnie zostaniemy poproszeni o podanie nowego hasła więc wpisujemy nasze hasło „masterkey”. Następnie restartujemy serwer Firebird.
Administrator powinien utworzyć na serwerze katalog, w którym aplikacje korzystające z serwera będą tworzyć i przechowywać pliki baz danych. Katalog musi znajdować się na dysku lokalnym serwera, a jego właścicielem powinien być użytkownikiem z prawami do odczytu, zapisu i wykonywania.
Migracja do Firebird 2.5
Dlaczego Firebird w wersji 2.5?
Wersja 2.5 Firebirda zawiera nową architekturę SuperClassic. Przebudowana architektura owocuje zwiększeniem wydajności, szczególnie na wieloprocesorowych serwerach (serwery jednoprocesorowe, ale wielordzeniowe, również zyskują na wydajności). Na 32-bitowym (x86) systemie operacyjnym instalujemy w wersji SuperSerwer, a na 64-bitowym (x64) instalujemy w wersji SuperClassic (przy instalacji wybieramy ClassicSerwer, a w następnym okienku opcję: use SuperClassic).
Serwer Firebird 2.5 pobieramy ze strony http://www.firebirdsql.org/en/firebird-2-5-2/
Istotne zmiany
- ALTER VIEW i CREATE OR ALTER VIEW
- Widoki mogą pobierać dane z procedury wbudowanej,
- Użycie zmiennej w update: Wcześniej: Update op_oper set nazwa = „Rafał”; Update op_oper set opis = nazwa; Teraz: Update op_oper set nazwa = „Rafał”, opis = nazwa.
- Autonomous trans action Umożliwia uruchomienia kodu w autonomicznej transakcji w module PSQL. Wyjątek w bloku w autonomicznej transakcji spowoduje jej cofnięcie. Jeśli blok dobiegnie do końca, transakcja zostanie zatwierdzona.
- Zapytania między dwoma bazami, niestety bez możliwości JOIN-owania: execute block returns (kod_oper smallint) as Begin FOR EXECUTE STATEMENT 'select kod_oper from op_oper' ON EXTERNAL DATA SOURCE 'localhost:budzet’ AS USER 'sysdba' PASSWORD 'masterkey' INTO :kod_oper DO SUSPEND; end
Dla zainteresowanych lista zmian: http://www.firebirdsql.org/refdocs/langrefupd25-new-in-25-ddl.html
Kroki migracji
- Koniecznie przed migracją na FB 2.5 należy wykonać indeksowanie bazy używając nowego pliku bat (poniżej kod).
- Nie wykonanie indeksowania spowoduje na bazie błąd: malformed string. Błąd związany jest z kontrolą zgodności kodowania znaków bazy danych, wymagana konwersja pozwala używać polskich znaków np. w procedurach wbudowanych.
- Przeprowadzenie indeksowania na FB 2.5 zmienia ODS bazy – nie ma możliwości powrotu serwera do niższej wersji.
- Back_db dla FB 2.5 (listing w sekcji poniżej), uruchomienie:
- Pobieramy archiwum i je rozpakowujemy,
- Do jednego katalogu przenosimy:
- Bazę danych,
- Skrypt back_db_fb2.5.bat,
- Pliki fbclient.dll, gbak.exe, gfix.exe. Znajdują się w %Program Files%\Firebird\Firebird_2_5\bin.
- Uruchamiamy konsolę (naciskamy WIN + R, wpisujemy cmd, naciskamy ENTER),
- Polecaniem cd <nazwa_katalogu>, gdzie nazwę katalogu wybieramy klawiszem TAB po wpisaniu cd przechodzimy do katalogu, w którym zgromadziliśmy pliki. Literę dysku zmieniamy poprzez d:, e:, f:, g: itd.,
- Wpisujemy back_db_fb2.5.bat <nazwa_bazy_danych> (np. back_db_fb2.5.bat IS_PLACE) i naciskamy ENTER.
- Konsola zwraca informację o wykonanych operacjach.
- Migracja dla innego hasła niż masterkey - kopiujemy plik security2.fdb z katalogu firebird_2_1 do katalogu firebird_2_5.
- Przed przeniesieniem baz danych na serwer 64-bitowy (x64) wykonujemy indeksowanie na serwerze 32-bitowym (x86) z zainstalowany FB 2.1 lub 2.5 – baza z ODS < 11 (czyli nieindeksowana na serwerze w ver. 2.1) nie będzie działać na serwerze FB 2.5 x64.
- Dla programów: Kasa i KSZOB należy w pliku konfiguracyjnym XML dopisać w sekcji link parametr: charset=”WIN1250”, np:
<link id="1" alias="C:\IS_pdk.GDB" user="s3uMfJd3" password="qLmsrLq/3dDk" kind="Interbase" protocol="Lokalny" owner="TEST" name="podatki" charset="WIN1250" >
Back_db FB 2.5 listing
Zawartość pliku back_db_fb2.5.bat copy %1.GDB $olddb$.ib
gfix -shut single -force 60 -user sysdba -password masterkey %1.GDB
gfix -v -f -i -user sysdba -password masterkey %1.GDB
gfix -commit all -user sysdba -password masterkey %1.GDB
gfix -mend -i -f -user sysdba -password masterkey %1.GDB
gbak -B -i -user sysdba -pas masterkey %1.GDB %1.GBK
gbak -REP -user sysdba -pas masterkey %1.GBK %1.GDB -FIX_FSS_DATA WIN1250 -FIX_FSS_METADATA WIN1250
gfix -shut full -force 0 -user sysdba -password masterkey %1.GDB
gfix -online -user sysdba -password masterkey %1.GDB
pause