Podejścia do migracji

Ukończone

Migracja bazy danych, taka jak migracja w trybie online lub offline, migracja kopii zapasowej i przywracania, migracja można stosować wiele różnych podejść do migracji bazy danych, takich jak migracja w trybie online lub offline, albo migracja za pomocą niestandardowego kodu LUB skryptów SQL. Każde podejście jest najbardziej odpowiednie dla niektórych scenariuszy biznesowych.

Na przykład w firmie startowej baza danych komunikacji dostawcy ma kluczowe znaczenie i chcesz spróbować przeprowadzić migrację bez żadnych zakłóceń w usłudze dla użytkowników. Ten dział firmy działa na zasadzie 24/7 i istnieje kilka przewidywalnych czasów, kiedy można przejąć bazę danych w tryb offline. Natomiast system Computer Aided Design (CAD) jest używany tylko w ciągu tygodnia, dzięki czemu można go przejąć w tryb offline w weekend i przeprowadzić migrację na platformę Azure.

W tym miejscu dowiesz się więcej o podejściach, technikach i narzędziach, które można wybrać do wykonania migracji.

Kiedy należy używać eksportu i importowania

Techniki eksportowania i importowania zapewniają kontrolę nad danymi i schematem przeniesionym do migracji. Użyj narzędzi eksportu i importu, jeśli chcesz wybrać, które dane są migrowane do nowej bazy danych, a może czyścić lub modyfikować dane podczas migracji.

Rozważ użycie technik eksportowania i importowania:

  • Jeśli chcesz wybrać podzbiór tabel w lokalnej bazie danych, aby przeprowadzić migrację do bazy danych w chmurze.

  • Jeśli chcesz migrować obiekty bazy danych, takie jak ograniczenia, widoki, funkcje, procedury i wyzwalacze, oraz kontrolować sposób konfigurowania tych obiektów w bazie danych w chmurze.

  • Jeśli chcesz zaimportować dane ze źródeł zewnętrznych innych niż MySQL, MariaDB lub PostgreSQL.

Na przykład możesz rozważyć eksportowanie i importowanie w następujących scenariuszach:

  • Chcesz przeprowadzić migrację fragmentacyjną, w której obciążenie marketingowe jest migrowane do chmury i testowane przed obciążeniem pomocy technicznej ds. sprzedaży. Oba obciążenia używają tabel z bazy danych SalesDB w systemie lokalnym. Chcesz przeprowadzić migrację tabel marketingowych tylko w pierwszej fazie projektu i tabel sprzedaży tylko w drugiej fazie.

  • Dane lokalne są stare i zawierają kombinację danych, które są istotne i nieistotne dla bieżącej firmy. Chcesz skorzystać z okazji, aby usunąć stare dane i rozważyć bardziej usprawniony schemat bazy danych.

  • Masz duży arkusz kalkulacyjny zawierający dane dotyczące produktów. Chcesz przeprowadzić migrację tych danych do bazy danych w chmurze.

Planowanie migracji eksportu i importowania

Zaletą eksportowania i importowania jest dodatkowy poziom kontroli nad migrowanymi danymi. Jednak wadą jest to, że należy dokładnie zaplanować, aby upewnić się, że wszystkie potrzebne obiekty są uwzględnione.

Upewnij się, że rozumiesz, jak zostaną zmigrowane następujące obiekty:

  • Schemat bazy danych.
  • Ograniczenia, w tym klucze podstawowe, klucze obce i indeksy.
  • Widoki, funkcje, procedury i wyzwalacze.
  • Konta użytkowników i uprawnienia.

Eksportowanie i importowanie dla baz danych MySQL i MariaDB

