Google CloudSQL to zarządzana usługa dla baz danych z obsługą MySQL i PostgreSQL. CloudSQL można zintegrować z niektórymi innymi usługami Google Cloud Platform, w tym z replikacją danych w wielu strefach z automatycznym przełączaniem awaryjnym. W tym artykule omówimy migrację instancji bazy danych MySQL z Google CloudSQL do AWS RDS przy użyciu Database Migration Service (DMS). Ten artykuł ma następujące sekcje:
- Ustawianie środowiska
- Tworzenie instancji MySQL RDS DB
- Łączenie z bazą danych MySQL na RDS
- Tworzenie projektu Google Cloud Platform
- Tworzenie instancji CloudSQL
- Dodawanie trasy dla adresu IP instancji bazy danych CloudSQL do tabeli tras VPC
- Tworzenie instancji replikacji DMS
- Dodawanie sieci do połączenia instancji replikacji z instancją bazy danych CloudSQL
- Tworzenie punktów końcowych replikacji bazy danych
- Tworzenie zadania replikacji
- Uruchamianie zadania replikacji
- Eksplorowanie migrowanych tabel
- Eksplorowanie dzienników CloudWatch
- Usuwanie migracji
- Usuwanie instancji DB
- Wniosek
Ustawianie środowiska
Wymagane jest konto rozliczeniowe Google Cloud Platform. Konto Google Cloud Platform Free Tier zapewnia bezpłatny okres próbny przez pierwszy rok. Wymagane jest również konto AWS; można to utworzyć pod adresem https://aws.amazon.com/resources/create-account/.
Tworzenie instancji MySQL RDS DB
Ponieważ będziemy migrować bazę danych MySQL z CloudSQL do AWS RDS, musimy utworzyć instancję bazy danych MySQL na RDS. Przejdź do RDS na https://aws.amazon.com/rds i w kreatorze RDS wybierz silnik jako MySQL, jak pokazano na rysunku 1.
Rysunek 1: Wybór silnika bazy danych MySQL
W Produkcji? , wybierz Programowanie/testowanie , jak pokazano na rysunku 2.
Rysunek 2: Wybór programowania i testowania
W Określ szczegóły bazy danych , zaznacz pole wyboru Pokaż tylko opcje, które kwalifikują się do poziomu bezpłatnego RDS , jak pokazano na rysunku 3. Wybierz model licencji jako licencję publiczną. Wybierz wersję silnika DB jako MySQL 5.6.35. Wersje MySQL 5.5, 5.6 i 5.7 są obsługiwane dla celów DMS. Wybierz DB Instance Class jako db.t2.micro, która ma pojemność 1 vCPU i 1 GB pamięci RAM. Wybierz Wdrożenie Multi-AZ jako Nie. Wybierz Typ pamięci jako Ogólne przeznaczenie (SSD) i przydzieloną pamięć jako 5 GB.
Rysunek 3: Określ szczegóły bazy danych
W ustawieniach bazy danych określ identyfikator instancji DB (mysqldb), Główna nazwa użytkownika i Główne hasło, jak pokazano na rysunku 4. Kliknij Następny krok.
Rysunek 4: Określanie ustawień bazy danych
W sekcji Configure Advanced Settings wybierz VPC, jak pokazano na rysunku 5. Migracja DMS powinna zostać utworzona w tej samej VPC, co instancja RDS DB. Ustaw Strefę dostępności jako us-east-1b. Wybierz opcję Utwórz nową grupę zabezpieczeń. W Opcjach bazy danych określ nazwę bazy danych (mysqldb). Określ port bazy danych (3306) i wybierz grupę parametrów bazy danych.
Rysunek 5: Konfiguracja ustawień zaawansowanych
Większość lub wszystkie inne ustawienia — w tym Grupa opcji, Włącz uwierzytelnianie IAM DB, Włącz szyfrowanie, Kopia zapasowa i Monitorowanie — mogą być zachowane jako domyślne (patrz Rysunek 6). Automatyczne kopie zapasowe muszą być włączone dla MySQL na RDS jako źródło DMS. Kliknij Uruchom instancję bazy danych .
Rysunek 6: Uruchom instancję bazy danych
Rozpocznie się tworzenie nowej instancji DB, jak pokazano w komunikacie na rysunku 7. Kliknij Wyświetl swoje instancje DB, aby wyświetlić instancje DB.
Rysunek 7: Tworzę Twoją instancję DB
Zostanie uruchomiona nowa instancja MySQL DB na RDS, jak pokazano na rysunku 8.
Rysunek 8: Instancja bazy danych MySQL na RDS
Kliknij łącze Security Group, jak pokazano na Rysunku 9, aby zmodyfikować reguły Inbound/Outbound, aby zezwolić na ruch z/do wszystkich adresów IP.
Rysunek 9: Link do grupy bezpieczeństwa
Wybierz kartę Przychodzące i kliknij przycisk Edytuj, aby zmodyfikować reguły ruchu przychodzącego, jak pokazano na rysunku 10.
Rysunek 10: Modyfikowanie reguł ruchu przychodzącego
W Edytuj reguły ruchu przychodzącego ustaw Typ na Cały ruch, Protokół na Wszystko, Zakres portów na 0-65535, Źródło do dowolnego miejsca i kliknij Zapisz (patrz Rysunek 11).
Rysunek 11: Edytuj reguły ruchu przychodzącego
Zmodyfikowane reguły ruchu przychodzącego pokazano na rysunku 12.
Rysunek 12: Zasady ruchu przychodzącego
Reguły ruchu wychodzącego nie muszą być modyfikowane, ponieważ są już ustawione tak, aby zezwalały na ruch do wszystkich docelowych adresów IP, jak pokazano na rysunku 13.
Rysunek 13: Reguły ruchu wychodzącego
Łączenie z bazą danych MySQL na RDS
Uzyskaj hosta instancji RDS DB z punktu końcowego; adres hosta to Endpoint z usuniętym sufiksem portu :3306. Połącz się z instancją bazy danych MySQL w RDS przy użyciu adresu hosta i portu za pomocą następującego polecenia mysql, aby uruchomić interfejs wiersza poleceń MySQL.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db
Host, użytkownik i hasło będą różne dla różnych użytkowników. Przyznaj dostęp do konta MySQL użytkownikowi DMS za pomocą następujących poleceń, w których użytkownik DMS będzie inny dla różnych użytkowników.
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON mysqldb.* TO 'dvohra'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';
Tworzenie projektu Google Cloud Platform
Aby korzystać z CloudSQL, musisz utworzyć projekt Google Cloud Platform. Aby utworzyć projekt, kliknij Utwórz pusty projekt na stronie Pierwsze kroki, jak pokazano na rysunku 14.
Rysunek 14: Utwórz pusty projekt
W Nowym projekcie kreatora, określ Nazwę projektu (MySQLDB) i kliknij Utwórz , jak pokazano na rysunku 15.
Rysunek 15: Nowy projekt
Zostanie utworzony nowy projekt, jak pokazano na pulpicie nawigacyjnym na rysunku 16.
Rysunek 16: Nowy projekt Google Cloud Platform
Tworzenie instancji CloudSQL
W tej sekcji stworzymy instancję CloudSQL. Przejdź do adresu URL CloudSQL https://cloud.google.com/sql/ w przeglądarce, jak pokazano na rysunku 17. Kliknij View Console.
Rysunek 17: Wyświetl konsolę
Wybierz MySQLDB projekt i kliknij Utwórz instancję , jak pokazano na rysunku 18.
Rysunek 18: Utwórz instancję
W Utwórz instancję kreatora, wybierz MySQL i kliknij Dalej , jak pokazano na rysunku 19.
Rysunek 19: Wybór silnika jako MySQL
W Wybierz typ instancji MySQL , kliknij Wybierz drugą generację aby wybrać typ instancji MySQL Druga generacja, jak pokazano na Rysunku 20. Wymienione są również niektóre zalety typu instancji Druga generacja.
Rysunek 20: Wybór instancji MySQL drugiej generacji
W Utwórz instancję MySQL drugiej generacji (patrz Rysunek 21), określ Identyfikator wystąpienia i hasło roota i wybierz Region i Strefa. Kliknij Utwórz .
Rysunek 21: Utwórz instancję MySQL drugiej generacji
Rozpocznie się tworzenie instancji MySQL, jak pokazano w tabeli Instancje na rysunku 22.
Rysunek 22: Instancja CloudSQL MySQL
Dodawanie trasy dla adresu IP instancji CloudSQL DB do tabeli tras VPC
Musimy zmodyfikować tabelę tras dla VPC, w którym utworzona jest instancja RDS DB i migracja DMS, aby umożliwić dostęp do adresu IP instancji CloudSQL. Najpierw uzyskaj adres IP instancji CloudSQL z konsoli CloudSQL, jak pokazano na rysunku 23.
Rysunek 23: Adres IP instancji bazy danych CloudSQL
Kliknij Tabelę tras link, jak pokazano na Rysunku 24, dla VPC, w którym tworzona jest instancja RDS DB, a następnie należy utworzyć DMS.
Rysunek 24: Link do tabeli tras
Wybierz trasę z listy i kliknij Edytuj, jak pokazano na rysunku 25.
Rysunek 25: Trasa>Edytuj
Kliknij Dodaj kolejną trasę (patrz Rysunek 26).
Rysunek 26: Dodaj kolejną trasę
Określ adres IP instancji CloudSQL w miejscu docelowym, jak pokazano na rysunku 27.
Rysunek 27: Określanie miejsca docelowego jako adresu IP instancji CloudSQL
Wybierz Cel jako bramę internetową powiązaną z VPC, jak pokazano na Rysunku 28. Brama internetowa umożliwia komunikację między instancjami w VPC i Internetem.
Rysunek 28: Wybór celu jako bramy internetowej
Kliknij Zapisz, aby zapisać trasę. Trasa zostanie dodana, jak pokazano na rysunku 29.
Rysunek 29: Trasa dla instancji CloudSQL
Tworzenie instancji replikacji DMS
W tej sekcji stworzymy instancję replikacji do migracji instancji CloudSQL do RDS. Kliknij Utwórz migrację na stronie startowej Database Migration Service, jak pokazano na rysunku 30.
Rysunek 30: Utwórz migrację
Na stronie powitalnej kliknij Dalej (patrz Rysunek 31).
Rysunek 31: Strona powitalna>Dalej
W Utwórz instancję replikacji strony, określ nazwę i opis, jak pokazano na rysunku 32. Wybierz klasę instancji jako dms.t2.medium. Wybierz wersję silnika replikacji jako 2.2.1. Wybierz tę samą sieć VPC, w której utworzono instancję RDS DB. Wybierz Multi-AZ A No. Zaznacz pole wyboru Publicznie dostępne.
Rysunek 32: Konfiguracja instancji replikacji
W obszarze Zaawansowane określ Przydzielone miejsce do przechowywania (50 GB), wybierz grupę podsieci replikacji i wybierz strefę dostępności taką samą jak w przypadku wystąpienia RDS DB, us-east-1b, jak pokazano na rysunku 33. Wybierz domyślną grupę zabezpieczeń VPC. Wybierz klucz główny KMS utworzony dla DMS.
Rysunek 33: Konfiguracja opcji zaawansowanych
Wybierz domyślne ustawienia konserwacji i kliknij Dalej, jak pokazano na rysunku 34.
Rysunek 34: Instancja replikacji>Dalej
Zostanie wyświetlony komunikat „Twoja instancja replikacji jest tworzona”, jak pokazano na rysunku 35. Punkty końcowe źródłowej i docelowej bazy danych można skonfigurować dopiero po utworzeniu instancji replikacji.
Rysunek 35: Tworzę instancję replikacji
Po utworzeniu instancji replikacji wyświetlany jest komunikat „Instancja replikacji utworzona pomyślnie” (patrz Rysunek 36).
Rysunek 36: Pomyślnie utworzono instancję replikacji
Instancje replikacji wyświetlają nową utworzoną instancję replikacji, jak pokazano na rysunku 37.
Rysunek 37: Instancje replikacji
Dodawanie sieci do połączenia instancji replikacji z instancją bazy danych CloudSQL
Najpierw określ adres IP, na którym działa instancja replikacji. Adres IP można uzyskać z konsoli instancji replikacji, jak pokazano na rysunku 38.
Rysunek 38: Adres IP instancji replikacji
Po uzyskaniu adresu IP, do instancji MySQL na CloudSQL dodamy sieć składającą się z adresu IP. Kliknij łącze instancji CloudSQL MySQL, jak pokazano na rysunku 39.
Rysunek 39: Instancja bazy danych CloudSQL MySQL
Kliknij Autoryzacja instancji bazy danych MySQL stronę szczegółów, jak pokazano na rysunku 40.
Rysunek 40: Autoryzacja
Kliknij Dodaj sieć (patrz Rysunek 41).
Rysunek 41: Dodaj sieć
W Nowej sieci , określ Nazwę sieci oraz Sieciowy adres IP jako adres IP instancji replikacji, jak pokazano na Rysunku 42, i kliknij Gotowe.
Rysunek 42: Dodawanie nowej sieci do CloudSQL
Zostanie dodana nowa sieć, jak pokazano na rysunku 43. Kliknij Zapisz aby zapisać sieć.
Rysunek 43: Zapisywanie nowej sieci
Zostanie wyświetlony komunikat „Instancja jest aktualizowana”, jak pokazano na rysunku 44.
Rysunek 44: Instancja jest aktualizowana
Po zaktualizowaniu instancji ikona instancji wskazuje to samo, jak pokazano na rysunku 45.
Rysunek 45: Zaktualizowano instancję
Kliknij Przegląd (patrz Rysunek 46), aby wyświetlić przegląd instancji.
Rysunek 46: Przegląd
Nowa sieć zostanie wymieniona w sieciach autoryzowanych w Szczegółach instancji strony, jak pokazano na rysunku 47.
Rysunek 47: Autoryzowane sieci
Tworzenie punktów końcowych replikacji bazy danych
Następnie utworzymy źródłowe i docelowe punkty końcowe bazy danych. Określ identyfikatory punktów końcowych dla źródłowej i docelowej bazy danych. Jako silnik źródłowy wybierz mysql , jak pokazano na rysunku 48.
Rysunek 48: Wybór silnika źródłowego jako mysql
Wybierz silnik docelowy jako mysql również, jak pokazano na rysunku 49.
Rysunek 49: Wybór silnika docelowego jako mysql
Jako nazwę serwera źródłowego skopiuj adres IPv4 instancji CloudSQL, jak pokazano na rysunku 50.
Rysunek 50: Adres IPv4 instancji CloudSQL
Dla docelowej bazy danych określ nazwę serwera jako Endpoint bez sufiksu portu „:3306” dla instancji RDS DB dla bazy danych MySQL (patrz Rysunek 51). Określ port dla źródłowej i docelowej bazy danych jako 3306. Wybierz tryb SSL jako brak zarówno dla połączeń źródłowych, jak i docelowych. Podaj nazwę użytkownika źródłowej bazy danych jako root i hasło ustawione podczas tworzenia instancji CloudSQL. Podobnie ustaw nazwę użytkownika i hasło dla docelowej bazy danych w RDS.
Rysunek 51: Konfigurowanie szczegółów źródłowego i docelowego połączenia z bazą danych
W sekcji Zaawansowane źródłowej i docelowej bazy danych wybierz klucz główny KMS dms, który został utworzony dla DMS. Kliknij Uruchom test , jak pokazano na rysunku 52, dla połączenia źródłowego. Podobnie, kliknij Uruchom test dla połączenia docelowego.
Rysunek 52: Uruchom test
Jeśli wynikiem testu jest „Połączenie przetestowane pomyślnie” zarówno dla połączenia źródłowej, jak i docelowej bazy danych, kliknij Dalej, jak pokazano na rysunku 53.
Rysunek 53: Testowanie połączeń
Tworzenie zadania replikacji
W polu Utwórz zadanie określ nazwę zadania i opis zadania, jak pokazano na Rysunku 54. Źródłowy punkt końcowy, docelowy punkt końcowy i instancja replikacji są zakodowane na stałe. Wybierz typ migracji jako Migruj istniejące dane. Zaznacz pole wyboru Rozpocznij zadanie przy tworzeniu.
Rysunek 54: Utwórz zadanie
W Ustawieniach zadań wybierz/ustaw Tryb przygotowania tabeli docelowej jako nic nie rób , Uwzględnij kolumny LOB w replikacji jako Ograniczony tryb LOB , a maksymalny rozmiar LOB jako 32 kb, jak pokazano na rysunku 55. Wybierz opcję Włącz rejestrowanie opcja.
Rysunek 55: Ustawienia zadań
W mapowaniu tabel , jak pokazano na rysunku 56, należy dodać co najmniej jedną regułę wyboru.
Rysunek 56: Mapowania tabel
Wybierz Wprowadź schemat opcja w Nazwa schematu to pole. Określ Nazwa schematu jest podobna do mysql , jak pokazano na rysunku 57. Określ Nazwa tabeli jest taka, jak innodb_index_stats. Wybierz Działanie jako Uwzględnij . Kliknij Dodaj regułę wyboru .
Rysunek 57: Dodawanie reguły wyboru
Aby dodać kolejną regułę wyboru, kliknij dodaj regułę wyboru link, jak pokazano na rysunku 58.
Rysunek 58: Dodaj regułę wyboru
Dodaj regułę wyboru, aby uwzględnić tabelę mysql.innodb_table_stats , jak pokazano na rysunku 59.
Rysunek 59: Dodawanie reguły wyboru dla mysql.innodb_table_stats
Można dodać reguły wyboru, po jednej dla każdej tabeli lub za pomocą wyrażenia regularnego z symbolem wieloznacznym. Następnie użyjemy %, aby dodać regułę wyboru. Kliknij dodaj regułę wyboru , jak pokazano na rysunku 60.
Rysunek 60: Dodaj link do reguły wyboru
Określ Schemat jako mysql i podaj Nazwę tabeli jako strefa_czasowa% , która reprezentuje wszystkie tabele zaczynające się od „time_zone” (patrz Rysunek 61).
Rysunek 61: Dodanie reguły wyboru, aby uwzględnić wszystkie tabele w schemacie mysql zaczynające się od time_zone
Kliknij Utwórz zadanie aby utworzyć zadanie, jak pokazano na rysunku 62.
Rysunek 62: Utwórz zadanie
Nowe zadanie zostanie dodane ze statusem Tworzenie początkowo, jak pokazano na rysunku 63. Kliknij Odśwież dane z serwera okresowo, aby odświeżyć stan zadania.
Rysunek 63: Dodano zadanie ze stanem Tworzę
Gdy zadanie zostało utworzone i jest gotowe do uruchomienia, status staje się gotowy, jak pokazano na rysunku 64.
Rysunek 64: Stan zadania gotowy
Uruchamianie zadania replikacji
Aby uruchomić instancję replikacji, kliknij przycisk Start/Wznów, jak pokazano na rysunku 65.
Rysunek 65: Rozpocznij/Wznów
Status zadania to Rozpoczęcie (patrz Rysunek 66). Od czasu do czasu kliknij Odśwież dane z serwera przycisk, aby odświeżyć stan, jak pokazano na rysunku 66.
Rysunek 66: Rozpoczęcie statusu zadania
Status zadania to Uruchomione kiedy zadanie zacznie działać. Gdy pełne ładowanie zostanie zakończone, status zmieni się na Ładowanie zakończone , jak pokazano na rysunku 67.
Rysunek 67: Załaduj ukończone
Eksplorowanie przeniesionych tabel
Tabele załadowane kolumna ma wartość 7 dla siedmiu migrowanych tabel, jak pokazano na rysunku 68.
Rysunek 68: Przeniesiono siedem tabel
Aby znaleźć szczegółowe informacje na temat przeniesionych tabel, wybierz Statystyki tabel jak pokazano na rysunku 69.
Rysunek 69: Statystyki tabeli
Wszystkie tabele, które zostały poddane migracji, zostaną wyświetlone, jak pokazano na rysunku 70.
Rysunek 70: Tabele przeniesione
Eksplorowanie dzienników CloudWatch
Aby przeglądać dzienniki CloudWatch, kliknij link w Dziennikach (patrz Rysunek 71).
Rysunek 71: Łącze do dzienników
Dzienniki CloudWatch zawierają wpis dziennika dla każdej migrowanej tabeli, jak pokazano na Rysunku 72. Gdy wszystkie tabele skonfigurowane przy użyciu reguł selekcji i transformacji zostaną zmigrowane, zostanie dodany wpis dziennika „Wszystkie tabele są załadowane”.
Rysunek 72: Dzienniki CloudWatch
Po załadowaniu wszystkich tabel wpis w dzienniku Zarządzanie zadaniami zostało zakończone zostanie dodany, jak pokazano na rysunku 73.
Rysunek 73: Zarządzanie zadaniami zakończone
Usuwanie migracji
Aby usunąć migrację, kolejność jest odwrotna do tworzenia migracji.
- Usuń zadanie/zadania migracji.
- Usuń punkty końcowe bazy danych.
- Usuń instancję replikacji.
Aby usunąć zadanie, wybierz zadanie i kliknij Usuń, jak pokazano na rysunku 74.
Rysunek 74: Zadanie>Usuń
W oknie dialogowym Usuń zadanie kliknij Usuń, jak pokazano na rysunku 75.
Rysunek 75: Usuń okno dialogowe potwierdzenia zadania
Status zadania to Usuwam (patrz Rysunek 76).
Rysunek 76: Usuwanie zadania
Aby usunąć punkty końcowe, wybierz punkty końcowe i kliknij Usuń, jak pokazano na rysunku 77.
Rysunek 77: Punkty końcowe>Usuń
W Usuń punkt końcowy okno dialogowe potwierdzenia, kliknij Usuń, jak pokazano na rysunku 78.
Rysunek 78: Usuń okno dialogowe potwierdzenia punktu końcowego
Status punktów końcowych zmieni się na Usuwanie, jak pokazano na rysunku 79.
Rysunek 79: Usuwanie punktów końcowych
Aby usunąć instancję replikacji, wybierz instancję replikacji i kliknij Usuń, jak pokazano na rysunku 80.
Rysunek 80: Instancje replikacji>Usuń
W Usuń instancję replikacji w oknie dialogowym potwierdzenia, kliknij Usuń (patrz Rysunek 81).
Rysunek 81: Okno dialogowe potwierdzenia Usuń instancję replikacji
Status instancji replikacji to Usuwanie, jak pokazano na rysunku 82.
Rysunek 82: Usuwanie instancji replikacji
Usuwanie instancji DB
Następnie usuń źródłową i docelową bazę danych. Aby usunąć docelową bazę danych, która jest bazą danych MySQL w RDS, wybierz instancję bazy danych w tabeli Wszystkie instancje i kliknij Instance Actions>Delete, jak pokazano na rysunku 83.
Rysunek 83: Działania dotyczące instancji>Usuń
W Usuń instancję DB wybierz opcję, aby nie tworzyć końcowego zrzutu i zaznacz pole wyboru potwierdzenia, a następnie kliknij Usuń, jak pokazano na rysunku 84.
Rysunek 84: Okno dialogowe usuwania instancji bazy danych
Instancja RDS DB zaczyna być usuwana, jak wskazuje stan usuwania na rysunku 85.
Rysunek 85: Usuwanie instancji bazy danych RDS
Aby usunąć instancję CloudSQL DB, kliknij prawym przyciskiem myszy mysql ikonę zarządzania instancją bazy danych i wybierz Usuń (patrz Rysunek 86).
Rysunek 86: CloudSQL mysql>Usuń
W Usunąć instancję? okno dialogowe potwierdzenia, podaj nazwę instancji w wyświetlonym polu, aby potwierdzić, że instancja ma zostać usunięta, i kliknij Usuń, jak pokazano na rysunku 87.
Rysunek 87: Okno dialogowe potwierdzenia usunięcia instancji
Wniosek
W tym artykule omówiliśmy migrację MySQL z CloudSQL do AWS RDS przy użyciu usługi migracji bazy danych AWS.