Migracja do PostgreSQL

Migracja bazy danych do PostgreSQL z pomocą EuroDB

Migracja do PostgreSQL jest często rozważanym scenariuszem w wielu przedsiębiorstwach. Jak przenieść kluczowe dane i przekazać kontrolę Postgresowi? W tym tekście postaramy się nieco przybliżyć ten proces z wykorzystaniem EuroDB oraz omówimy potencjalne wyzwania związane z migracją.

Migracja do PostgreSQL jest często rozważanym scenariuszem w wielu przedsiębiorstwach. Jak przenieść kluczowe dane i przekazać kontrolę Postgresowi? W tym tekście postaramy się nieco przybliżyć ten proces z wykorzystaniem EuroDB oraz omówimy potencjalne wyzwania związane z migracją.

Dlaczego warto zmigrować do Postgresa? PostgreSQL to bardzo dojrzała technologia. Prace nad tym systemem rozpoczęły się ponad 30 lat temu, co skutkuje również tym, że wokół tego programu pojawiła się aktywna i żywa społeczność składająca się z użytkowników oraz kontrybutorów (często opłacanych przez firmy związane z dostarczaniem usług opartych o Postgresa). Zajmuje się ona jego rozwojem oraz ma możliwość kształcenia swoich następców. Nie ma więc jednego podmiotu, który by w 100% kontrolował kierunek rozwoju tej bazy danych.

Model Open Source pozwala również na uniknięcie problemu vendor lock-in, czyli sztywnego połączenia między dostawcą oprogramowania oraz jego użytkownikami, wynikającego z warunków licencyjnych. W przypadku tak kluczowego komponentu jak baza danych może to prowadzić wprost do nierozerwalnej zależności. Następstwem tego może być niekontrolowany wzrost kosztów wraz z kolejnymi aktualizacjami cenników dostawcy.

Pomijając potencjalne negatywne powody migracji, warto również spojrzeć na bardziej optymistyczne impulsy do zmiany silnika bazodanowego. Jednym z kluczowych czynników w czasach, w których Open Source rośnie w siłę, jest również fakt, że sami deweloperzy coraz częściej chcą korzystać z PostgreSQL w swojej pracy.

Wynika to oczywiście z faktu, że PostgreSQL to najbardziej zaawansowana otwartoźródłowa baza danych, która jest w stanie wspierać bardzo różne zastosowania poprzez rozbudowane modele pracy łączące – relacyjno-obiektową bazę danych, bazę dokumentową (przechowywanie XML oraz JSON) oraz wsparcie dla przechowywania danych geograficznych. Ponadto może się poszczycić jedną z najlepszych dokumentacji zarówno do celów deweloperskich, jak i dla administratorów.

Co wziąć pod uwagę podczas migracji?

Migracja z różnych innych systemów bazodanowych nie jest jednak bezbolesna. Powodem jest oczywiście naturalna chęć dostawców do tworzenia własnych rozszerzeń do standardu SQL, których dostępność w innych produktach może być kosztowna bądź zwyczajnie niemożliwa.

Podczas migracji z wyjątkowo zamkniętych ekosystemów warto więc pamiętać, że będzie to proces obarczony kosztem startowym, który w dłuższej perspektywie zdecydowanie się zwróci przez często niższe koszty wsparcia oraz pełne uniknięcie wysokich opłat licencyjnych.

Migracja danych pomiędzy systemami to sprawa stosunkowo prosta. Pod warunkiem, że dostępne są odpowiednie narzędzia. Jak na przykład moduł EuroDB – EuroTransfer. Dzięki takiemu narzędziu nie trzeba się przejmować problemami:

  • związanymi ze spójnością migrowanych danych
  • różnicami między wspieranymi typami danych w różnych silnikach bazodanowych oraz odpowiednimi regułami translacji pomiędzy nimi
  • potencjalną obróbką danych binarnych (stworzenie odpowiedniej „koperty tekstowej” oraz późniejsze jej otwarcie w bazie docelowej)
  • manualnym i czasochłonnym obrabianiem zrzutów bazy danych w celu dostosowania ich do nowego silnika.

Następnym krokiem jest oczywiście przepisanie oraz dostosowanie wszelkich wyzwalaczy czy procedur składowanych, których migracja wymaga dostosowania dotychczas używanej niestandardowej składni.

Nowa baza danych oparta o Postgresa będzie często mogła od razu współpracować z aplikacjami, jeśli zostały napisane w sposób omijający niestandardowe funkcje. Niekiedy jednak wymagane będzie wprowadzenie zmian. Wówczas nieocenione może być przygotowanie do tego zespołów deweloperskich oraz wspierających ich zespołów zajmujących się utrzymaniem poprzez wzięzcie udziału w szkoleniach z PostgreSQL.

Migracja danych do PostgreSQL z wykorzystaniem modułu EuroDB

EuroDB – platforma bazodanowa oparta o PostgreSQL – dostarcza wśród dystrybuowanych wraz z nią modułów narzędzie do migracji danych między różnymi systemami bazodanowymi. Dzięki temu narzędziu można uniknąć wszystkich problemów związanych z transferem danych, o których pisaliśmy wcześniej.

Moduł EuroDB korzysta z prostego pliku konfiguracyjnego pozwalającego na utworzenie połączenia między bazą źródłową oraz docelową. Dzięki zastosowaniu odpowiednich reguł translacji pozwala na stworzenie mapy pomiędzy źródłowymi typami danych w poszczególnych kolumnach tabeli do tabel utworzonych w docelowej bazie – PostgreSQL. Ponadto, korzystając z różnych parametrów konfiguracyjnych, możemy dodatkowo sterować procesem migracji, na przykład poprzez automatyczną zmianę nazw tabel zgodnie z jakąś regułą.

Warto zaznaczyć, że proces migracji jest szybki również dla bardzo dużych zbiorów danych. W dużej mierze jednak zależy od konfiguracji sprzętowej maszyny, na której uruchamiamy EuroTransfer. Istotne są także czynniki takie jak typy dysków w systemach źródłowych oraz docelowych (w szczególności parametry szybkości odczytu oraz zapisu) czy możliwości przesyłu wynikające z dostępnej szerokości pasma w serwerowni, w której będzie prowadzona migracja. Oczywiście nic nie stoi na przeszkodzie, aby migracja odbywała się w infrastrukturze chmurowej.

Podsumowanie

Mam nadzieję, że te rozważania na temat migracji danych pozwolą Wam na podjęcie właściwej decyzji przy rozważaniu „przesiadki” do PostgreSQL. Zachęcam do subskrybowania naszego newslettera, gdzie niebawem zaprezentujemy dokładniej, jak można wykorzystać moduł EuroDB, przeprowadzając przykładową migrację.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.