Skrypty SQL umożliwiają selektywne eksportowanie i importowanie z jednej bazy danych do innej. Jeśli jednak lokalna baza danych znajduje się w bazie danych MySQL lub MariaDB, dostępnych jest kilka narzędzi, w tym:

  • MySQL Workbench. Jest to popularne narzędzie do projektowania bazy danych z graficznym interfejsem użytkownika (GUI) opracowanym przez firmę Oracle Corporation. Zawiera narzędzie do eksportowania danych z elastycznymi opcjami wyboru danych.

  • Toad Edge. Jest to konkurencyjny zestaw narzędzi opracowany przez Quest. Służy do eksportowania i importowania danych z baz danych MySQL i PostgreSQL.

  • Navicat. To narzędzie do administrowania bazą danych jest również zgodne z bazami danych MariaDB.

  • mysqlimport. To narzędzie wiersza polecenia może importować dane z plików tekstowych.

Ważne

Usługi Azure Database for MySQL i Azure Database for MariaDB obsługują tylko aparat magazynu InnoDB. Jeśli masz tabele korzystające z innych aparatów, takich jak aparat MyISAM, przed migracją na platformę Azure należy je przekonwertować na innoDB.

Eksportowanie i importowanie bazy danych PostgreSQL

Usługa PostgreSQL udostępnia następujące narzędzia używane do eksportowania i importowania danych:

  • pg Administracja. Jest to narzędzie graficznego interfejsu użytkownika dla administratorów postgreSQL. Udostępnia interfejs do eksportowania i importowania danych.

  • pg_dump. Jest to narzędzie wiersza polecenia używane do eksportowania bazy danych w różnych formatach, w tym do testowania. Wynikowe pliki .sql można edytować przed zaimportowaniem ich przy użyciu narzędzia psql .

  • Toad Edge. Jest to to samo narzędzie, którego używasz z programem MySQL.

Tworzenie kopii zapasowej i przywracanie

Operacje tworzenia i przywracania kopii zapasowych są zwykle wykonywane w celu ochrony bazy danych przed awariami. Dokładna kopia bazy danych jest wykonywana i zapisywana. Jeśli awaria zniszczy działającą kopię, kopia zapasowa zostanie przywrócona, a normalna firma może wznowić działanie.

Przywracając do innej lokalizacji, należy użyć kopii zapasowej, aby przeprowadzić migrację pełnej bazy danych do innej lokalizacji, takiej jak baza danych w chmurze.

Kiedy należy używać kopii zapasowej i przywracania

Narzędzia do tworzenia kopii zapasowych tworzą prostą i dokładną kopię bazy danych. Po przywróceniu w bazie danych w chmurze uzyskujesz dokładnie te same dane i schematy, które były w systemie lokalnym. Użyj kopii zapasowej i przywracania, aby przeprowadzić migrację bazy danych:

  • Jeśli chcesz przeprowadzić migrację całej bazy danych lub zestawu baz danych w jednej operacji.

  • Jeśli nie musisz wprowadzać żadnych modyfikacji danych, schematu ani innych obiektów bazy danych podczas migracji.

W takich przypadkach można rozważyć użycie kopii zapasowej i przywracania w celu przeprowadzenia migracji:

  • Masz jeden system bazy danych, który ma zostać przeniesiony do chmury z jak najmniejszym zmianami.

  • Chcesz przeprowadzić migrację fragmentacyjną w systemie, który ma wiele baz danych. Każde obciążenie jest obsługiwane przez pełną bazę danych.

Podczas przywracania bazy danych z pliku kopii zapasowej do lokalizacji w chmurze należy wziąć pod uwagę ilość danych, które muszą być wysyłane przez sieć do bazy danych w chmurze. Aby zoptymalizować ten transfer danych, skopiuj kopię zapasową bazy danych do maszyny wirtualnej w tym samym regionie co docelowa baza danych i przywróć ją stamtąd. To przywracanie jest szybsze niż używanie lokalnego pliku kopii zapasowej i jest mniej prawdopodobne, aby powodować rywalizację o przepustowość sieci.

Planowanie tworzenia kopii zapasowej i przywracania w bazach MySQL i MariaDB

