Ostatnio dowiedziałem się, że pewien klient przeczytał na tym blogu (prawdopodobnie
tutaj), że w jednym systemie operacyjnym można uruchomić jednocześnie kilka różnych serwerów Firebird. Zażądał więc takiej konfiguracji od firmy, która mu zapewniała infrastrukturę sieciową i odpowiednie serwery.
Warto zwrócić uwagę, że nie wszystko, co jest możliwe, ma zawsze sens. Instalowanie różnych serwerów na tym samym komputerze niekiedy ma sens w przypadku programistów — jeżeli potrzebują testować zgodność swoich programów z różnymi wersjami serwera lub z różnymi serwerami baz danych. Zdarza się, że w trakcie testów programiści niekiedy muszą często restartować serwer bazy danych lub używać w nich nowe, testowane właśnie wersje bibliotek lub programów pomocniczych. Dlatego programiści często mają testowe serwery baz danych zainstalowane na swoich własnych komputerach. Dzięki temu mogą z nimi robić cokolwiek, nie przeszkadzając w pracy pozostałym pracownikom.
W przypadku serwerów produkcyjnych praktycznie niemal nigdy się tak nie robi. Dlaczego? Z wielu powodów, a najważniejsze to stabilność oraz bezpieczeństwo.
Jak wiadomo, bezbłędnych programów nie ma i prawdopodobnie nigdy ich nie będzie. To, że jakiś program działa bezbłędnie przez wiele dni, miesięcy czy nawet lat, nie daje żadnej gwarancji, że w jakichś specyficznych okolicznościach taki program nie zawiedzie. Efekty awarii mogą być różne. Może się na przykład zdarzyć, że uszkodzeniu ulegnie baza danych. Dlatego należy regularnie robić jej kopię (backup). Może się również zdarzyć, że jakaś specyficzna awaria wymusi zablokowanie się lub restart całego systemu operacyjnego. Może się wreszcie zdarzyć, że na skutek jakiegoś błędu w którymś programie, bibliotece lub konfiguracji, użytkownik otrzyma dostęp do danych, do których nie powinien mieć dostępu. Dlatego właśnie w przypadku baz produkcyjnych niemal nigdy nie instaluje się wielu serwerów baz danych na tym samym komputerze.
W przypadku serwerów produkcyjnych powszechną praktyką jest stosowanie bardzo silnych komputerów. Takie komputery często mają moc większą, niż wymagają tego poszczególne serwery baz danych — zwłaszcza, gdy przez większość czasu nie są one zbyt mocno obciążone. Aby optymalnie wykorzystać takie mocne komputery, wykorzystuje się mechanizmy
wirtualizacji, pozwalające na jednym fizycznym komputerze uruchomić kilka wirtualnych komputerów. Dzięki temu każda baza danych działa w swoim własnym systemie operacyjnym, niezależnym od pozostałych systemów. Każdy taki wirtualny komputer można w razie potrzeby zatrzymać, zrestartować lub zaktualizować. W razie potrzeby w każdym takim komputerze może być inny system operacyjny lub inny serwer baz danych. Nie ma to praktycznie żadnego wpływu na działanie pozostałych wirtualnych komputerów. Dla użytkowników takich wirtualnych systemów praktycznie nie ma żadnego znaczenia, czy serwer baz danych działa na fizycznym, czy na wirtualnym komputerze.