Kompletny przewodnik po strategiach migracji technologii: (Część 3 – Migracja bazy danych)
Opublikowany: 2020-12-25Wyobraź sobie scenariusz, w którym kupujesz nowe mieszkanie, jesteś spakowany do wprowadzenia i dokładnie zaplanowałeś cały proces. Wszyscy jesteście gotowi przenieść się do nowego domu, a potem nagle uświadamiacie sobie, że jest problem. Meble i artefakty nie pasują do nowego mieszkania.
Jak byś się czuł, gdybyś musiał wyrzucić wszystkie meble i zacząć od podstaw? Kontynuując tę analogię, rozważ nowe mieszkanie jako nową bazę danych, a meble jako dane. Jesteśmy pewni, że dane byłyby o wiele ważniejsze niż meble dla Twojej firmy, dlatego chcesz zachować każdy ich fragment podczas planowania migracji.
Kontynuując naszą serię migracji technologii, na tym blogu postaramy się przybliżyć podstawy migracji baz danych (DBM), co należy rozumieć, brać pod uwagę i o co dbać podczas przeprowadzania migracji baz danych.
Dlaczego i kiedy potrzebna jest migracja bazy danych?

Kontynuując nasz poprzedni blog dotyczący migracji aplikacji, dzisiejszy artykuł koncentruje się na migracji bazy danych (znanej również jako migracja schematu), ponieważ jest to jedna z najważniejszych migracji, która zajmuje się głównie wybieraniem, wyodrębnianiem, przesyłaniem/aktualizowaniem danych z jednego frameworka bazy danych do inne.
Zasadniczo potrzeba migracji bazy danych może być specyficzna dla wymagań biznesowych, a nawet dla spełnienia najnowszych wielu polityk regulacyjnych wprowadzonych przez różne organy regulacyjne. Chociaż nie ma zdefiniowanych sytuacji, w których DBM jest potrzebny, wymieniliśmy kilka sytuacji, w których jest to nieuniknione:
- Częstym powodem jest przeniesienie przestarzałego systemu na system, który spełnia wymagania biznesowe i nowoczesne potrzeby w zakresie danych. Nowe i nowoczesne techniki przechowywania stały się koniecznością w czasach Big Data.
- Niektóre organy regulacyjne wprowadziły obowiązek przechowywania danych wyłącznie w określonej lokalizacji geograficznej. W związku z tym konieczne jest, aby rozproszone dane były migrowane do jednej lokalizacji.
- Niektóre firmy wolą przenieść lokalną bazę danych do bazy danych w chmurze. Pozwala to zazwyczaj zaoszczędzić na infrastrukturze i zasobach wiedzy, które są potrzebne do obsługi danych, a także przyspiesza działanie systemów.
- Migracja na nową platformę zapewnia pełną integralność danych. Zmniejsza koszty przechowywania i nośników, co przekłada się na znaczną poprawę ROI.
- Wiele współczesnych firm pragnie przechowywać wszystkie swoje dane w jednym miejscu. W ten sposób dane są dostępne dla wszystkich działów firmy.
Migracja systemu bazodanowego na nową platformę ogranicza zakłócenia występujące w codziennej działalności biznesowej. Można to zrobić przy minimalnym nakładzie pracy ręcznej, jeśli wybór nowej platformy bazy danych zostanie dokonany mądrze.
Rodzaje baz danych
Zanim przejdziemy do migracji bazy danych, przyjrzyjmy się najpierw różnym typom baz danych:

