update: 2025-05-07

Migracja baz danych z Oracle do PostgreSQL dla globalnej firmy z branży elektronicznej

Przeprowadziliśmy migrację baz danych z Oracle do PostgreSQL dla globalnej firmy elektronicznej, zwiększając wydajność, redukując koszty i uniezależniając klienta od komercyjnego dostawcy.

Obszary: Technologie: PostgreSQL / EDB

Podziel się

CEL BIZNESOWY

Celem projektu realizowanego przez Linux Polska było ograniczenie kosztów operacyjnych i licencyjnych poprzez migrację środowiska bazodanowego z Oracle na PostgreSQL – skalowalne i otwarte rozwiązanie klasy enterprise. Klient, globalna firma z branży elektronicznej, dążył do uniezależnienia się od dostawcy komercyjnego (vendor lock-in), poprawy wydajności aplikacji oraz zwiększenia elastyczności technologicznej. Kluczowe znaczenie miało zapewnienie ciągłości działania systemów podczas migracji, minimalizacja ryzyk operacyjnych oraz ujednolicenie struktur baz danych w rozproszonych lokalizacjach.

WSPARCIE LINUX POLSKA

  • Wykonanie oceny wykonalności migracji (assessment) oraz testów z wykorzystaniem narzędzia ora2pg.
  • Opracowanie planu migracji i automatyzacja kluczowych etapów procesu.
  • Przeprowadzenie migracji testowych i produkcyjnych dla 8 baz danych w 4 lokalizacjach: Polska (Kwidzyn), Francja (Beaupréau), Tunezja (Zriba), Niemcy (Willich).
  • Wdrożenie ora2pg do konwersji schematów, danych i kodu PL/SQL.
  • Optymalizacja zapytań oraz dostosowanie aplikacji do współpracy z PostgreSQL.
  • Użycie pgBadger do analizy wydajności i aktywności baz danych.
  • Standaryzacja logowania danych oraz budowa środowisk testowych.
  • Transfer wiedzy i przekazanie rekomendacji dotyczących dobrych praktyk optymalizacji kodu.
  • Przygotowanie narzędzi do kontroli wersji baz danych i weryfikacji triggerów.

REZULTATY

  • Wzrost wydajności – skrócenie czasu wykonania kluczowych zapytań o 20,42% i 13,53%.
  • Redukcja kosztów licencyjnych – całkowite odejście od komercyjnych licencji Oracle.
  • Większa stabilność i skalowalność systemu – efektywniejsze zarządzanie dużym obciążeniem.
  • Zapewnienie ciągłości działania – migracje przeprowadzone w zaplanowanych oknach serwisowych, bez przestojów.
  • Elastyczność technologiczna – otwartość na rozwój i możliwość dalszej optymalizacji w ekosystemie PostgreSQL.
  • Ujednolicenie środowisk – spójne struktury danych we wszystkich lokalizacjach.
  • Wzrost efektywności operacyjnej – usprawnione tworzenie środowisk testowych dla przyszłych projektów.
Lokalizacja Wielkość bazy danych Czas migracji
Polska (Kwidzyn) 1,5 TB 16 godzin
Francja (Beaupréau) 200 GB 8 godzin
Tunezja (Zriba) 200 GB 8 godzin
Niemcy (Willich) 22 GB 1 godzina

Wykres przedstawiający poprawę czasu generowania zapytań webserwisowych w lokalizacji Kwidzyn po migracji z Oracle do PostgreSQL obrazuje skalę uzyskanych usprawnień.

WYZWANIA I ROZWIĄZANIA

W trakcie realizacji projektu zidentyfikowano szereg wyzwań technicznych i organizacyjnych. Dzięki doświadczeniu zespołu oraz ścisłej współpracy z klientem każde z nich zostało skutecznie zaadresowane:

Problem: Brak automatycznych testów aplikacji (wydajnościowych i funkcjonalnych) po stronie klienta.
Rozwiązanie: Zarekomendowano przygotowanie testów automatycznych już na wczesnym etapie projektu.

Problem: Nieoptymalna jakość kodu aplikacyjnego.
Rozwiązanie: Przekazano szczegółowe rekomendacje optymalizacyjne i wsparto ich wdrożenie.

Problem: Różnice w strukturach baz danych między lokalizacjami.
Rozwiązanie: Każda migracja została potraktowana indywidualnie z dedykowanym podejściem.

Problem: Brak możliwości weryfikacji przyrostów danych (ograniczenia ora2pg oraz zastanych struktur danych i licencji Oracle).
Rozwiązanie: Zastosowano obejście programowe – kopiowanie danych do odrębnych schematów PostgreSQL.

Problem: Brak możliwości równoległej walidacji danych z powodu wysycenia pamięci operacyjnej.
Rozwiązanie: Rozdzielono operacje per tabela i zastosowano wielowątkowe przetwarzanie list tabel.

Problem: Nadmierne zużycie pamięci przy porównywaniu dużych tabel (np. tabela 1 GB = 20 GB RAM).
Rozwiązanie: Zwiększono zasoby RAM i SWAP oraz ograniczono równoległość przetwarzania.

Problem: Ograniczony dostęp do środowisk po stronie klienta.
Rozwiązanie: Zapewniono rozszerzony dostęp zgodnie z ustaleniami projektowymi.

Problem: Brak dedykowanego środowiska testowego po stronie klienta.
Rozwiązanie: Uwzględniono zapis w umowie umożliwiający realizację działań na środowisku LAB Linux Polska.

Problem: Niewystarczająca przestrzeń dyskowa dla instancji PostgreSQL.
Rozwiązanie: Zgłoszono wymóg zwiększenia przestrzeni dyskowej.

Problem: Różnice w danych dostępowych (konta/hasła) pomiędzy środowiskami.
Rozwiązanie: Opracowano skrypty automatyzujące połączenia i transfer danych.

Problem: Brak transparentności zmian wprowadzanych przez deweloperów.
Rozwiązanie: Wdrożono mechanizm wersjonowania bazy danych (np. db_version).

Problem: Brak aktualnych wykresów wydajności webserwisów podczas optymalizacji.
Rozwiązanie: Zapewniono bieżący dostęp do danych monitorujących w celu oceny zmian.

Problem: Konflikty replikacji w PostgreSQL z procesem migracyjnym.
Rozwiązanie: Czasowo wyłączono replikację w uzgodnieniu z klientem.

Problem: Nieoptymalna konfiguracja PostgreSQL (brak tablespace, temp tablespace, zasobów na WAL).
Rozwiązanie: Przekazano szczegółowe zalecenia dotyczące optymalizacji środowiska.

Problem: Zbyt wczesne przygotowanie środowiska produkcyjnego PostgreSQL bez optymalizacji.
Rozwiązanie: Wskazano wymagania dla środowiska testowego już na etapie umowy.

PRACE DODATKOWE

  • Optymalizacja czasu zapytań webserwisów, co przełożyło się na poprawę ogólnej wydajności systemu.
  • Modyfikacja uprawnień użytkowników bazodanowych i wdrożenie dedykowanych skryptów zarządzających.
  • Dodanie kluczy Primary Key oraz walidacja integralności danych.
  • Tworzenie środowisk testowych na podstawie danych produkcyjnych.
  • Implementacja importu przyrostowego i importu wielowątkowego.
  • Porównanie danych i struktur między Oracle i PostgreSQL.
  • Opracowanie narzędzi do weryfikacji triggerów i kontroli wersji bazy danych.52332535928

Z naszych rozwiązań korzystają

Zobacz również