Udostępnij przez


Migrowanie lokalnego programu MySQL do usługi Azure Database for MySQL: migracja danych za pomocą aplikacji MySQL Workbench

Migracja danych ma kluczowe znaczenie dla przenoszenia baz danych MySQL ze środowisk lokalnych do usługi Azure Database for MySQL. Ten artykuł koncentruje się na używaniu aplikacji MySQL Workbench— zaawansowanego narzędzia, które upraszcza migrację. Korzystając z aplikacji MySQL Workbench, można wydajnie przesyłać dane przy jednoczesnym zminimalizowaniu przestojów i zapewnieniu integralności danych. Ten przewodnik przeprowadzi Cię przez szczegółowy proces konfigurowania i wykonywania migracji danych przy użyciu aplikacji MySQL Workbench, wyróżniając najlepsze rozwiązania i potencjalne pułapki, których można uniknąć. Niezależnie od tego, czy jesteś doświadczonym administratorem bazy danych, czy nowym administratorem bazy danych, ten artykuł zawiera szczegółowe informacje i techniki potrzebne do zapewnienia bezproblemowej i pomyślnej migracji na platformę Azure.

Wymagania wstępne

Migrowanie lokalnego programu MySQL do usługi Azure Database for MySQL: migracja danych

Ustawienia

Wykonaj wszystkie kroki opisane w przewodniku Instalacji, aby utworzyć środowisko, aby wykonać poniższe kroki.

Konfigurowanie parametrów serwera (źródło)

W zależności od wybranego typu migracji (offline a online) chcesz ocenić, czy zamierzasz zmodyfikować parametry serwera w celu obsługi szybkiego ruchu wychodzącego danych. Jeśli korzystasz z trybu online, może nie być konieczne wykonanie żadnych czynności względem parametrów serwera, ponieważ prawdopodobnie wykonasz replikację i będziesz mieć synchronizację binlog danych samodzielnie. Jeśli jednak przeprowadzasz migrację w trybie offline, po zatrzymaniu ruchu aplikacji możesz przełączyć parametry serwera z obsługi obciążenia na obsługę eksportu.

Konfigurowanie parametrów serwera (element docelowy)

Przed rozpoczęciem procesu importowania do usługi Azure Database for MySQL przejrzyj parametry serwera. Parametry serwera można pobrać i ustawić przy użyciu witryny Azure Portal lub wywołać polecenia cmdlet programu Azure PowerShell for MySQL w celu wprowadzenia zmian.

Wykonaj następujący skrypt programu PowerShell, aby pobrać wszystkie parametry:

\[Net.ServicePointManager\]::SecurityProtocol = \[Net.SecurityProtocolType\]::Tls
12

Install-Module -Name Az.MySql
Connect-AzAccount
$rgName = "{RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Get-AzMySqlConfiguration -ResourceGroupName $rgName -ServerName $serverName
mysql --host {servername}.mysql.database.azure.com --database mysql --user
{u sername}@{servername} -p --ssl-ca=c:\\temp\\BaltimoreCyberTrustRoot.crt.cer
-A -e "SHOW GLOBAL VARIABLES;" \> c:\\temp\\settings\_azure.txt

W nowym pliku "settings_azure.txt" można zobaczyć domyślne parametry serwera usługi Azure Database for MySQL, jak pokazano w dodatku .

Aby obsługiwać migrację, ustaw docelowe parametry wystąpienia programu MySQL, aby umożliwić szybszy ruch przychodzący. Przed rozpoczęciem migracji danych należy ustawić następujące parametry serwera:

  • max\_allowed\_packet — ustaw parametr na 1073741824 (czyli 1 GB) lub największy rozmiar wiersza w bazie danych, aby zapobiec wszelkim problemom z przepełnieniem z powodu długich wierszy. Rozważ dostosowanie tego parametru, jeśli istnieją duże wiersze obiektów BLOB, które należy ściągnąć (lub odczytać).

  • innodb\_buffer\_pool\_size — Skaluj serwer w górę do 32 jednostek SKU zoptymalizowanych pod kątem pamięci wirtualnej z warstwy cenowej portalu podczas migracji, aby zwiększyć innodb_buffer_pool_size. Innodb_buffer_pool_size można zwiększyć tylko przez skalowanie w górę zasobów obliczeniowych dla serwera usługi Azure Database for MySQL. Parametry serwera referencyjnego w usłudze Azure Database for MySQL dla maksymalnej wartości dla warstwy. Maksymalna wartość w systemie zoptymalizowanym pod kątem pamięci 32 rdzeni wirtualnych to 132070244352.

  • innodb\_io\_capacity & innodb\_io\_capacity\_max — zmień parametr , aby 9000 poprawić wykorzystanie operacji we/wy, aby zoptymalizować szybkość migracji.

  • max\_connections — W przypadku używania narzędzia, które generuje wiele wątków w celu zwiększenia przepływności, zwiększ połączenia w celu obsługi tego narzędzia. Wartość domyślna to 151, wartość maksymalna to 5000.

    Uwaga

    Podczas wykonywania skalowania należy zachować ostrożność. Nie można cofnąć niektórych operacji, takich jak skalowanie magazynu.

Te ustawienia można zaktualizować przy użyciu poniższych poleceń cmdlet programu Azure PowerShell:

Install-Module -Name Az.MySql
$rgName = " {RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";

Select-AzSubscription -Subscription "{SUBSCRIPTION\_ID}"
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 1073741824
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName
$rgna me -ServerName $serverName -Value 9000
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 9000

