Samouczek: migrowanie programu MySQL do Azure Database for MySQL w trybie offline przy użyciu usługi DMS

Za pomocą Azure Database Migration Service można przeprowadzić jednorazową pełną migrację bazy danych w lokalnym wystąpieniu programu MySQL w celu Azure Database for MySQL z możliwością szybkiej migracji danych. W tym samouczku przeprowadzimy migrację przykładowej bazy danych z lokalnego wystąpienia programu MySQL 5.7 do Azure Database for MySQL (wersja 5.7) przy użyciu działania migracji offline w Azure Database Migration Service. Mimo że artykuły zakładają, że źródłem jest wystąpienie bazy danych MySQL i obiekt docelowy, który ma być Azure Database for MySQL, można go użyć do migracji z jednego Azure Database for MySQL do innego, zmieniając nazwę i poświadczenia serwera źródłowego. Ponadto obsługiwana jest migracja z serwerów MySQL w niższej wersji (w wersji 5.6 lub nowszej) do wyższych wersji.

Ważne

W przypadku migracji online można użyć narzędzi typu open source, takich jak MyDumper/MyLoader z replikacją typu data-in.

Uwaga

Aby uzyskać skryptową wersję tego środowiska migracji opartą na programie PowerShell, zobacz skryptowalna migracja w trybie offline do Azure Database for MySQL.

Uwaga

Usługa Amazon Relational Database Service (RDS) dla baz danych MySQL i Amazon Aurora (oparta na usłudze MySQL) jest również obsługiwana jako źródła migracji.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Migrowanie schematu bazy danych przy użyciu narzędzia mysqldump.
  • Utwórz wystąpienie usługi Azure Database Migration Service.
  • Utwórz projekt migracji przy użyciu Azure Database Migration Service.
  • Uruchamianie migracji.
  • Monitoruj migrację.

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

  • Posiadanie konta platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.

  • Mieć lokalną bazę danych MySQL w wersji 5.7. Jeśli nie, pobierz i zainstaluj program MySQL Community Edition 5.7.

  • Migracja bazy danych MySQL w trybie offline jest obsługiwana tylko w jednostce SKU usługi DMS w warstwie Premium.

  • Utwórz wystąpienie usługi Azure Database for MySQL. Zapoznaj się z artykułem Używanie aplikacji MySQL Workbench do nawiązywania połączeń z danymi i wykonywania zapytań o nie , aby uzyskać szczegółowe informacje na temat nawiązywania połączenia i tworzenia bazy danych przy użyciu aplikacji Workbench. Wersja Azure Database for MySQL powinna być równa lub wyższa niż lokalna wersja programu MySQL. Na przykład program MySQL 5.7 może przeprowadzić migrację do wersji Azure Database for MySQL 5.7 lub uaktualnić do wersji 8.

  • Utwórz Microsoft azure Virtual Network dla Azure Database Migration Service przy użyciu modelu wdrażania usługi Azure Resource Manager, który zapewnia łączność typu lokacja-lokacja z lokalnymi serwerami źródłowymi przy użyciu usługi ExpressRoute lub sieci VPN. Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej, zobacz dokumentację Virtual Network, a zwłaszcza artykuły szybki start ze szczegółowymi informacjami krok po kroku.

    Uwaga

    Podczas konfigurowania sieci wirtualnej, jeśli używasz usługi ExpressRoute z komunikacją równorzędną sieci w celu Microsoft, dodaj następujące punkty końcowe usługi do podsieci, w której usługa zostanie aprowizowana:

    • Docelowy punkt końcowy bazy danych (na przykład punkt końcowy SQL, punkt końcowy usługi Azure Cosmos DB itd.)
    • Punkt końcowy magazynu
    • Punkt końcowy usługi Service Bus

    Taka konfiguracja jest niezbędna, ponieważ Azure Database Migration Service nie ma łączności z Internetem.

  • Upewnij się, że reguły sieciowej grupy zabezpieczeń sieci wirtualnej nie blokują portu wychodzącego 443 elementu ServiceTag dla usług ServiceBus, Storage i AzureMonitor. Aby uzyskać więcej informacji na temat filtrowania ruchu sieciowej grupy zabezpieczeń sieci wirtualnej, zobacz artykuł Filtrowanie ruchu sieciowego za pomocą sieciowych grup zabezpieczeń.

  • Otwórz zaporę systemu Windows, aby zezwolić na połączenia z Virtual Network dla Azure Database Migration Service uzyskiwania dostępu do źródłowego serwera MySQL, który domyślnie jest portem TCP 3306.

  • W przypadku korzystania z urządzenia zapory przed źródłowymi bazami danych może być konieczne dodanie reguł zapory w celu zezwolenia na połączenia z Virtual Network dla Azure Database Migration Service w celu uzyskania dostępu do źródłowych baz danych na potrzeby migracji.

  • Utwórz regułę zapory na poziomie serwera lub skonfiguruj punkty końcowe usługi sieci wirtualnej dla docelowych Azure Database for MySQL, aby umożliwić Virtual Network dla Azure Database Migration Service dostępu do docelowych baz danych.

  • Źródłowy serwer MySQL musi znajdować się w obsługiwanej bazie danych MySQL Community Edition. Aby określić wersję instancji programu MySQL, w narzędziu MySQL lub środowisku roboczym bazy danych MySQL uruchom następujące polecenie:

    SELECT @@version;
    
  • Usługa Azure Database for MySQL obsługuje wyłącznie tabele InnoDB. Aby przekonwertować tabele MyISAM na format InnoDB, zapoznaj się z artykułem Konwertowanie tabel z formatu MyISAM na InnoDB

  • Użytkownik musi mieć uprawnienia do odczytywania danych w źródłowej bazie danych.

