Informix OnLine 5.01

Wysoka dostępność danych

W celu realizowania pewnego i niezawodnego dostępu do danych, system Informix OnLine korzysta z wielu mechanizmów odzyskiwania danych.

Zapis lustrzany. System może zapisywać kopię danych na zapasowych dyskach. W razie awarii sprzętu, zaczyna samoczynnie korzystać z kopii.

Odzyskiwanie danych. Aby wykonać kopię archiwalną danych, system Informix OnLine może korzystać z dowolnej taśmy w sieci, niekoniecznie dołączonej do serwera bazy. Kopie całej bazy można wykonywać w dowolnym momencie.

Ważnym elementem zapewnienia spójności danych w bazie jest zapisywanie historii transakcji (tzw. log transakcji). System zachowuje informacje o zrealizowanych transakcjach od czasu wykonania ostatniej archiwalnej kopii danych. Podczsa awarii użytkownik może odtworzyć bazę na podstawie ostatniej kopii archiwalnej i historii transakcji.

Podczas awarii zasilania system może samoczynnie odtworzyć stan bazy przed awarią, powtarzając zakończone transakcje i cofając nie dokończone.

Ta wysoka dostępność zapewnia spójność danych na poziomie całego systemu. W celu zapewnienia spójności danych na poziomie poszczególnych tabel bazy, system korzysta z innych mechanizmów.

Log transakcji - pozwala na przywrócenie stanu bazy przed każdą, z jakichkolwiek powodów nie wykonaną, transakcją.

Sprawdzanie wewnętrznej zgodności danych. Każda niezgodność danych, wywołana np. przez błędy sprzętowe lub systemowe jest sygnalizowana administratorowi systemu. Możliwe jest także wbudowanie w aplikację punktów kontrolnych sprawdzania spójności danych i generowania komunikatów oraz wypisywania stanu zmiennych kontrolnych w razie błędów.

Blokowanie tabel. Ten mechanizm uniemożliwia użytkownikowi zmianę danych, używanych aktualnie przez innego użytkownika. W bazie OnLine możliwe jest zablokowanie poszczególnych rekordów, stronic pamięci, tabel lub całej bazy. System generuje także komunikat, w przypadku gdy dwaj użytkownicy wzajemnie blokują sobie dostęp do wspólnych danych ( deadlock). Taka sytuacja powstaje wtedy, kiedy użytkownik A musi dostać się do wiersza 1000 w celu dokończenia transakcji w wierszu 2000; użytkownik B nie może dokończyć transakcji w wierszu 2000, ponieważ nie ma dostępu do wiersza 1000.

Izolacja procesów. Umożliwia ona izolację odczytów (nie przeznaczonych do uaktualniania, usuwania lub wstawiania nowego rekordu do bazy) od akcji innych serwerów bazy danych. Istnieją cztery poziomy tej izolacji.

  • Najniższy (dirty read) nie zapewnia żadnej izolacji. Program wykonujący taki odczyt nie zakłada żadnych blokad na rekord, ani nie respektuje istniejących blokad. Umożliwia odczytanie danych, ale nie mówi nic o ich aktualności.

  • Odczyt aktualnych rekordów (committed read) pozwala na odczyt tylko tych stabilnych, nie zablokowanych, rekordów w bazie (nie podlegających obecnie żadnym modyfikacjom).

  • Odczyt stabilnego kursora, polega na tym, że serwer bazy umieszcza blokadę na odczytywanym wierszu bazy, jednocześnie zwalniając blokadę poprzedniego odczytu. Rekord nie może być zmieniony tak długo, jak długo jest używany przez aplikację, która go odczytała.

  • Powtarzalny odczyt polega na takim zablokowaniu bazy, aby wielokrotne odczytanie wierszy z bazy w czasie tej samej transakcji dało te same wyniki. Zapobiega to nie tylko modyfikacji odczytywanych rekordów, ale także dodaniu innych rekordów, jeśli spowodowałyby one zmianę wyniku zapytania do bazy.

Integralność danych

Systemy zarządzania bazami danych muszą zapewnić integralność danych w bazie (np. nie dopuszczać do usunięcia pól lub rekordów z tabeli, jeżeli w innej tabeli istnieje do nich odniesienie). Ponadto, musi istnieć możliwość określenia w bazie pewnych zależności (business rules),: zakresów dopuszczalnych wartości w polu, domniemanych wartości pola i zależności między polami. W celu zapewnienia integralności danych Informix OnLine korzysta z ograniczeń integralności i zapamiętanych procedur.

Ograniczenia integralności. Informix OnLine wymusza integralność bazy przez niedopuszczanie do usunięcia wierszy w głównej tabeli, jeśli odwołuje się do nich jakikolwiek wiersz w tabeli pomocniczej (np. nie zostanie usunięte nazwisko dostawcy, jeśli w zamówieniach znajduje się zamówienie do niego). Jest to tak zwana integralność odniesienia. Integralność encji zaś polega na tym, że administrator systemu może zadać zarówno zakres dopuszczalnych w kolumnie (polu) jak wartość domniemaną.

Zapamiętane procedury mają służyć efektywnej i jednolitej realizacji często powtarzanych czynności. Jeżeli kilka aplikacji korzysta stale z tego samego programu SQL, to zamiast umieszczać go w tych aplikacjach, zapamiętuje się go w serwerze, nadaje mu nazwę i aplikacje wywołują tę procedurę przez jej nazwę.

Bezpieczeństwo danych i dostęp do bazy

System Informix OnLine zapewnia dwa poziomy ochrony dostępu do danych, wymagające od użytkownika podania hasła. Przywilej DataBase pozwala na tworzenie tabel i indeksowanie. Przywilej Table ogranicza możliwości wykonywania pewnych operacji na tabelach bazy, np. dopuszczając lub ograniczając operacje zmiany, wstawiania i usuwania rekordów do tabeli oraz wymusza zabezpieczenia wybierania i uaktualniania poszczególnych pól tabeli. Nie ma hasła chroniącego przed dostępem do pojedynczych baz, zastępuje je hasło logowania do systemu Informix OnLine.

Zapamiętane procedury także mogą być chronione własnym zestawem haseł dostępu. Możliwe jest ograniczenie użytkownikom dostępu do danych jedynie przez wykonywanie zapamiętanych procedur, co dość skutecznie chroni bazę przed zniszczeniem przez niepowołane osoby.

Wymagania systemowe

Każdy serwer baz danych Informix OnLine wymaga do działania 1,1 MB pamięci RAM oraz 1-64 MB pamięci dzielonej RAM w celu pamiętania danych, zmiennych systemowych, na bufory danych i in. Zajmuje 5 MB miejsca na dysku. Demon systemu wymaga dodatkowo 393 kB pamięci. Każdy proces inicjowany przez użytkownika zajmuje dodatkowo średnio 80 kB pamięci.


TOP 200