\#required if You've functions

Update-AzMySqlConfiguration -Name log\_bin\_trust\_function\_creators
-ResourceGr oupName $rgname -ServerName $serverName -Value ON

Data

Wybór narzędzia

Po przeprowadzeniu migracji obiektów bazy danych i użytkowników z systemu źródłowego można rozpocząć migrację. Bazy danych działające w programie MySQL w wersji 8.0 nie mogą migrować obciążenia przy użyciu usługi Azure DMS. Zamiast tego użytkownicy migracji powinni używać aplikacji MySQL Workbench.

Ręczne kroki importowania i eksportowania

  • Otwórz aplikację MySQL Workbench i połącz się jako użytkownik główny lokalnej bazy danych.

  • W obszarze **Zarządzanie**, wybierz pozycję **Eksport danych**. Wybierz schemat reg_app.

  • W obszarze Obiekty do wyeksportowania wybierz pozycję Zrzut procedury składowane i funkcje, zdarzenia zrzutu i wyzwalacze zrzutu.

  • W obszarze Opcje eksportu wybierz pozycję Eksportuj do pliku samodzielnego.

  • Ponadto zaznacz pole wyboru Uwzględnij utwórz schemat . Zapoznaj się z poniższym obrazem, aby zaobserwować poprawną konfigurację narzędzia mysqldump.

    Zrzut ekranu przedstawiający schemat tworzenia dołączania.

      Test

  • Jeśli którakolwiek z tych opcji jest niedostępna, prawdopodobnie są one utrudnione przez okienko Dane wyjściowe. Wystarczy zmienić układ edytora.

    Zrzut ekranu przedstawiający układ edytora.

      Test

  • Wybierz kartę Eksportuj postęp .

  • Wybierz pozycję Rozpocznij eksportowanie, zwróć uwagę, że aplikacja MySQL Workbench wykonuje wywołania mysqldump do narzędzia.

  • Otwórz nowo utworzony skrypt eksportu.

  • Znajdź dowolne DEFINER instrukcje i zmień na prawidłowego użytkownika lub usuń je całkowicie.

Uwaga

Można to zrobić, przekazując polecenie --skip-definer mysqldump. Nie jest to opcja w aplikacji MySQL Workbench; dlatego wiersze muszą zostać ręcznie usunięte w poleceniach eksportu. Mimo że zwracamy tutaj uwagę na cztery elementy do usunięcia, mogą istnieć inne elementy, które mogą zakończyć się niepowodzeniem podczas migracji z jednej wersji programu MySQL do innej (np. nowych słów zarezerwowanych).

  • Znajdź SET GLOBAL instrukcje i zmień na prawidłowego użytkownika lub usuń je całkowicie.

  • Upewnij się, że sql\_mode nie ustawiono wartości NO\_AUTO\_CREATE\_USER.

  • hello\_world Usuń funkcję.

  • W aplikacji MySQL Workbench utwórz nowe połączenie z usługą Azure Database for MySQL.

    • W polu Nazwa hosta wprowadź pełny serwer DNS (np. servername.mysql.database.azure.com).

    • Wprowadź nazwę użytkownika (np. sqlroot@servername).

    • Wybierz kartę SSL .

    • W przypadku pliku urzędu certyfikacji SSL przejdź do pliku klucza BaltimoreCyberTrustRoot.crt.cer .

    • Wybierz pozycję Testuj połączenie, upewnij się, że połączenie zostanie ukończone.

    • Wybierz przycisk OK.

      Zrzut ekranu przedstawiający okno dialogowe Połączenie z bazą danych MySQL.

      Zostanie wyświetlone okno dialogowe Połączenie z bazą danych MySQL.

  • Wybierz pozycję Plik Otwórz> skrypt SQL.

  • Przejdź do pliku zrzutu, wybierz pozycję Otwórz.

  • Wybierz polecenie Wykonaj.

Aktualizowanie aplikacji w celu obsługi protokołu SSL

  • Przejdź do interfejsu API serwera Java w programie Visual Studio Code.

  • Otwórz plik launch.json.

  • Zaktualizuj DB_CONNECTION_URL, aby zanotować jdbc:mysql://serverDNSname:3306/reg\_app?useUnicode=true\&useJDBCCompliantT imezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC\&verifySe rverCertificate=true\&useSSL=true\&requireSSL=true\&noAccessToProcedureBodie s=true. dodatkowe parametry PROTOKOŁU SSL.

  • Zaktualizuj DB_USER_NAME , aby conferenceuser@servername.

  • Uruchom konfigurację debugowania i upewnij się, że aplikacja działa lokalnie z nową bazą danych.

Przywracanie parametrów serwera

Następujące parametry można zmienić w wystąpieniu docelowym usługi Azure Database for MySQL. Te parametry można ustawić za pośrednictwem witryny Azure Portal lub za pomocą poleceń cmdlet programu Azure PowerShell for MySQL.

$rgName = "YourRGName";
$serverName = "servername";
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 536870912
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName $rgna
me -ServerName $serverName -Value 200
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 2000

Zmienianie parametry połączenia dla interfejsu API języka Java

  • Użyj następujących poleceń, aby zmienić parametry połączenia dla interfejsu API Języka Java usługi App Service
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}

Uwaga

Pamiętaj, że możesz użyć portalu, aby ustawić parametry połączenia.

  • Ponowne uruchamianie interfejsu API usługi App Service
az webapp restart -g $rgName -n $app\_name

Pomyślnie ukończono migrację lokalną do usługi Azure Database for MySQL.

Następny krok