- Relacyjna baza danych – relacyjne bazy danych są znane jako konie robocze branży baz danych. Te bazy danych są klasyfikowane według zestawu tabel. Tabele składają się z wierszy i kolumn, gdzie wiersz zawiera wystąpienie danych, a kolumna zawiera wpis danych dla określonej kategorii. SQL — Structured Query Language to standardowy interfejs programistyczny dla relacyjnej bazy danych.
- Rozproszona baza danych – Jak sama nazwa wskazuje, dane są dystrybuowane w różnych miejscach dowolnej organizacji. Łącza komunikacyjne służą do łączenia witryn ze sobą. Pomaga to w łatwym dostępie do rozproszonej bazy danych.
- Baza danych zorientowana obiektowo – Ten typ bazy danych łączy atrybuty relacyjnej bazy danych i programowania obiektowego. Różne elementy stworzone w C++ i Javie mogą być przechowywane w relacyjnych bazach danych, jednak bardziej odpowiednia jest dla nich baza obiektowa.
- Baza danych NoSQL — baza danych NoSQL może wydajnie analizować duże nieustrukturyzowane dane przechowywane na wielu serwerach wirtualnych. W przeciwieństwie do tego, relacyjna baza danych nie może wydajnie obsługiwać niektórych wydajności danych big data. Bazy danych NoSQL mogą łatwo zarządzać takimi przypadkami i są używane do dużego zestawu rozproszonych danych.
- Cloud Database – Cloud Database to wirtualne środowisko, które zapewnia elastyczność w zakresie płatności za użytkowanie. Użytkownik musi jedynie zapłacić za przepustowość i pojemność pamięci, które odpowiadają jego wymaganiom.
- Graph Database – w uproszczeniu wykres to zbiór węzłów i krawędzi. Graph Database zawiera węzły, które reprezentują encje, a krawędź opisuje relacje między tymi encjami. Jest to rodzaj bazy danych NoSQL i wykorzystuje teorię grafów do mapowania, przechowywania i tworzenia zapytań.
- Scentralizowana baza danych — w przypadku tego typu bazy danych dane są przechowywane w jednej scentralizowanej lokalizacji. Baza danych zasadniczo zawiera procedury aplikacji, które umożliwiają użytkownikom dostęp do bazy danych również ze zdalnych lokalizacji.
Podejścia do migracji baz danych
Migracja danych z jednej platformy bazodanowej na inną może być kluczowym zadaniem. Jeśli migracja jest planowana w środowisku LIVE, migrację należy przeprowadzić z najwyższą ostrożnością. Przed przystąpieniem do migracji danych należy wybrać dogodny czas migracji. Systemy działające często doświadczają przestojów, gdy dane są przesyłane do nowej bazy danych.
Istnieją głównie dwa podejścia do migracji bazy danych:
Migracja danych Wielkiego Wybuchu:
To podejście polega na tym, że decyduje się na migrację całej bazy danych od razu w ograniczonym czasie. Chociaż migracja danych big bang wydaje się mniej skomplikowana, wymaga wystarczającego przestoju dla działającej witryny internetowej. Co więcej, przy takim podejściu całkowite wycofanie procesu migracji może nie być łatwe do osiągnięcia w przypadku, gdy migracja w dowolnym momencie się nie powiedzie.
Przepływ migracji danych
Przy takim podejściu należy podzielić proces migracji na mniejsze porcje lub fazy. Prawie jak w zwinnym podejściu do migracji, jeśli jedna faza ulegnie awarii, tylko ta faza musi zostać wycofana, a proces powtórzony. Jednak migracja danych Trickle jest bardzo czasochłonna, a zatem może zwiększyć koszt projektu.
Różne rodzaje migracji

Relacyjna baza danych do relacyjnej bazy danych
To podejście jest najprostszą migracją. Dostępnych jest mnóstwo narzędzi, które wykonują tego typu migrację całkiem sprawnie, prawie w 100% skutecznie.
Relacyjna baza danych do nierelacyjnej bazy danych i odwrotnie
Ta migracja jest trudniejsza w porównaniu do wyżej wymienionej. Ponieważ relacyjna baza danych i nierelacyjna baza danych różnią się zasadniczo, ich migracja może nie być w 100% wydajna. Zasadniczo migracja do nierelacyjnej bazy danych oznacza poświęcenie właściwości ACID (atomowych, spójnych, izolowanych i trwałych), które gwarantują skalowalność bazy danych.
Dostępnych jest jednak wiele bezpłatnych narzędzi, które obsługują migrację bazy danych z relacyjnej do nierelacyjnej bazy danych. Chociaż korzystanie z nich nie jest powszechnie zalecane, ponieważ narzędzia te nie obsługują struktury schematu systemu i większość z nich wydaje się zbyt sztywna, aby dostosować się do wymagań systemowych.
Chociaż istnieje kilka podstawowych wskazówek dotyczących konwersji, które możemy renderować dla tego typu migracji, które możemy rozważyć (dla ułatwienia rozważmy MySQL jako naszą relacyjną bazę danych, a MongoDB jako naszą nierelacyjną bazę danych)

- Konwertuj typ danych MySQL String na String w MongoDB. Może to obejmować znak, varchar, blob, tekst itp.
- Konwertuj typ danych MySQL Numeric na Number w MongoDB. Może to obejmować wartość typu int, float, liczba dziesiętna, podwójna itp.
- Konwertuj typ danych MySQL Date na Date w MongoDB. Może to obejmować datę, rok, znacznik czasu itp.
- Konwertuj typ danych MySQL Bool & Boolean na Boolean w MongoDB.
- W ten sam sposób możesz ocenić inne przypadki.
Migracja z modelem hybrydowym
Hybrydowy projekt modelu integruje dwa popularne modele baz danych w jednej strukturze, jednocześnie łagodząc wady każdego systemu. Na przykład zawsze możemy zastosować podejście hybrydowe, w którym możemy wykorzystać relacyjną bazę danych do mniej wymagających operacji w połączeniu z nierelacyjną bazą danych do inicjatyw wymagających dużej ilości danych.
Backup danych
Planowanie strategii migracji przed wykonaniem może zapewnić płynny proces migracji. Biorąc to pod uwagę, zawsze musimy mieć plan B. Zakładając najgorszy scenariusz, w którym nastąpi utrata danych lub dane zostaną uszkodzone podczas wykonywania migracji; musisz być przygotowany na przywrócenie danych do ich pierwotnego stanu przed ponowną próbą. Dlatego kopia zapasowa danych jest bardzo ważnym krokiem podczas DBM (migracja bazy danych). Zajrzyjmy więc, jakie istnieją opcje zapewniające bezpieczne tworzenie kopii zapasowych danych.