Ustalanie rozmiaru docelowego wystąpienia Azure Database for MySQL

Aby przygotować docelowy serwer Azure Database for MySQL do szybszego ładowania danych przy użyciu Azure Database Migration Service, zalecane są następujące parametry serwera i zmiany konfiguracji.

  • max_allowed_packet — ustaw wartość 1073741824 (tj. 1 GB), aby zapobiec problemom z połączeniem z powodu dużych wierszy.
  • slow_query_log — ustaw wartość WYŁ., aby wyłączyć dziennik wolnych zapytań. Pozwoli to wyeliminować obciążenie spowodowane powolnym rejestrowaniem zapytań podczas ładowania danych.
  • query_store_capture_mode — ustaw wartość NONE, aby wyłączyć magazyn zapytań. Spowoduje to wyeliminowanie narzutów spowodowanych przez działania próbkowania przez magazyn zapytań.
  • innodb_buffer_pool_size — Innodb_buffer_pool_size można zwiększyć tylko przez skalowanie w górę zasobów obliczeniowych dla serwera Azure Database for MySQL. Skaluj serwer w górę do 64 rdzeni wirtualnych Ogólnego przeznaczenia SKU z warstwy cenowej portalu podczas migracji, aby zwiększyć innodb_buffer_pool_size.
  • & innodb_io_capacity innodb_io_capacity_max — zmień wartość na 9000 z parametrów serwera w Azure Portal, aby zwiększyć wykorzystanie operacji we/wy w celu zoptymalizowania pod kątem szybkości migracji.
  • & innodb_write_io_threads innodb_write_io_threads — zmień wartość na 4 z parametrów serwera w Azure Portal, aby zwiększyć szybkość migracji.
  • Skalowanie w górę warstwy magazynowania — liczbę operacji we/wy na sekundę dla serwera Azure Database for MySQL zwiększa się wraz ze wzrostem warstwy magazynowania.
    • W przypadku wdrożenia pojedynczego serwera w celu przyspieszenia ładowania zalecamy zwiększenie warstwy magazynowania w celu zwiększenia aprowizowania operacji we/wy na sekundę.
    • W opcji wdrażania serwera elastycznego zalecamy skalowanie (zwiększanie lub zmniejszanie) liczby operacji we/wy na sekundę niezależnie od rozmiaru magazynu.
    • Należy pamiętać, że rozmiar magazynu można skalować tylko w górę, a nie w dół.

Po zakończeniu migracji można przywrócić parametry serwera i konfigurację do wartości wymaganych przez obciążenie.

Migrowanie schematu bazy danych

Aby przenieść wszystkie obiekty bazy danych, takie jak schematy tabel, indeksy i procedury składowane, musimy wyodrębnić schemat ze źródłowej bazy danych i zastosować do docelowej bazy danych. Aby wyodrębnić schemat, użyj polecenia mysqldump z parametrem --no-data. W tym celu potrzebna jest maszyna, która może łączyć się zarówno ze źródłową bazą danych MySQL, jak i z docelową Azure Database for MySQL.

Aby wyeksportować schemat przy użyciu narzędzia mysqldump, uruchom następujące polecenie:

mysqldump -h [servername] -u [username] -p[password] --databases [db name] --no-data > [schema file path]

Przykład:

mysqldump -h 10.10.123.123 -u root -p --databases migtestdb --no-data > d:\migtestdb.sql

Aby zaimportować schemat do Azure Database for MySQL docelowego, uruchom następujące polecenie:

mysql.exe -h [servername] -u [username] -p[password] [database]< [schema file path]

Przykład:

