Udostępnij za pośrednictwem


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:

  1. Utwórz serwer usługi Azure Database for MySQL przy użyciu witryny Azure Portal.

  2. 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.
  3. 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.

  1. 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ę.

  2. 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.