Aby utworzyć kopię zapasową bazy danych na serwerze lokalnym, użyj mysqldump narzędzia w wierszu polecenia. Spowoduje to utworzenie pliku .sql przywracanego do bazy danych w chmurze przez przekazanie go do mysql polecenia jako skryptu. Jeśli wolisz narzędzie graficznego interfejsu użytkownika, wybierz aplikację PHPMy Administracja lub MySQL Workbench. Te narzędzia graficznego interfejsu użytkownika mogą tworzyć kopie zapasowe i przywracać dane.

Pamiętaj, że usługi Azure Database for MySQL i Azure Database for MariaDB obsługują tylko aparat InnoDB. Przed wykonaniem kopii zapasowej upewnij się, że wszystkie tabele są konwertowane na innoDB.

Aby uniknąć problemów ze zgodnością, sprawdź, czy numer wersji programu MySQL lub MariaDB używany w chmurze jest zgodny z numerem wersji lokalnego serwera bazy danych. Usługa Azure Database for MySQL obsługuje wersje 5.6, 5.7 i 8.0. Usługa Azure Database for MariaDB obsługuje wersje 10.2 i 10.3. Jeśli na serwerze lokalnym jest używana wcześniejsza wersja, przed migracją do chmury rozważ uaktualnienie do jednej z tych wersji i rozwiązanie wszelkich problemów lokalnych.

Planowanie tworzenia kopii zapasowej i przywracania w usłudze PostgreSQL

Równoważne narzędzia do tworzenia kopii zapasowych i przywracania wiersza polecenia w usłudze PostgreSQL to pg_dump i pg_restore. W przypadku narzędzia do tworzenia kopii zapasowej i przywracania graficznego interfejsu użytkownika użyj usługi Toad Edge.

Kod aplikacji niestandardowej

Jeśli masz obszerne wymagania dotyczące przekształcania danych lub chcesz przeprowadzić nietypową migrację, rozważ napisanie własnego niestandardowego kodu w celu przeniesienia danych z lokalnej bazy danych MySQL, PostgreSQL lub MariaDB do chmury.

Kod niestandardowy może przyjmować wiele formularzy. Wybrany język i struktura zależy głównie od wiedzy zespołu programistycznego:

  • Skrypty SQL wygenerowane na podstawie bazy danych i zmodyfikowane lub opracowane od podstaw.
  • Skompilowany kod z platformy programistycznej, takiej jak .NET lub Java.
  • Skrypty w języku PHP lub Node.js.
  • Skrypty powłoki dla powłoki Bash lub programu PowerShell.

Podejście niestandardowego kodu umożliwia bardzo elastyczne. Dostosowywanie sposobu filtrowania, agregowania i przekształcania danych oraz migracji do wielu miejsc docelowych lub scalania danych z wielu źródeł. Użyj tej metody, jeśli masz wymagania, których nie można spełnić za pomocą gotowego narzędzia do tworzenia kopii zapasowej lub eksportowania.

Wadą tego podejścia jest to, że wymaga więcej inwestycji w czas programowania. Aby kod niestandardowy zmigrował wszystkie dane prawidłowo, musi być szeroko przetestowany przed uruchomieniem ich na rzeczywistych danych. To zadanie wymaga zespołu wykwalifikowanych deweloperów i testerów, a często zwiększa budżet projektu. Jeśli rozważasz pisanie niestandardowego kodu migracji, nie warto lekceważyć czasu i nakładu pracy wymaganego do utworzenia niezawodnego kodu.

Usługa Azure Database Migration Service

Platforma Azure oferuje elastyczną usługę o nazwie Azure Database Migration Service (DMS), która służy do bezproblemowej migracji online z wielu źródeł danych do platform danych platformy Azure. Te platformy obejmują usługi Azure Database for MySQL, Azure Database for MariaDB i Azure Database for PostgreSQL.

Rozważ użycie usługi Azure DMS za każdym razem, gdy chcesz przeprowadzić migrację bazy danych online na platformę Azure.

Migracja początkowa