mysql.exe -h mysqlsstrgt.mysql.database.azure.com -u docadmin@mysqlsstrgt -p migtestdb < d:\migtestdb.sql

Jeśli masz klucze obce lub wyzwalacze w schemacie, obciążenie danych równoległych podczas migracji będzie obsługiwane przez zadanie migracji. Podczas migracji schematu nie ma potrzeby porzucania kluczy obcych ani wyzwalaczy.

Rejestrowanie dostawcy zasobów

Przed utworzeniem pierwszego wystąpienia usługi Database Migration Service zarejestruj dostawcę zasobów Microsoft.DataMigration.

  1. Zaloguj się w witrynie Azure Portal. Wyszukaj i wybierz pozycję Subskrypcje.

    Wyświetlanie subskrypcji w portalu

  2. Wybierz subskrypcję, w której chcesz utworzyć wystąpienie Azure Database Migration Service, a następnie wybierz pozycję Dostawcy zasobów.

    Wyświetlanie dostawców zasobów

  3. Wyszukaj pozycję migracja, a następnie wybierz pozycję Zarejestruj dla Microsoft. DataMigration.

    Rejestrowanie dostawcy zasobów

Tworzenie wystąpienia Database Migration Service

  1. W witrynie Azure Portal wybierz pozycję + Utwórz zasób, wyszukaj usługę Azure Database Migration Service, a następnie wybierz usługę Azure Database Migration Service na liście rozwijanej.

    Azure Marketplace

  2. Na ekranie Azure Database Migration Service wybierz polecenie Utwórz.

    Tworzenie wystąpienia usługi Azure Database Migration Service

  3. Na ekranie Tworzenie usługi migracji określ nazwę usługi, subskrypcję oraz nową lub istniejącą grupę zasobów.

  4. Wybierz warstwę cenową i przejdź do ekranu sieci. Możliwość migracji offline jest dostępna tylko w warstwie cenowej Premium.

    Aby uzyskać więcej informacji na temat kosztów i warstw cenowych, zobacz stronę z cennikiem.

    Konfigurowanie ustawień podstawowych Azure Database Migration Service

  5. Wybierz istniejącą sieć wirtualną z listy lub podaj nazwę nowej sieci wirtualnej do utworzenia. Przejdź do ekranu przeglądania i tworzenia. Opcjonalnie możesz dodać tagi do usługi przy użyciu ekranu tagów.

    Sieć wirtualna zapewnia Azure Database Migration Service dostęp do źródłowego SQL Server i docelowego wystąpienia bazy danych Azure SQL.

    Konfigurowanie ustawień sieci Azure Database Migration Service

    Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej w Azure Portal, zobacz artykuł Tworzenie sieci wirtualnej przy użyciu Azure Portal.

  6. Przejrzyj konfiguracje i wybierz pozycję Utwórz , aby utworzyć usługę.

    tworzenie Azure Database Migration Service

Tworzenie projektu migracji

Po utworzeniu usługi znajdź ją w witrynie Azure Portal, otwórz ją, a następnie utwórz nowy projekt migracji.

  1. W witrynie Azure Portal wybierz pozycję Wszystkie usługi, wyszukaj usługę Azure Database Migration Service, a następnie wybierz pozycję Azure Database Migration Services.

    Lokalizowanie wszystkich wystąpień Azure Database Migration Service

  2. Wybierz wystąpienie usługi migracji z wyników wyszukiwania i wybierz pozycję + Nowy projekt migracji.

    Tworzenie nowego projektu migracji

  3. Na ekranie Nowy projekt migracji określ nazwę projektu, w polu Wyboru Typ serwera źródłowego wybierz pozycję MySQL, w polu Wyboru Typ serwera docelowego wybierz pozycję Azure Database For MySQL i w polu Wyboru Typ działania migracji wybierz pozycję Migracja danych. Wybierz pozycję Utwórz i uruchom działanie.

    Tworzenie projektu usługi Database Migration Service

    Uwaga

    Alternatywnie możesz wybrać pozycję Utwórz projekt tylko , aby utworzyć projekt migracji teraz i wykonać migrację później.