Kopia zapasowa w chmurze

Jedną z najbardziej wydajnych i bezpiecznych metod ochrony inicjatywy migracji jest wykonanie kopii zapasowej w chmurze. Zasadniczo, gdy tworzysz kopię zapasową danych w chmurze, pliki są przechowywane poza siedzibą firmy. Eliminuje to lokalne luki sprzętowe, które mogą powodować problemy. Dlaczego więc kopia zapasowa w chmurze?
- Kopie zapasowe w chmurze są niedrogie, ponieważ trzeba płacić tylko za użycie.
- Kopia zapasowa w chmurze jest bezpieczna, ponieważ zapewnia pełne szyfrowanie.
- Pozwala na łatwe odzyskiwanie po awarii i przywracanie danych
- Rozbudowane opcje tworzenia kopii zapasowych w chmurze obejmują całą kopię zapasową obrazu systemu. Dlatego nie musisz ponownie instalować systemu operacyjnego. Komputery i serwery zostaną przywrócone do ostatniej działającej wersji.
Oprogramowanie do udostępniania plików

Pakiety oprogramowania, takie jak Dropbox, rozwijają się, aby zaspokoić potrzeby swoich użytkowników. Dropbox przechowuje wersje plików, które można przywrócić w razie potrzeby. Podobnie jak w przypadku tworzenia kopii zapasowych w chmurze, ta opcja jest niedroga, a pliki są przechowywane poza siedzibą firmy. Jakie są jego zalety?
- Pliki można przywrócić do dowolnego systemu w dowolnej lokalizacji.
- Jest bezpłatny i wspiera współpracę.
- Wysoce bezpieczne (pamięć w chmurze szyfruje przesyłane pliki)
- Możliwości pracy w trybie offline
Minusem jest jednak to, że przywracanie nie jest zautomatyzowane. Aby zapisać dane, musisz skopiować i wkleić dane do struktury katalogów udostępniania plików. Pliki muszą znajdować się w określonej strukturze, w przeciwnym razie nie zostaną zarchiwizowane. Jeśli pliki znajdują się w udostępnionym folderze lub katalogu, prawdopodobnie będziesz potrzebować większej przepustowości do wykonania kopii zapasowej tych plików.
Ogólnie rzecz biorąc, istnieją inne dostępne nośniki do tworzenia kopii zapasowych, takie jak kopia zapasowa na dysku flash lub zewnętrznym dysku twardym. Jednak te opcje nie są zalecane, ponieważ nie są całkowicie bezpieczne w porównaniu z oprogramowaniem do tworzenia kopii zapasowych w chmurze lub oprogramowania do udostępniania plików. Na przykład każde fizyczne uszkodzenie dysku twardego może spowodować utratę danych. Ponadto są bardziej podatne i podatne na ataki ransomware i kryptowirusy.
Jak zapewnić bezpieczeństwo danych?
Przeprowadzając migrację danych, musisz upewnić się, że wrażliwe dane nie zostaną naruszone lub naruszone. Jeśli migracja nie powiedzie się, może to prowadzić do większych konsekwencji i spowodować wyciek danych lub utratę danych, jak w przykładach cytowanych tutaj w 2020 roku.
Niestety wycieki danych mogą zaszkodzić reputacji klienta, doprowadzić do utraty biznesu i klientów; lub w niektórych przypadkach może prowokować działania prawne. Aby uniknąć wszystkich takich konsekwencji, musisz wcześniej sporządzić plan bezpieczeństwa, pamiętając o strategii migracji.
- Na początek niezawodny i bezpieczny dostęp do serwera i dostęp do danych powinien znajdować się na liście priorytetów.
- Zwiększ liczbę uprawnień wymaganych do przesyłania danych. W większych organizacjach działy bezpieczeństwa ograniczają dostęp do serwerów i definiują migrację danych między zaangażowanymi serwerami.
- Dane są zagrożone, gdy zaangażowanych jest więcej stron. Dlatego unikaj przesyłania między stronami za pośrednictwem przenośnych urządzeń pamięci masowej lub wiadomości e-mail. W takich przypadkach dane mogą być łatwo zagrożone.
- Aby zapewnić bezpieczny dostęp, przechowywanie i odzyskiwanie danych, należy stale ćwiczyć szyfrowanie i deszyfrowanie. Możesz użyć hybrydowych algorytmów szyfrowania, aby zapewnić maksymalne bezpieczeństwo danych. Ale nie jest to zalecane wszystkim. Jeśli migracja się nie powiedzie, dane zostaną zaśmiecone i mogą doprowadzić do uszkodzenia lub utraty danych.
Aby zapewnić bezpieczną migrację, unikaj używania prymitywnych narzędzi. Korzystanie z prymitywnych narzędzi może osłabić system i pozostawić luki dla hakerów. Do migracji danych należy używać niezawodnych narzędzi, które są specyficzne funkcjonalnie.
Proces migracji danych
Migracja danych jest zasadniczo procesem wielofazowym i należy postępować zgodnie z poniższymi krokami, aby uniknąć utraty danych i zapewnić bezpieczną migrację bazy danych.
- Ocena :
- Zbierz analizę wymagań biznesowych i zdefiniuj kluczowy cel, który należy osiągnąć za pomocą DBM.
- Zdefiniuj zakres
- Przeprowadzaj obszerne profilowanie danych:
- Przejrzyj dane źródłowe, format danych, przejrzyj strukturę schematu, zawartość i relacje między instancjami danych
- Zrozum system docelowy
- Zidentyfikuj interesariuszy
- Budżetuj całą działalność
- Backup danych
- Upewnij się, że kopie zapasowe migrowanych danych są bezpieczne. Zalecane jest korzystanie z kopii zapasowej w chmurze.
- Upewnij się, że miejsce docelowe jest czyste i chronione przed włamaniami do danych.
- Dostępność zasobów :
- Dostępność czasu migracji i przestoju systemu docelowego.
- Upewnij się, że zatrudnione zasoby ludzkie mają odpowiedni zestaw umiejętności.
- Znajdź odpowiednie narzędzie i skrypty.
- Wykonanie migracji danych :
- Proces migracji może obejmować skrypty, narzędzia ETL lub inne porównywalne narzędzia do przenoszenia danych.
- W czasie migracji przekształcisz dane, znormalizujesz typy danych, a na koniec sprawdzisz ewentualne błędy.
- Testowanie i strojenie :
- Zespół i zespół klienta muszą mieć krytyczną pewność, że wszystkie dane są prawidłowo migrowane
- Sprawdź więc, czy dane są przenoszone poprawnie, czy dane są kompletne i czy nie ma brakujących wartości.
- Upewnij się również, że dane są prawidłowe i nie zawierają żadnych wartości null.
- W przypadku niezgodności danych, powinno nastąpić wycofanie danych i cały proces powinien zostać uruchomiony ponownie.
- Rewizja
Po uruchomieniu nowej bazy danych można skonfigurować system do audytu danych. Zapewni to dokładność migracji bazy danych i zwróci uwagę na niekompletne i niedokładne dane.
Potencjalne zagrożenia związane z migracją bazy danych

