Migrowanie dużych baz danych do usługi Azure Database for MySQL przy użyciu narzędzia mydumper/myloader
DOTYCZY: Azure Database for MySQL — pojedynczy serwer usługi Azure Database for MySQL — serwer elastyczny
Azure Database for MySQL to usługa zarządzana, która umożliwia uruchamianie i skalowanie w chmurze baz danych MySQL o wysokiej dostępności, a także zarządzanie nimi. Aby przeprowadzić migrację baz danych MySQL większych niż 1 TB do usługi Azure Database for MySQL, rozważ użycie narzędzi społeczności, takich jak mydumper/myloader, które zapewniają następujące korzyści:
- Równoległość, aby pomóc skrócić czas migracji.
- Lepsza wydajność dzięki unikaniu kosztownych procedur konwersji zestawu znaków.
- Format danych wyjściowych z oddzielnymi plikami tabel, metadanych itp., który ułatwia wyświetlanie/analizowanie danych. Spójność dzięki zachowaniu migawki we wszystkich wątkach.
- Dokładne położenie dziennika podstawowego i repliki.
- Łatwe zarządzanie, ponieważ obsługują one wyrażenia regularne zgodne z platformą Perl (PCRE) do określania dołączania i wykluczania baz danych i tabel.
- Schemat i dane są połączone. Nie trzeba go obsługiwać oddzielnie, podobnie jak inne narzędzia do migracji logicznej.
W tym przewodniku Szybki start pokazano, jak zainstalować, utworzyć kopię zapasową i przywrócić bazę danych MySQL przy użyciu narzędzia mydumper/myloader.
Wymagania wstępne
Przed rozpoczęciem migracji bazy danych MySQL należy wykonać następujące kroki:
Utwórz serwer usługi Azure Database for MySQL przy użyciu witryny Azure Portal.
Utwórz maszynę wirtualną platformy Azure z systemem Linux przy użyciu witryny Azure Portal (najlepiej ubuntu).
Uwaga
Przed zainstalowaniem narzędzi należy wziąć pod uwagę następujące kwestie:
- Jeśli źródło jest lokalne i ma połączenie o dużej przepustowości z platformą Azure (przy użyciu usługi ExpressRoute), rozważ zainstalowanie narzędzia na maszynie wirtualnej platformy Azure.
- Jeśli masz wyzwanie w zakresie przepustowości między źródłem a obiektem docelowym, rozważ zainstalowanie narzędzia mydumper w pobliżu źródła i modułu myloader w pobliżu serwera docelowego. Narzędzia Azcopy umożliwiają przenoszenie danych ze środowiska lokalnego lub innych rozwiązań w chmurze na platformę Azure.
- Jeśli źródło jest lokalne i ma połączenie o dużej przepustowości z platformą Azure (przy użyciu usługi ExpressRoute), rozważ zainstalowanie narzędzia na maszynie wirtualnej platformy Azure.
Zainstaluj klienta mysql, wykonaj następujące czynności:
- Zaktualizuj indeks pakietu na maszynie wirtualnej platformy Azure z systemem Linux, uruchamiając następujące polecenie:
sudo apt update
- Zainstaluj pakiet klienta mysql, uruchamiając następujące polecenie:
sudo apt install mysql-client
Instalowanie narzędzia mydumper/myloader
Aby zainstalować aplikację mydumper/myloader, wykonaj następujące kroki.
W zależności od dystrybucji systemu operacyjnego pobierz odpowiedni pakiet dla narzędzia mydumper/myloader, uruchamiając następujące polecenie:
wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Uwaga
$(lsb_release -cs) pomaga zidentyfikować dystrybucję.
Aby zainstalować pakiet .deb dla narzędzia mydumper, uruchom następujące polecenie:
sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Napiwek
Polecenie używane do zainstalowania pakietu różni się w zależności od dystrybucji systemu Linux, ponieważ instalatory są różne. Mydumper/myloader jest dostępny dla następujących dystrybucji Fedora, RedHat, Ubuntu, Debian, openSUSE i MacOSX. Aby uzyskać więcej informacji, zobacz How to install mydumper (Jak zainstalować aplikację mydumper)
Tworzenie kopii zapasowej przy użyciu narzędzia mydumper
Aby utworzyć kopię zapasową przy użyciu narzędzia mydumper, uruchom następujące polecenie:
mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl --regex '^(<Db_name>\.)' -L mydumper-logs.txt
To polecenie używa następujących zmiennych:
--host: host, z który ma nawiązać połączenie
--user: nazwa użytkownika z niezbędnymi uprawnieniami
--password: Hasło użytkownika
--rows: Spróbuj podzielić tabele na fragmenty tych wielu wierszy
--outputdir: Katalog, aby zrzucić pliki wyjściowe do
--regex: Wyrażenie regularne dla dopasowywania bazy danych.
--trx-consistency-only: Tylko spójność transakcyjna
--threads: liczba wątków do użycia, wartość domyślna 4. Zalecane użycie wartości równej 2x rdzenia wirtualnego komputera.
Uwaga
Aby uzyskać więcej informacji na temat innych opcji, możesz użyć polecenia mydumper, uruchom następujące polecenie: mydumper --help . Aby uzyskać więcej informacji, zobacz dokumentację mydumper\myloader
Aby równolegle zrzucić wiele baz danych, można zmodyfikować zmienną wyrażeń regularnych, jak pokazano w przykładzie: regex '^(DbName1.|DbName2.)
Przywracanie bazy danych przy użyciu narzędzia myloader
Aby przywrócić kopię zapasową bazy danych przy użyciu narzędzia mydumper, uruchom następujące polecenie:
myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
To polecenie używa następujących zmiennych:
- --host: host, z który ma nawiązać połączenie
- --user: nazwa użytkownika z niezbędnymi uprawnieniami
- --password: Hasło użytkownika
- --directory: lokalizacja, w której jest przechowywana kopia zapasowa.
- --queries-per-transaction: Zaleca ustawienie wartości nie większej niż 500
- --threads: liczba wątków do użycia, wartość domyślna 4. Zalecane użycie wartości równej 2x rdzenia wirtualnego komputera
Napiwek
Aby uzyskać więcej informacji na temat innych opcji, których można użyć z narzędziem myloader, uruchom następujące polecenie: myloader --help
Po przywróceniu bazy danych zawsze zaleca się zweryfikowanie spójności danych między źródłowymi i docelowymi bazami danych.
Uwaga
Prześlij wszelkie problemy lub opinie dotyczące narzędzi mydumper/myloader tutaj.
Powiązana zawartość
- projekt mydumper/myloader w usłudze GitHub
- jak migrować duże bazy danych MySQL
- Minimalna migracja przestojów usługi Azure Database for MySQL — pojedynczy serwer do usługi Azure Database for MySQL — serwer elastyczny
- Replikowanie danych do elastycznego serwera usługi Azure Database for MySQL
- Konfigurowanie replikacji serwera elastycznego usługi Azure Database for MySQL
- błędy migracji