Konfigurowanie projektu migracji

  1. Na ekranie Wybierz źródło określ szczegóły połączenia dla źródłowego wystąpienia mySQL, a następnie wybierz pozycję Dalej: Wybierz element docelowy>>

    Ekran Dodawania szczegółów źródła

  2. Na ekranie Wybierz obiekt docelowy określ szczegóły połączenia dla wystąpienia docelowego Azure Database for MySQL, a następnie wybierz pozycję Dalej: Wybierz bazy danych>>

    Ekran Dodawania szczegółów docelowych

  3. Na ekranie Wybieranie baz danych zamapuj źródło i docelową bazę danych na potrzeby migracji, a następnie wybierz pozycję Dalej: Skonfiguruj ustawienia>> migracji. Możesz wybrać opcję Ustaw tylko do odczytu serwera źródłowego , aby źródło było tylko do odczytu, ale należy zachować ostrożność, że jest to ustawienie na poziomie serwera. W przypadku wybrania ustawia cały serwer na tylko do odczytu, a nie tylko wybrane bazy danych.

    Jeśli docelowa baza danych zawiera tę samą nazwę bazy danych co źródłowa baza danych, Azure Database Migration Service domyślnie wybiera docelową bazę danych. Ekran Wybieranie szczegółów bazy danych

    Uwaga

    Chociaż w tym kroku można wybrać wiele baz danych, ale istnieją ograniczenia dotyczące liczby i szybkości migracji baz danych, ponieważ każda baza danych będzie współdzielić obliczenia. W przypadku domyślnej konfiguracji jednostki SKU w warstwie Premium każde zadanie migracji podejmie próbę przeprowadzenia równoległej migracji dwóch tabel. Te tabele mogą pochodzić z dowolnej z wybranych baz danych. Jeśli nie jest to wystarczająco szybkie, możesz podzielić działania migracji bazy danych na różne zadania migracji i skalować je w wielu usługach. Istnieje również limit wynoszący 10 wystąpień Azure Database Migration Service na subskrypcję na region. Aby uzyskać bardziej szczegółową kontrolę nad przepływnością i równoległością migracji, zapoznaj się z artykułem PowerShell: Uruchamianie migracji offline z bazy danych MySQL do Azure Database for MySQL przy użyciu usługi DMS

  4. Na ekranie Konfigurowanie ustawień migracji wybierz tabele, które mają być częścią migracji, a następnie wybierz pozycję Dalej : Podsumowanie>>. Jeśli tabele docelowe mają jakiekolwiek dane, nie są domyślnie wybrane, ale można je jawnie wybrać i zostaną obcięte przed rozpoczęciem migracji.

    Ekran Wybieranie tabel

  5. Na ekranie Podsumowanie w polu tekstowym Nazwa działania określ nazwę działania migracji i przejrzyj podsumowanie, aby upewnić się, że szczegóły źródła i elementu docelowego są zgodne z wcześniej określonymi informacjami.

    Podsumowanie projektu migracji

  6. Wybierz pozycję Rozpocznij migrację. Zostanie wyświetlone okno działania migracji, a Stan działania będzie określony jako Inicjowanie. Stan zmieni się na Uruchomiono po rozpoczęciu migracji tabeli.

    Uruchamianie migracji

Monitorowanie migracji

  1. Na ekranie działania migracji wybierz pozycję Odśwież , aby zaktualizować ekran i zobaczyć postęp liczby ukończonych tabel.

  2. Możesz kliknąć nazwę bazy danych na ekranie działania, aby wyświetlić stan każdej tabeli podczas migracji. Wybierz pozycję Odśwież , aby zaktualizować ekran.

    Monitorowanie migracji

Kończenie migracji

  1. Na ekranie działania migracji wybieraj polecenie Odśwież, aby zaktualizować ekran, aż do momentu, gdy Stan migracji zmieni się na Ukończono.

    Kończenie migracji

Działania po migracji

Migracja jednorazowa w ramach migracji w trybie offline to proces zależny od aplikacji, który jest poza zakresem tego dokumentu, ale zalecane są następujące działania po migracji:

  1. Utwórz identyfikatory logowania, role i uprawnienia zgodnie z wymaganiami aplikacji.
  2. Utwórz ponownie wszystkie wyzwalacze w docelowej bazie danych zgodnie z wyodrębnionym podczas kroku przed migracją.
  3. Przeprowadź test poprawności działania aplikacji z docelową bazą danych w celu certyfikowania migracji.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z Database Migration Service, możesz usunąć usługę, wykonując następujące kroki:

  1. W witrynie Azure Portal wybierz pozycję Wszystkie usługi, wyszukaj usługę Azure Database Migration Service, a następnie wybierz pozycję Azure Database Migration Services.

    Lokalizowanie wszystkich wystąpień usługi DMS

  2. Wybierz wystąpienie usługi migracji z wyników wyszukiwania i wybierz pozycję Usuń usługę.

    Usuwanie usługi migracji

  3. W oknie dialogowym potwierdzenia wpisz nazwę usługi w polu tekstowym WPISZ NAZWĘ USŁUGI MIGRACJI BAZY DANYCH , a następnie wybierz pozycję Usuń.

    Potwierdzanie usunięcia usługi migracji

Następne kroki