Pomoc zdalna
  • tag
  • informix
https://unsplash.com
Tag

#informix

Informix to serwer bazy danych IBM o małym śladzie, opisywany jako gotowy do osadzenia wewnątrz cudzej aplikacji. Opis magazynu, klastrów i rozszerzeń.

10 wpisów z tym tagiem

Informix jest serwerem bazy danych sprzedawanym przez IBM, opisywanym przez producenta jako szybki i skalowalny, obsługującym bazy relacyjne, obiektowo relacyjne i wielowymiarowe. Producent podkreśla dwie cechy: mały ślad instalacyjny oraz zdolność do samodzielnego prowadzenia większości czynności administracyjnych, co razem daje serwer nadający się do osadzenia wewnątrz innego produktu. Chodzi na systemach z rodziny UNIX, na Linuksie, na macOS i na Windowsie.

Licznik w skrzynce na klatce schodowej

Najbliższym obrazem jest licznik energii. Nikt go nie odwiedza, nikt nie pamięta o jego istnieniu, a on zapisuje kolejne odczyty przez dwadzieścia lat, bo do tego został postawiony. Nie ma własnej obudowy w salonie ani ekranu, jest częścią cudzej instalacji i widać go dopiero wtedy, gdy ktoś zaczyna szukać, skąd biorą się liczby na rachunku.

Ten obraz wraca w tym tekście kilka razy, bo tłumaczy więcej niż jedną właściwość: pracę bez opieki, osadzenie w środku czyjegoś urządzenia, ciągły zapis pomiarów w czasie oraz sens drugiego licznika kontrolnego obok pierwszego.

Co dostaje się razem z serwerem

Każda edycja zawiera obok samego serwera zestaw kliencki oraz zestaw narzędzi do budowania rozszerzeń. Zestaw kliencki niesie interfejsy programistyczne: ODBC, JDBC, .NET, ESQL/C, interfejs obiektowy dla C++ oraz OLE DB. Języki, w których pisze się aplikacje, to między innymi SQL, SPL, C, C++, Java i PHP.

Wersją opisaną w dokumentacji IBM jest 14.10, a razem z nią zestaw kliencki 4.50, sterownik JDBC 4.50 oraz komponent obsługi języków narodowych w wersji 7.00. Warto zwrócić uwagę na notę praw na stronach tej dokumentacji: podpisuje je HCL Technologies, bo rozwój produktu prowadzi ta firma, nie IBM.

Dbspace i chunk, czyli gdzie fizycznie leżą dane

Konfiguracja serwera siedzi w pliku onconfig oraz w zmiennych środowiskowych, a administruje się nim z wiersza poleceń i poleceniami SQL. Miejsce na dane dzieli się na przestrzenie, a przestrzeń składa się z kawałków dysku zwanych chunkami. Chunk bywa oznaczony jako rozszerzalny, więc rośnie sam, kiedy zabraknie miejsca, a rezerwa na taki wzrost leży w puli magazynowej.

Osobno stoją przestrzenie na dane wielkoobjętościowe oraz lustrzana odmiana chunka, czyli drugi kawałek dysku zapisywany równolegle z pierwszym. Do tego dochodzi wbudowany harmonogram, który uruchamia typowe czynności obsługowe sam, oraz alarmy zgłaszające problem. To jest właśnie ta cecha licznika: instalacja pilnuje się sama i dlatego bywa zapomniana.

Klaster: trzy rodzaje serwerów zapasowych

Rodzaj serwera

Sposób pracy

Cecha odróżniająca

HDR secondary

dzienniki przesyłane z serwera głównego, dostępny tryb synchroniczny

obsługuje uzgodnione punkty kontrolne i automatyczne przełączenie, pierwszy w kolejce do przejęcia roli

RS secondary

wyłącznie łączność asynchroniczna

brak uzgodnionych zatwierdzeń i punktów kontrolnych, minimalny wpływ na serwer główny

SD secondary

korzysta z tego samego zbioru dysków co serwer główny

nie utrzymuje własnej kopii danych

Kolejność w klastrze jest pilnowana i to bywa zaskoczeniem. Dziennik serwera HDR musi wyprzedzać dzienniki serwerów zdalnych. Kiedy HDR znika z sieci, serwer główny wysyła dzienniki dalej do pozostałych, ale po jego powrocie przestaje to robić i nadrabia zaległość HDR, bo to on ma przejąć rolę przy awarii. Nad połączeniami klientów stoi osobny składnik, który kieruje żądania do właściwego serwera, pilnuje przełączenia i pracuje jak pośrednik.

Replikacja wybiórcza, czyli druga droga

Klaster kopiuje całość i służy dostępności. Replikacja przedsiębiorstwa robi coś innego: przenosi wybrane dane między serwerami rozrzuconymi geograficznie, na różnym sprzęcie i w różnych wersjach serwera. Definiuje się w niej, co jedzie, jak rozstrzygać sprzeczne zmiany i jak serwery są ze sobą połączone, a przy zerwanym łączu dane czekają, zamiast przepadać.

Dokumentacja stawia sprawę jasno: do samej dostępności replikacja przedsiębiorstwa nie jest potrzebna i wystarczy klaster.

Szeregi czasowe, dane przestrzenne i składnia dokumentowa

Wracając do licznika: obsługa pomiarów zapisywanych w czasie jest tu osobnym rozszerzeniem, a producent wprost wskazuje na liczniki zdalnego odczytu jako przykład zastosowania. Obok niego stoją rozszerzenie przestrzenne, wyszukiwanie obiektów zmieniających położenie, wyszukiwanie w tekście, obsługa danych binarnych, typ węzłowy oraz publikowanie w formacie XML.

Osobną warstwą jest zgodność z formatem dokumentowym. Aplikacje napisane pod język zapytań stworzony przez MongoDB potrafią pracować na danych w tej bazie, w jednym zapytaniu da się połączyć dane relacyjne z dokumentowymi, a dostęp bez sterownika daje interfejs REST. Dokumenty i wiersze dają się przy tym rozdzielić między serwery klastra.

Na co uważać w odziedziczonej instalacji

Narzędzie wspomagające przygotowanie wdrożenia przestało być wspierane od poprawki 14.10.xC7 i nie jest już dołączane do produktu, więc skrypty instalacyjne sprzed lat mogą się o nie opierać.

Druga rzecz to ustawienia wymagane przez klaster. Dla serwerów zapasowych wszystkich trzech rodzajów zapisywanie dziennika dla tabel tymczasowych musi być wyłączone parametrem konfiguracyjnym, a pominięcie tego wychodzi dopiero przy pierwszej próbie przełączenia.

Kiedy Informix nie jest wyborem do obrony

Nowy projekt zaczynany od zera trafia tu na wąski rynek osób znających ten serwer i na mniej gotowych bibliotek niż przy bazach popularniejszych. Analityka na dużych zbiorach również ma własne narzędzia, projektowane pod odczyt kolumnami. Informix broni się tam, gdzie już stoi: pod działającą aplikacją branżową albo w środku urządzenia, którego producent wybrał go za mały ślad i pracę bez administratora.

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?