Z MySQL na Oracle – migracja SWD PRM

By 7 stycznia, 20217 kwietnia, 2021Field Service Management, Rozwiązania Mobilne, Usługi
migracja na oracle

W ubiegłym roku przeprowadziliśmy migrację Systemu Wspomagania Dowodzenia Państwowego Ratownictwa Medycznego (SWD PRM) na Oracle. SWD PRM jest głównym narzędziem pracy dyspozytorów medycznych we wszystkich 37 dyspozytorniach medycznych w Polsce. Dowiedz się, jak wyglądał proces migracji i architektura rozwiązania.

Państwowe Ratownictwo Medyczne dzięki SWD PRM obsługuje wszystkie zgłoszenia alarmowe z numeru 999 oraz zgłoszenia wymagające udziału ratowników medycznych z numeru 112. Aplikacja SWD PRM na tablecie wspomaga pracę ratowników we wszystkich karetkach, których obecnie jest w Polsce około 1600.

SWD PRM Logo

MySQL czy Oracle?

System działa produkcyjnie od 2016 roku i dotychczas pracował na bazie danych MySQL. W roku 2020 zdecydowano o migracji systemu na bazę danych Oracle – dlaczego?

  • Oracle jest uważany za platformę bazodanową przeznaczoną dla dużych systemów.
  • Właściciel systemu – Krajowe Centrum Monitorowania Ratownictwa Medycznego – wraz z migracją systemu na Oracle przejął odpowiedzialność za administrowanie bazą danych. Oracle ma więcej narzędzi administracyjnych niż MySQL.
  • Rozwiązanie oparte na technologii MySQL było podatne na awarie modułu replikacji danych.

Zadanie migracji systemu zostało powierzone specjalistom Globemy, którzy budowali system od początku, zatem znają go najlepiej. Migracja działającego produkcyjnie systemu tej klasy jest zadaniem trudnym technicznie, przede wszystkim ze względu na:

  • Konieczność utrzymania najwyższej niezawodności i ciągłości działania systemu. W każdym najmniejszym szczególe dopracowanym na bazie MySQL system musiał zadziałać na bazie Oracle.
  • Bezwzględny wymóg płynnego przejścia z MySQL na Oracle – bez dłuższej przerwy w pracy systemu. Ratownictwo medyczne działa 24 godziny na dobę przez przerwy, zatem systemu nie można wyłączyć.
  • Duża ilość danych do przeniesienia z jednej bazy do drugiej – około 2 terabajtów.
  • Zmiany w architekturze systemu.

Wyzwania przy migracji SWD PRM z MySQL na Oracle

W wersji systemu działającej na MySQL w warstwie serwerowej zastosowana była architektura dwóch ośrodków krajowych, działających w trybie active-active. Każdy z rozlokowanych w różnych miastach ośrodków krajowych mógł obsłużyć ruch z aplikacji w całej Polsce, a dane pomiędzy bazami danych były automatycznie replikowane. W rozwiązaniu opartym na bazie Oracle przyjęto architekturę active-passive na poziomie bazy danych z wykorzystaniem Oracle Data Guard. Z tego względu, konieczne było wykonanie zmian w podstawowych strukturach systemu.

O ile na poziomie ogólnym bazy danych MySQL i Oracle można uznać za zbliżone, ponieważ obydwie są relacyjnymi bazami danych SQL, to na poziomie szczegółowych rozwiązań technicznych są to dwie zupełnie odmienne platformy. Różnią się mocno w składni samego języka SQL, jak również w wielu innych aspektach – jak chociażby sposobem generowania identyfikatorów obiektów.

Trudnym elementem migracji systemu było również odpowiednie dobranie parametrów konfiguracji bazy Oracle, od których zależy wydajność i stabilność pracy silnika bazy danych. Dodatkowo poziom trudności zwiększał fakt, że parametrów tych nie można było dobierać eksperymentalnie – system musiał być od początku skonfigurowany tak, aby przyjąć pełny ruch produkcyjny z całej Polski, a od momentu przełączenia produkcyjnego zatrzymanie bazy danych było niemożliwe.

database

Przejście z MySQL na Oracle

Wymienione cele udało się osiągnąć i system został przełączony produkcyjnie w sierpniu 2020. Po zatrzymaniu systemu działającego na bazie MySQL już po około 20 minutach użytkownicy rozpoczęli pracę na systemie działającym na bazie Oracle. Funkcjonalnie system zadziałał od pierwszej chwili niemal w 100%, a niekrytyczne usterki szybko naprawiliśmy.

W ciągu kilku kolejnych dni specjaliści Globemy dokładnie analizowali pracę systemu na zmienionej platformie bazodanowej. Kilka elementów wymagało optymalizacji w celu minimalizacji obciążenia. Co ciekawe – pomimo że Oracle jest dużo bardziej zaawansowanym systemem, baza MySQL szybciej obsługiwała niektóre typy zapytań i nie wymagały one specjalnej optymalizacji. W ciągu dwóch tygodni wprowadziliśmy niezbędne zmiany – zarówno w warstwie bazy danych na poziomie triggerów, procedur i indeksów, jak również na poziomie serwerów aplikacyjnych Wildfly komunikujących się z bazą danych z wykorzystaniem technologii Hibernate.

Migracja na Oracle zakończona sukcesem

Projekt migracji systemu zrealizowaliśmy w ciągu 6 miesięcy. Było to jedno z największych wyzwań technologicznych związanych z rozwojem systemu SWD PRM, które wymagało współpracy wielu specjalistów. Zaangażowani byli zarówno administratorzy baz danych, jak również architekci oprogramowania oraz testerzy, którzy musieli zapewnić, że system przy pełnym obciążeniu produkcyjnym od pierwszych chwil zadziała prawidłowo. Kolejne tygodnie stabilnej i niezawodnej pracy na zmodyfikowanym systemie dowiodły, że cele projektu zostały osiągnięte.

W przypadku dodatkowych pytań dotyczących migracji z MySQL do Oracle lub samego Systemu Wspomagania Dowodzenia Państwowego Ratownictwa Medycznego, zapraszamy do kontaktu.