Migrowanie bazy danych MariaDB do usługi Azure Database for MariaDB przy użyciu metody zrzutu i przywracania

Ważne

Usługa Azure Database for MariaDB znajduje się na ścieżce wycofania. Zdecydowanie zalecamy przeprowadzenie migracji do usługi Azure Database for MySQL. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for MySQL, zobacz Co się dzieje z usługą Azure Database for MariaDB?.

W tym artykule opisano dwa typowe sposoby tworzenia kopii zapasowych i przywracania baz danych w usłudze Azure Database for MariaDB:

  • Dump and restore by using a command-line tool (using mysqldump).
  • Dump and restore using phpMy Administracja (Zrzut i przywracanie przy użyciu języka phpMy Administracja.

Wymagania wstępne

Przed rozpoczęciem migracji bazy danych wykonaj następujące czynności:

Korzystanie z typowych narzędzi

Użyj typowych narzędzi i narzędzi, takich jak MySQL Workbench lub mysqldump, aby zdalnie połączyć i przywrócić dane do bazy danych azure database for MariaDB. Użyj tych narzędzi na komputerze klienckim z połączeniem internetowym, aby nawiązać połączenie z usługą Azure Database for MariaDB. Najlepszym rozwiązaniem w zakresie zabezpieczeń jest użycie połączenia szyfrowanego za pomocą protokołu SSL. Aby uzyskać więcej informacji, zobacz Konfigurowanie łączności SSL w usłudze Azure Database for MariaDB. Nie musisz przenosić plików zrzutu do żadnej specjalnej lokalizacji w chmurze podczas migracji danych do bazy danych azure database for MariaDB.

Typowe zastosowania zrzutu i przywracania

Możesz użyć narzędzi MySQL, takich jak mysqldump i mysqlpump, aby zrzucić i załadować bazy danych do serwera usługi Azure Database for MariaDB w kilku typowych scenariuszach.

  • Użyj zrzutów baz danych podczas migrowania całej bazy danych. To zalecenie jest przechowywane podczas przenoszenia dużej ilości danych lub gdy chcesz zminimalizować przerwy w działaniu usług dla witryn lub aplikacji na żywo.

  • Upewnij się, że wszystkie tabele w bazie danych używają aparatu magazynu InnoDB podczas ładowania danych do bazy danych Azure database for MariaDB. Usługa Azure Database for MariaDB obsługuje tylko aparat magazynu InnoDB i nie ma innych aparatów magazynu. Jeśli tabele są skonfigurowane z innymi aparatami magazynu, przekonwertuj je na format aparatu InnoDB przed migracją do bazy danych Azure database for MariaDB.

    Jeśli na przykład masz aplikację WordPress lub aplikację internetową korzystającą z tabel MyISAM, najpierw przekonwertuj te tabele, migrując je do formatu InnoDB przed przywróceniem ich do bazy danych Azure database for MariaDB. Użyj klauzuli ENGINE=InnoDB , aby ustawić aparat do użycia do tworzenia nowej tabeli, a następnie przenieść dane do zgodnej tabeli przed jego przywróceniem.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • Aby uniknąć problemów ze zgodnością podczas dumpingu baz danych, upewnij się, że używasz tej samej wersji bazy danych MariaDB w systemach źródłowych i docelowych. Jeśli na przykład istniejący serwer MariaDB ma wersję 10.2, należy przeprowadzić migrację do bazy danych azure dla bazy danych MariaDB skonfigurowanej do uruchamiania wersji 10.2. Polecenie mysql_upgrade nie działa na serwerze usługi Azure Database for MariaDB i nie jest obsługiwane. Jeśli musisz przeprowadzić uaktualnienie między wersjami bazy danych MariaDB, najpierw zrzuć lub wyeksportować wcześniejszą wersję bazy danych do nowszej wersji bazy danych MariaDB we własnym środowisku. Następnie możesz uruchomić mysql_upgrade polecenie przed próbą migracji do bazy danych azure database for MariaDB.

Zagadnienia dotyczące wydajności

Aby zoptymalizować wydajność podczas dumpingu dużych baz danych, należy pamiętać o następujących kwestiach:

  • Użyj opcji w pliku exclude-triggers mysqldump. Wyklucz wyzwalacze z plików zrzutu, aby uniknąć uruchamiania poleceń wyzwalacza podczas przywracania danych.
  • single-transaction Użyj opcji , aby ustawić tryb izolacji transakcji na powtarzalny odczyt i wysłać instrukcję START TRANSACTION SQL do serwera przed dumpingiem danych. Dumping wielu tabel w ramach jednej transakcji powoduje, że podczas przywracania zużywany jest dodatkowy magazyn. Opcja single-transaction i lock-tables opcja wykluczają się wzajemnie. Dzieje się tak, ponieważ tabele BLOKADY powodują niejawne zatwierdzanie oczekujących transakcji. Aby zrzucić duże tabele, połącz single-transaction opcję z opcją quick .
  • extended-insert Użyj składni z wieloma wierszami, która zawiera kilka list VALUE. Takie podejście powoduje mniejszy plik zrzutu i przyspiesza wstawianie podczas ponownego ładowania pliku.
  • order-by-primary Użyj opcji w pliku mysqldump podczas dumpingu baz danych, aby dane zostały skryptowane w kolejności klucza podstawowego.
  • disable-keys Użyj opcji w pliku mysqldump podczas dumpingu danych, aby wyłączyć ograniczenia klucza obcego przed obciążeniem. Wyłączenie kontroli kluczy obcych pomaga zwiększyć wydajność. Włącz ograniczenia i zweryfikuj dane po załadowaniu, aby zapewnić integralność referencyjną.
  • W razie potrzeby używaj tabel partycjonowanych.
  • Ładowanie danych równolegle. Unikaj zbyt dużej równoległości, co może spowodować osiągnięcie limitu zasobów i monitorowanie zasobów przy użyciu metryk dostępnych w witrynie Azure Portal.
  • defer-table-indexes Użyj opcji w pliku mysqlpump podczas dumpingu baz danych, aby tworzenie indeksu odbywało się po załadowaniu danych tabeli.
  • Skopiuj pliki kopii zapasowej do magazynu obiektów blob platformy Azure i wykonaj przywracanie z tego miejsca. Takie podejście powinno być znacznie szybsze niż wykonywanie przywracania w Internecie.

Tworzenie pliku kopii zapasowej

Aby utworzyć kopię zapasową istniejącej bazy danych MariaDB na lokalnym serwerze lokalnym lub na maszynie wirtualnej, uruchom następujące polecenie przy użyciu narzędzia mysqldump:

mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

Parametry, które należy podać, to:

  • <uname>: Nazwa użytkownika bazy danych
  • <Pass>: hasło bazy danych (pamiętaj, że nie ma spacji między -p i hasłem)
  • <dbname>: nazwa bazy danych
  • <backupfile.sql>: nazwa pliku kopii zapasowej bazy danych
  • <--opt>: opcja mysqldump

Aby na przykład utworzyć kopię zapasową bazy danych o nazwie testdb na serwerze MariaDB z nazwą użytkownika testuser i bez hasła do pliku testdb_backup.sql, użyj następującego polecenia. Polecenie tworzy kopię zapasową bazy danych w pliku o nazwie testdb_backup.sql, który zawiera wszystkie instrukcje testdb SQL potrzebne do ponownego utworzenia bazy danych.

mysqldump -u root -p testdb > testdb_backup.sql

Aby wybrać określone tabele do utworzenia kopii zapasowej w bazie danych, wyświetl listę nazw tabel rozdzielonych spacjami. Aby na przykład utworzyć kopię zapasową tylko tabel table1 i table2 z bazy danych testdb, wykonaj następujące czynności:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Aby utworzyć kopię zapasową więcej niż jednej bazy danych jednocześnie, użyj przełącznika --database i wyświetl listę nazw baz danych rozdzielonych spacjami.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Tworzenie bazy danych na serwerze docelowym

Utwórz pustą bazę danych na docelowym serwerze usługi Azure Database for MariaDB, na którym chcesz przeprowadzić migrację danych. Użyj narzędzia, takiego jak MySQL Workbench, aby utworzyć bazę danych. Baza danych może mieć taką samą nazwę jak baza danych zawierająca dane po cenach dumpingowych lub utworzyć bazę danych o innej nazwie.

Aby nawiązać połączenie, znajdź informacje o połączeniu w okienku Przegląd bazy danych azure database for MariaDB.

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

W aplikacji MySQL Workbench dodaj informacje o połączeniu.

Screenshot of the MySQL Connections pane in MySQL Workbench.

Przywracanie bazy danych MariaDB

Po utworzeniu docelowej bazy danych możesz użyć polecenia mysql lub programu MySQL Workbench, aby przywrócić dane do nowo utworzonej bazy danych z pliku zrzutu.

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

W tym przykładzie przywracasz dane do nowo utworzonej bazy danych na docelowym serwerze usługi Azure Database for MariaDB.

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Eksportowanie bazy danych MariaDB przy użyciu języka phpMy Administracja

Aby wyeksportować, możesz użyć wspólnego narzędzia phpMy Administracja, które może być już zainstalowane lokalnie w danym środowisku. Aby wyeksportować bazę danych MariaDB, wykonaj następujące czynności:

  1. Otwórz plik phpMy Administracja.
  2. W okienku po lewej stronie wybierz bazę danych, a następnie wybierz link Eksportuj. Zostanie wyświetlona nowa strona, aby wyświetlić zrzut bazy danych.
  3. W obszarze Eksportuj wybierz link Wybierz wszystko, aby wybrać tabele w bazie danych.
  4. W obszarze Opcje SQL wybierz odpowiednie opcje.
  5. Wybierz opcję Zapisz jako plik i odpowiednią opcję kompresji, a następnie wybierz pozycję Przejdź. Po wyświetleniu monitu zapisz plik lokalnie.

Zaimportuj bazę danych przy użyciu języka phpMy Administracja

Proces importowania jest podobny do procesu eksportowania. Należy wykonać następujące czynności:

  1. Otwórz plik phpMy Administracja.
  2. Na stronie konfiguracji phpMy Administracja wybierz pozycję Dodaj, aby dodać serwer usługi Azure Database for MariaDB.
  3. Wprowadź szczegóły połączenia i informacje logowania.
  4. Utwórz odpowiednio nazwaną bazę danych, a następnie wybierz ją w okienku po lewej stronie. Aby ponownie napisać istniejącą bazę danych, wybierz nazwę bazy danych, zaznacz wszystkie pola wyboru obok nazw tabel i wybierz pozycję Upuść , aby usunąć istniejące tabele.
  5. Wybierz link SQL, aby wyświetlić stronę, na której można wprowadzić polecenia SQL lub przekazać plik SQL.
  6. Wybierz przycisk przeglądania, aby znaleźć plik bazy danych.
  7. Wybierz przycisk Przejdź, aby wyeksportować kopię zapasową, wykonać polecenia SQL i ponownie utworzyć bazę danych.

Następne kroki