V loňském roce jsme provedli migraci systému podpory velení polských záchranných zdravotnických služeb (SWD PRM) z MySQL na Oracle. Systém byl nasazen do 37 lékařských dispečinků. Zjistěte více o výzvách migrace a architektuře řešení.
Systém podporuje všechna tísňová volání, která vyžadují lékařské týmy. SWD PRM je první systém v polském zdravotnictví, který úspěšně umožnil centralizovanou správu každého dispečinku lékařské péče a více než 1 500 sanitek v zemi.
MySQL nebo Oracle?
Systém byl spuštěn v roce 2016 a doposud pracoval na databázi MySQL. V loňském roce bylo rozhodnuto o migraci systému na Oracle – proč?
- Oracle je považován za databázi pro robustné systémy
- Vlastník systému (National Medical Rescue Monitoring Center) převzal odpovědnost za správu své databáze spolu s migrací
- Řešení založené na MySQL bylo náchylné k selhání replikace dat
Migrace systému tohoto významu, který pracuje v produkci, může být obtížné:
- Systém musí udržovat nejvyšší spolehlivost a kontinuitu provozu. Ve všech ohledech musel systém vyvinutý na MySQL nyní fungovat na Oracle.
- Bezproblémový přechod z MySQL na Oracle byl absolutní nutností – nebyl zde prostor pro výpadky systému. Záchranná lékařská služba funguje 24 hodin denně bez jakýchkoli přestávek, a tak by měl fungovat i systém.
- Bylo třeba přenést velké množství dat – přibližně 2 TB.
- Změny v architektuře systému.
Výzvy a to, jak jsme je překonali
Ve verzi systému běžícího na MySQL byla ve vrstvě serveru použita architektura dvou národních center pracujících v režimu aktivní-aktivní. Každé z národních center umístěných v různých městech zvládlo provoz z aplikace v celém Polsku a data mezi databázemi byla automaticky replikována. V řešení založeném na databázi Oracle byla na úrovni databáze přijata aktivní pasivní architektura pomocí Oracle Data Guard. Museli jsme provést změny základních struktur systému.
Databáze MySQL a Oracle lze obecně považovat za podobné: obě jsou relační databáze SQL. Ale na úrovni podrobných technických řešení jsou to dvě zcela odlišné platformy. Velice se liší v syntaxi samotného jazyka SQL i v mnoha dalších aspektech – například v metodě generování identifikátorů objektů.
Jednou z výzev byl vhodný výběr konfiguračních parametrů databáze Oracle, které určují výkon a stabilitu databázového stroje. Bylo to ještě obtížnější, protože parametry nebylo možné vybrat experimentálně. Systém musel být od začátku konfigurován tak, aby přijímal plný produkční provoz z celého Polska. Od okamžiku změny produkčního prostředí nebylo možné databázi zastavit nebo měnit.
Od MySQL po Oracle
Zvládli jsme všechny výzvy – systém byl převeden do produkce v srpnu 2020. Po zastavení systému běžícího na MySQL, po pouhých 20 minutách, začali uživatelé pracovat na systému běžícím na Oracle. Systém fungoval téměř na 100 % od prvního okamžiku. Jakékoli poruchy byly nekritické a rychle odstraněny.
Během následujících několika dní naši experti sledovali a analyzovali systém na nové platformě. Několik prvků vyžadovalo optimalizaci, aby se minimalizovalo zatížení. Zajímavé je, že i když je Oracle pokročilejší systém, MySQL zpracovával některé typy dotazů rychleji, bez speciální optimalizace. Do dvou týdnů jsme implementovali nezbytné změny a vylepšení – jak v databázi (spouštěče, procedury a indexy), tak na aplikačních serverech Wildfly, komunikujících s databází pomocí technologie Hibernate.
Úspěšná migrace
Projekt se nám podařilo zrealizovat za 6 měsíců. Byla to jedna z největších výzev systému SWD PRM, která vyžadovala spolupráci mnoha specialistů: administrátoři databází, softwaroví architekti a testeři, kteří se museli ujistit, že systém pracuje při plném zatížení produkce na 100 %. Další týdny stabilní a spolehlivé práce prokázaly, že jsme dosáhli cílů projektu!
Pokud vás zajímají další podrobnosti o migraci MySQL-Oracle nebo systému podpory příkazů pro polské záchranné služby – kontaktujte nás!