Migracja bazy danych to bardzo skomplikowana procedura, która wiąże się z ryzykiem i niepewnością. Zawsze możesz je przezwyciężyć poprzez odpowiednie planowanie i wykonanie. Zagrożenia, które można napotkać to:
- Nieaktualne systemy źródłowe: tutaj źródło danych może być nieaktualne, nadmiarowe, przestarzałe lub trywialne
- Odmienna architektura bazy danych: w tym scenariuszu źródłowe bazy danych mogą znajdować się w wielu lokalizacjach i mogą mieć zupełnie różne architektury, ale docelowa baza danych wymaga, aby wszystko było zsynchronizowane.
- Przedłużony przestój: zdarzają się przypadki, w których planowana migracja trwa dłużej niż oczekiwano, w związku z czym występuje wydłużony czas przestoju systemu. Może to spowodować straty biznesowe dla klienta końcowego i może być nie do przyjęcia.
- Potencjalna utrata danych: Nie wszystkie utraty danych można zidentyfikować w fazie testowania. Niektóre przypadki utraty danych mogą zostać ostatecznie zidentyfikowane, gdy system uzyska wystarczający ruch.
Migracja z bazy danych w czasie rzeczywistym: w przypadku każdej witryny internetowej o dużej liczbie transakcji migracja bazy danych jest zawsze trudna, ponieważ odbywają się ciągłe aktualizacje danych; a migracja danych na żywo i w czasie rzeczywistym nie jest możliwa. Aby migracja mogła się wydarzyć, musi nastąpić przestój.
Uwagi końcowe
Zawsze możesz zasięgnąć porady ekspertów zewnętrznych w zakresie migracji baz danych. Jesteśmy Creole Studios, które specjalizujemy się w migracjach baz danych i chętnie pomożemy lub skonsultujemy się z każdym takim przedsięwzięciem. Bądź na bieżąco z czwartym i ostatnim blogiem z serii migracji technologii.