Aby przeprowadzić migrację za pomocą usługi DMS, należy wykonać następujące zadania:

  1. Utwórz nową docelową bazę danych na platformie Azure na wybranej platformie.
  2. Utwórz nowy projekt migracji danych usługi Azure Database Migration Service (DMS).
  3. Wygeneruj schemat z lokalnych źródłowych baz danych. Jeśli używasz programu MySQL, możesz wygenerować schemat za pomocą polecenia sqldump. Jeśli źródłowa baza danych to PostgreSQL, użyj polecenia pg_dump.
  4. Utwórz pustą bazę danych, która będzie działać jako miejsce docelowe migracji.
  5. Zastosuj schemat do docelowej bazy danych.
  6. Skonfiguruj szczegóły połączenia dla źródłowych i docelowych baz danych w projekcie migracji usługi DMS.
  7. Uruchom projekt migracji usługi DMS. Projekt przesyła dane i generuje raport.
  8. Przejrzyj raport i popraw wszelkie zidentyfikowane problemy.

Migracje online

Usługa Azure DMS to dobre narzędzie do użycia na potrzeby migracji online, w których oryginalna baza danych pozostaje dostępna podczas wykonywania migracji. Użytkownicy nadal wprowadzają zmiany w danych w źródłowej bazie danych. Usługa Azure DMS używa replikacji do synchronizowania tych zmian z zmigrowanej bazy danych. Po zakończeniu migracji ponownie skonfigurujesz aplikacje użytkowników w celu nawiązania połączenia z zmigrowanej bazy danych.

Migrowanie bazy danych MySQL lub MariaDB do usługi Azure SQL Database

Jeśli chcesz przenieść bazę danych hostowaną lokalnie na serwerze bazy danych MySQL do chmury platformy Azure i nie potrzebujesz bazy danych w chmurze, aby uruchomić program MySQL, rozważ migrację do usługi Azure SQL Database. Usługa Azure SQL Database to implementacja PaaS wiodącego w branży aparatu bazy danych programu SQL Server firmy Microsoft. Obejmuje dostępność, skalowalność i zabezpieczenia na poziomie przedsiębiorstwa oraz łatwe monitorowanie i zarządzanie nimi.

Podobnie, jeśli lokalny serwer bazy danych uruchamia bazę danych MariaDB, możesz rozważyć migrację do usługi Azure SQL Database. Proces jest bardzo podobny, ponieważ MariaDB jest rozwidleniem bazy danych MySQL.

Usługa Azure SQL Database jest bardziej funkcjonalna niż usługa Azure Database for MySQL i Azure Database for MariaDB.

Uwaga

Może być konieczne zmodyfikowanie wszystkich aplikacji łączących się z zmigrowanym bazą danych— ponieważ usługa Azure SQL Database używa różnych typów danych, różnych obiektów bazy danych i innego interfejsu API niż MySQL i MariaDB. Skontaktuj się z deweloperami, aby ustalić, ile pracy jest wymagane do przeniesienia aplikacji klienckiej z lokalnej bazy danych MySQL lub MariaDB do bazy danych Azure SQL Database w chmurze.

Asystent migracji do programu SQL Server for MySQL

Jeśli zdecydujesz się przeprowadzić migrację z bazy danych MySQL do usługi Azure SQL Database, możesz użyć wyspecjalizowanego narzędzia: Asystent migracji do programu SQL Server for MySQL. To narzędzie graficznego interfejsu użytkownika łączy się ze źródłową bazą danych MySQL i bazą danych programu SQL Server, która może być bazą danych w usłudze Azure SQL Database.

Po nawiązaniu połączenia asystent kopiuje pełny schemat do usługi Azure SQL Database i konwertuje wszystkie typy danych na odpowiedniki programu SQL Server. Migruje również widoki, procedury, wyzwalacze i inne obiekty. Następnie możesz rozpocząć migrację danych z programu MySQL do usługi Azure SQL Database.

Uwaga

Asystent migracji do programu SQL Server dla programu MySQL nie jest testowany pod kątem migrowania baz danych MariaDB do usługi Azure SQL Database.