W zestawie czterech samouczków badamy migrację instancji bazy danych MySQL do bazy danych PostgreSQL przy użyciu usługi migracji bazy danych AWS (DMS). W pierwszym samouczku „Migracja MySQL do PostgreSQL na AWS RDS, część 1” wprowadziliśmy DMS i stworzyliśmy użytkownika IAM dla DMS. W drugim samouczku, Migracja MySQL do PostgreSQL na AWS RDS, część 2”, stworzyliśmy instancje MySQL i PostgreSQL na RDS i połączyliśmy się z tymi dwoma instancjami. W tym samouczku kontynuacyjnym utworzymy migrację DMS, aby przeprowadzić migrację. Ten samouczek zawiera następujące sekcje:
- Tworzenie migracji DMS
- Tworzenie instancji replikacji
- Tworzenie punktów końcowych zadań migracji
- Tworzenie zadania migracji
- Wniosek
Tworzenie migracji DMS
W tej sekcji stworzymy usługę migracji bazy danych (DMS) w celu migracji bazy danych MySQL do bazy danych PostgreSQL. Migracja DMS składa się z następujących komponentów:
- Instancja replikacji
- Punkty końcowe bazy danych
- Zadanie
Omówimy tworzenie każdego z nich w podrozdziałach, ale najpierw musisz utworzyć migrację DMS. Przejdź do panelu DMS i kliknij Utwórz migrację , jak pokazano na rysunku 1.
Rysunek 1: Utwórz migrację
Uruchomi się kreator DMS. Kliknij Dalej, jak pokazano na rysunku 2.
Rysunek 2: Kreator DMS
Tworzenie instancji replikacji
Następnie skonfiguruj instancję replikacji, która nawiązuje połączenie między źródłową i docelową bazą danych, przesyła dane i buforuje zmiany danych, które zachodzą podczas początkowego ładowania danych. Określ instancję replikacji Nazwa i Opis i wybierz klasę instancji (domyślnie dms.t2.medium), jak pokazano na rysunku 3. Wybierz VPC i wybierz opcję konfiguracji wysokiej dostępności za pomocą Mult-Az; domyślne ustawienie to „Nie”. Wybierz opcję Publicznie dostępne .
Rysunek 3: Konfiguracja instancji replikacji
W Zaawansowanym , zachowaj domyślne ustawienia przydzielonej pamięci (50 GB), grupa podsieci replikacji, strefa dostępności (bez preferencji) i grupa zabezpieczeń VPC (użyj wartości domyślnej), jak pokazano na rysunku 4. Wybierz klucz główny KMS (dbms) utworzony wcześniej w sekcji Ustawianie środowiska sekcja.
Rysunek 4: Konfigurowanie ustawień zaawansowanych dla instancji replikacji
Kliknij Dalej, jak pokazano na rysunku 5.
Rysunek 5: Dalej
Rozpoczyna się tworzenie instancji replikacji, jak pokazano w komunikacie na rysunku 6. Następnie należy skonfigurować połączenia źródłowej i docelowej bazy danych, co zajmiemy się w następnym podrozdziale.
Rysunek 6: Rozpoczyna się tworzenie instancji replikacji
Tworzenie punktów końcowych zadania migracji
Utworzenie instancji replikacji może potrwać kilka minut. Punkty końcowe migracji można dodawać podczas tworzenia wystąpienia replikacji. Wybierz silnik źródłowy jako „mysql”, jak pokazano na rysunku 7.
Rysunek 7: Wybór silnika źródłowego
Wybierz Wyszukiwarka docelowa jako „postgres”, jak pokazano na rysunku 8.
Rysunek 8: Wybór silnika docelowego
W Nazwie serwera , określ Punkt końcowy dla instancji RDS DB dla bazy danych, usuwając :port przyrostek. W przypadku bazy danych MySQL punkt końcowy RDS to mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Dlatego określ Nazwę serwera jako mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , jak pokazano na rysunku 9. W przypadku bazy danych PostgreSQL w RDS, punktem końcowym jest postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; dlatego określ Nazwę serwera jako postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Określ port osobno dla źródłowej i docelowej bazy danych:3306 dla bazy danych MySQL i 5432 dla Postgres.
Rysunek 9: Określanie nazwy serwera i portu dla źródłowej i docelowej bazy danych
Przewiń w dół, aby uzyskać więcej ustawień konfiguracji punktu końcowego, jak pokazano na rysunku 10. Wybierz Tryb SSL jako brak zarówno dla źródłowej, jak i docelowej bazy danych. Określ nazwę użytkownika i hasło zgodnie z konfiguracją podczas tworzenia instancji bazy danych RDS. Określ nazwę bazy danych PostgreSQL (postgresdb), również tak jak skonfigurowano podczas tworzenia instancji RDS DB.
Rysunek 10: Określanie trybu SSL, nazwy użytkownika, hasła i identyfikatora SID lub nazwy bazy danych
W ustawieniach zaawansowanych można określić dodatkowe atrybuty połączenia dostępne dla bazy danych MySQL i bazy danych PostgreSQL, ale nie są one wymagane w tym samouczku. Wybierz klucz główny KMS (dbms) zarówno dla źródłowej, jak i docelowej bazy danych (patrz Rysunek 11). Aby przetestować punkty końcowe DMS, Uruchom test dostępne są przyciski, jak pokazano na rysunku 11. Uruchom test przyciski są wyszarzone lub wyłączone do czasu utworzenia instancji replikacji.
Rysunek 11: Konfigurowanie ustawień zaawansowanych dla punktów końcowych DMS
Po utworzeniu instancji replikacji zostanie wyświetlony komunikat „Instancja replikacji utworzona pomyślnie”, jak pokazano na rysunku 12.
Rysunek 12: Pomyślnie utworzono instancję replikacji
Po utworzeniu instancji replikacji Uruchom test przyciski stają się aktywne. Kliknij Uruchom test , jak pokazano na rysunku 13, dla każdej bazy danych.
Rysunek 13: Uruchom test
Połączenia zaczynają być testowane, jak wskazuje komunikat „Testowanie połączenia punktu końcowego” na rysunku 14.
Rysunek 14: Testowanie połączeń punktów końcowych
Jeśli połączenia punktów końcowych zostały skonfigurowane zgodnie z wymaganiami, powinien zostać wyświetlony komunikat „Połączenie przetestowane pomyślnie”, jak pokazano na rysunku 15. Kliknij Dalej.
Rysunek 15: Pomyślnie przetestowano połączenie
Tworzenie zadania migracji
Po utworzeniu instancji replikacji i punktów końcowych bazy danych, następnie utworzymy zadanie migracji, aby połączyć się z punktami końcowymi i faktycznie przenieść dane. W Utwórz zadanie kreatora, określ Nazwę zadania (określona jest również wartość domyślna) i dodaj opis zadania (patrz Rysunek 16). Wybierz opcję Rozpocznij zadanie przy tworzeniu .
Rysunek 16: Kreator tworzenia zadań
Źródłowe i docelowe punkty końcowe oraz wystąpienie replikacji zostały wcześniej skonfigurowane i nie można ich modyfikować podczas tworzenia zadania. Wybierz Typ migracji , która zawiera listę trzech opcji, jak pokazano na rysunku 17.
- Przeprowadź migrację istniejących danych :migruje istniejące schematy, tabele i dane tabel, które już istnieją w źródłowej bazie danych, ale nie migruje kolejnych zmian na bieżąco.
- Przeprowadź migrację istniejących danych i replikuj bieżące zmiany :migruje istniejące schematy, tabele i dane tabel, które już istnieją w źródłowej bazie danych, a także na bieżąco migruje kolejne zmiany.
- Tylko replikuj zmiany danych :Nie migruje istniejących schematów, tabel i danych oraz migruje tylko zmiany danych.
Wybierz Przenieś istniejące dane Jak pokazano na rysunku 17. Aby przeprowadzić migrację zmian, co zapewniają pozostałe dwie opcje, czas przechowywania dziennika binarnego w instancji MySQL DB musi zostać zwiększony do 24 godzin lub więcej.
Rysunek 17: Wybór typu migracji jako Migracja istniejących danych
Następnie skonfiguruj Ustawienia zadań . Tryb przygotowania tabeli docelowej ustawienie dotyczy tabel w docelowej bazie danych i udostępnia trzy opcje:
- Nic nie rób :Dane i metadane tabel docelowych nie są zmieniane
- Upuść tabele na cel :Istniejące tabele, jeśli istnieją, są usuwane i tworzone są nowe tabele
- Przytnij :Tabele są obcinane, co oznacza, że dane tabeli są usuwane, ale metadane tabeli nie ulegają zmianie. Uwzględnij kolumny LOB w replikacji ustawienie dotyczy kolumn typu danych LOB w źródłowej bazie danych i zapewnia trzy opcje:
- Nie uwzględniaj kolumn LOB :kolumny LOB są wyłączone z migracji
- Pełny tryb LOB :migruje kompletne obiekty LOB niezależnie od rozmiaru; LOBs są migrowane w kawałkach, co może spowolnić proces migracji
- Ograniczony tryb LOB :Przytnij LOB do rozmiaru określonego w maksymalnym rozmiarze LOB (kb)
Wybierz Tryb przygotowania tabeli docelowej jako Nic nie rób, jak pokazano na rysunku 18. Wybierz Uwzględnij kolumny LOB w replikacji jako Ograniczony tryb LOB i określ Maksymalny rozmiar LOB jako 32 kb (domyślnie). Wybierz Włącz rejestrowanie opcja.
Rysunek 18: Ustawienia zadań
Następnie dodaj reguły wyboru i reguły transformacji w mapowaniu tabel , jak pokazano na rysunku 19. Mapowania tabel można dodać za pomocą Z przewodnikiem interfejs użytkownika lub jako JSON . Zalecany jest interfejs użytkownika z przewodnikiem. Należy dodać co najmniej jedną regułę wyboru, a reguły transformacji są opcjonalne. Stosowane są reguły wyboru, podczas gdy wybieranie schematów, tabel i kolumn ze źródłowej bazy danych oraz reguły transformacji są stosowane przed migracją schematów, tabel i kolumn do docelowej bazy danych.
Rysunek 19: Mapowania tabel
Schemat można wybrać z Nazwa schematu to menu rozwijanego lub, jeśli nie ma go na liście, wybierz Wprowadź schemat i określ schemat w Nazwa schematu to pole. Akcja lista rozwijana zawiera dwie opcje:Uwzględnij i Wyklucz . Opcja Uwzględnij obejmuje wybory dokonane dla schematów i tabel, a opcja Wyklucz wyklucza schematy i tabele. Wykluczenia są przetwarzane po włączeniu. Nie wszystkie schematy muszą być wybrane i nie wszystkie tabele ze schematu muszą być wybrane.
Dodamy następującą regułę wyboru:
- Uwzględnij wszystkie schematy i wszystkie tabele ze źródłowej bazy danych
Jako regułę wyboru wybierz Wprowadź schemat i określ Nazwa schematu to jako % , który wybiera wszystkie schematy w źródłowej bazie danych, jak pokazano na rysunku 20. Określ Nazwa tabeli to jak jako % , który wybiera wszystkie tabele w wybranych schematach. Wybierz Działanie jako Uwzględnij .
Rysunek 20: Konfigurowanie reguły wyboru
Kliknij Dodaj regułę wyboru (patrz Rysunek 21).
Rysunek 21: Dodawanie reguły wyboru
Zostanie dodana reguła wyboru, jak pokazano na rysunku 22. Po utworzeniu zadania rola uprawnień dms-cloudwatch-logs-role został stworzony, aby umożliwić DMS dostęp do CloudWatch.
Rysunek 22: Dodano regułę wyboru
Następnie dodaj regułę transformacji. W tym celu kliknij dodaj regułę transformacji link, jak pokazano na rysunku 23.
Rysunek 23: Dodaj regułę transformacji
Reguła transformacji ma ustawienia dla celu . Reguła ma trzy opcje, jak pokazano na rysunku 24.
- Schemat
- Stół
- Kolumna
Gdzie określa podzbiór obiektów wybranych przez reguły wyboru. Działanie to transformacja, która ma zostać zastosowana, oraz dostępne są następujące opcje:
- Zmień nazwę na (dostępne dla obiektów schematu i tabeli)
- Usuń kolumnę (dostępne dla kolumn)
- Ustaw małe litery (dostępne dla schematów, tabel i kolumn)
- Ustaw wielkie litery (dostępne dla schematów, tabel i kolumn)
- Dodaj prefiks (dostępny dla schematów, tabel i kolumn)
- Usuń prefiks (dostępny dla schematów, tabel i kolumn)
Rysunek 24: Ustawienia reguł transformacji
PostgreSQL wykorzystuje małe litery w schematach, tabelach i kolumnach. Dodamy trzy reguły transformacji:
- Ustaw wszystkie schematy małymi literami
- Ustaw wszystkie tabele małymi literami
- Ustaw wszystkie kolumny małymi literami
Aby dodać pierwszą z tych reguł transformacji, wybierz Cel jako Schemat jak pokazano na rysunku 25. Określ Nazwa schematu jest podobna do % . Wybierz Działanie jako Zrób małe litery i kliknij Dodaj regułę transformacji .
Rysunek 25: Dodawanie reguły transformacji
Zostanie dodana reguła transformacji (patrz Rysunek 26). Aby dodać kolejną regułę transformacji, kliknij dodaj regułę transformacji link ponownie.
Rysunek 26: Dodano regułę transformacji
Wybierz Cel jako Tabela , jak pokazano na rysunku 27. Określ Nazwa schematu jest podobna do % . Wybierz Nazwa tabeli to % . Wybierz Działanie jako Zrób małe litery i kliknij Dodaj regułę transformacji .
Rysunek 27: Dodawanie reguły transformacji w celu zmiany nazwy tabeli
Wybierz Cel jako Kolumna , jak pokazano na rysunku 28. Określ Nazwa schematu jest podobna do % . Wybierz Nazwa tabeli to % . Wybierz Nazwa kolumny to % . Wybierz Działanie jako Zrób małe litery i kliknij Dodaj regułę transformacji .
Rysunek 28: Dodanie reguły transformacji, aby nazwa kolumny była małymi literami
Trzy reguły wyboru i dodana reguła transformacji pokazano na rysunku 29. Po uruchomieniu zadania reguły wyboru są stosowane przed regułami transformacji. Aby uzyskać ustawienia zaawansowane, kliknij Ustawienia zaawansowane , jak pokazano na rysunku 29.
Rysunek 29: Reguły wyboru i reguły transformacji
W Ustawieniach zaawansowanych , wybierz Ustawienia tabeli sterującej i określ Utwórz tabelę kontrolną w miejscu docelowym za pomocą schematu jako publiczny , jak pokazano na rysunku 30, i kliknij Gotowe.
Rysunek 30: Ustawianie schematu tabeli kontrolnej w celu
Zostanie dodane ustawienie Zaawansowane (patrz Rysunek 31).
Rysunek 31: Ustawienia zaawansowane
Po skonfigurowaniu zadania kliknij Utwórz zadanie , jak pokazano na rysunku 32, aby utworzyć zadanie.
Rysunek 32: Utwórz zadanie
Zostanie utworzone zadanie migracji, jak pokazano na rysunku 33. Początkowo status zadania to „Tworzenie”.
Rysunek 33: Zadanie migracji
Zadanie może mieć jeden ze stanów omówionych w Tabeli 1.
Stan | Opis |
Tworzenie | Zadanie jest tworzone. |
Gotowe | Zadanie jest gotowe do uruchomienia i uruchomienia. Zwykle następuje po statusie „Tworzenie”. |
Uruchamianie | Rozpoczyna się zadanie, w którym to czasie zadanie łączy się z instancją replikacji i punktami końcowymi bazy danych. Stosowane są reguły wyboru i transformacji. |
Bieganie | Zadanie jest uruchomione, co oznacza, że zadanie migruje bazę danych. |
Ładowanie zakończone | Zadanie zakończyło ładowanie (migrację) bazy danych. |
Niepowodzenie | Zadanie nie powiodło się. |
Błąd | Wystąpił błąd podczas migracji. Niektóre schematy i tabele mogły zostać pomyślnie zmigrowane, ale co najmniej jeden schemat lub tabela nie powiodły się. |
Modyfikowanie | Zadanie jest modyfikowane, zwykle po zmodyfikowaniu zadania przez użytkownika. |
Zatrzymywanie | Zadanie jest zatrzymywane, co zwykle następuje po wybraniu przez użytkownika zatrzymania zadania. |
Zatrzymano | Zadanie zostało zatrzymane, co może być spowodowane zatrzymaniem zadania przez użytkownika lub użyciem opcji Migracja istniejących danych i replikacja bieżących zmian, a zadanie zakończyło początkowe ładowanie . |
Usuwanie | Zadanie jest usuwane, co jest spowodowane usunięciem zadania przez użytkownika. |
Tabela 1: Statusy zadań
Tworzone są dwie role uprawnień, jedna dla CloudWatch, a druga dla VPC, jak pokazano na rysunku 34.
Rysunek 34: Role uprawnień dla DMS
Wniosek
W tym trzecim samouczku dotyczącym migracji instancji bazy danych MySQL na RDS do instancji bazy danych Postgres na RDS, stworzyliśmy migrację DMS, w tym instancję replikacji, punkty końcowe migracji i zadanie migracji. W czwartym samouczku omówimy uruchomienie migracji DMS w celu przeprowadzenia migracji i oceny wyników.