AWS Database Migration Service (DMS) to usługa umożliwiająca migrację baz danych do AWS. Docelowa baza danych musi być jedną z obsługiwanych przez AWS baz danych, takich jak hostowane bazy danych Relational Database Service, DynamoDB i RedShift. Źródłowa baza danych może być bazą danych w AWS, lokalną bazą danych lub bazą danych na innej platformie Cloud, takiej jak Oracle Cloud Platform. Źródłowa baza danych nie ma przestojów podczas migracji.
Po co migrować bazy danych?
Baza danych może wymagać migracji z kilku powodów, takich jak:
- Migracja heterogeniczna do innego silnika bazy danych. Na przykład z bazy danych Oracle do bazy danych MySQL. Migracja heterogeniczna może być wymagana w celu skorzystania z funkcji z innej bazy danych, takich jak typ bazy danych nieobsługiwany w źródłowej bazie danych. Komercyjna baza danych może zostać zmigrowana do bazy danych typu open source. Relacyjna baza danych może skorzystać na migracji do bazy danych NoSQL.
- Jednorodna migracja do tego samego typu silnika bazy danych, ale na innej platformie. Jednorodną migrację można wykorzystać do wykonania kopii zapasowej bazy danych. Lokalna baza danych może skorzystać na migracji na platformę Cloud.
- Ciągła replikacja danych do różnych docelowych baz danych w celu testowania i rozwoju oraz regionalnej dystrybucji baz danych.
- Wiele źródłowych baz danych można przenieść do pojedynczej bazy danych w celu konsolidacji.
W dwóch artykułach omówimy migrację bazy danych Oracle do bazy danych MySQL za pomocą usługi migracji bazy danych. Ten artykuł ma następujące sekcje:
- Ustawianie środowiska
- Tworzenie użytkownika uprawnień
- Tworzenie klucza szyfrującego
- Tworzenie instancji baz danych Oracle i MySQL na RDS
- Przygotowywanie baz danych Oracle i MySQL dla DMS
- Wniosek
Ustawianie środowiska
Jedynym warunkiem wstępnym jest konto AWS, które można utworzyć pod tym linkiem.
Tworzenie użytkownika uprawnień
Aby uzyskać dostęp do DMS, użytkownik musi uzyskać uprawnienia i role. Aby uzyskać dostęp do innych usług z DMS, wymagane są dodatkowe uprawnienia; niektóre działania są wymagane od innych usług AWS, takich jak KMS, IAM, EC2 lub CloudWatch. W tej sekcji utworzymy użytkownika IAM i dołączymy politykę dla wymaganego zestawu uprawnień. Wybierz usługę AWS IAM i kliknij Dodaj użytkownika , jak pokazano na rysunku 1.
Rysunek 1: Dodaj użytkownika
W Dodaj użytkownika , określ Nazwę użytkownika (dvohra) i wybierz oba Typ dostępu opcje, jak pokazano na rysunku 2.
Rysunek 2: Konfigurowanie nowego użytkownika
Wybierz Hasło niestandardowe opcji Hasło konsoli, określ własne hasło i kliknij Dalej, jak pokazano na rysunku 3.
Rysunek 3: Określanie hasła
W Uprawnieniach , wybierz Załącz bezpośrednio istniejące zasady opcję i kliknij Utwórz zasady aby utworzyć politykę do dołączenia, jak pokazano na rysunku 4.
Rysunek 4: Dodaj użytkownika>Utwórz politykę
W Utwórz zasady , wybierz Utwórz własną politykę jak pokazano na rysunku 5.
Rysunek 5: Stwórz własną politykę
W Zasadach recenzowania , określ nazwę zasady (DMS) i skopiuj następującą zasadę do Dokumentu zasad .
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" } ] }
Kliknij Zweryfikuj zasady oraz jeśli komunikat Zasady są prawidłowe jest generowany (patrz Rysunek 6), kliknij Utwórz politykę , również pokazane na rysunku 6.
Rysunek 6: Utwórz zasadę
W Utwórz użytkownika kreatora, wybierz nowo utworzony DMS polityki i kliknij Dalej, jak pokazano na rysunku 7.
Rysunek 7: Wybór zasad do dołączenia do użytkownika
W Przeglądzie kliknij Utwórz użytkownika , jak pokazano na rysunku 8.
Rysunek 8: Recenzja>Utwórz użytkownika
Zostanie utworzony nowy użytkownik, jak pokazano na rysunku 9.
Rysunek 9: Utworzono nowego użytkownika
Nowy użytkownik zostanie dodany do Konsoli IAM>Użytkownicy , jak pokazano na rysunku 10.
Rysunek 10: Użytkownicy uprawnień
Po utworzeniu nowego użytkownika musielibyśmy zalogować się jako nowy użytkownik, aby utworzyć migrację DMS. Link logowania do konsoli zalogować się jako nowy użytkownik uzyskany z poświadczeń bezpieczeństwa dla nowego użytkownika (patrz Rysunek 11).
Rysunek 11: Link do logowania do konsoli
Po utworzeniu użytkownika uprawnień do DMS wyloguj się jako użytkownik root, jak pokazano na rysunku 12.
Rysunek 12: Wyloguj się jako użytkownik root
Otwórz adres URL logowania w przeglądarce, określ nazwę użytkownika i hasło, a następnie kliknij Zaloguj się, jak pokazano na rysunku 13.
Rysunek 13: Logowanie jako nowy użytkownik uprawnień
Tworzenie klucza szyfrującego
Upewnij się, że jesteś zalogowany jako użytkownik uprawnień utworzony w poprzedniej sekcji. Musimy stworzyć klucz szyfrowania, który będzie używany jako klucz główny podczas tworzenia migracji DMS. Szyfrowanie należy utworzyć po zalogowaniu się jako nowy użytkownik uprawnień, a nie jako użytkownik root. Wybierz Klucze szyfrowania w konsoli uprawnień i kliknij Utwórz klucz , jak pokazano na rysunku 14.
Rysunek 14: Utwórz klucz
W Utwórz alias i opis , określ alias (dms ) i kliknij Następny krok, jak pokazano na rysunku 15.
Rysunek 15: Określanie aliasu
W Dodaj tagi kliknij Następny krok, ponieważ tagi nie są wymagane. W Key Administrators wybierz użytkownika IAM dodanego jako administrator (patrz Rysunek 16). Wybierz opcję Usuwanie klucza jako Zezwalaj administratorom kluczy na usunięcie tego klucza i kliknij Następny krok.
Rysunek 16: Kluczowi administratorzy
W Zdefiniuj uprawnienia do używania klucza wybierz użytkowników i role uprawnień, które mogą używać klucza szyfrowania; wybierz nowego użytkownika uprawnień i rolę dms-vpc , jak pokazano na rysunku 17. Kliknij Następny krok.
Rysunek 17: Definiowanie uprawnień do użycia klucza
W oknie Preview Key Policy kliknij przycisk Finish, jak pokazano na rysunku 18.
Rysunek 18: Podgląd zasad dotyczących kluczy
Zostanie utworzony nowy klucz szyfrowania, jak pokazano na rysunku 19.
Rysunek 19: Utworzono klucz szyfrowania
Tworzenie instancji baz danych Oracle i MySQL na RDS
Ponieważ będziemy używać instancji Oracle i MySQL RDS DB odpowiednio jako źródła i celu migracji DMS, utwórz dwie instancje RDS, jedną dla bazy danych Oracle SE, a drugą dla MySQL. Podczas tworzenia instancji RDS w Konfiguruj ustawienia zaawansowane, wybierz Sieć i zabezpieczenia, aby utworzyć nowy VPC, utwórz nową grupę podsieci DB i utwórz nową grupę bezpieczeństwa, jak pokazano na rysunku 20 dla Oracle DB. Jeśli konto AWS ma limit maksymalnej liczby VPC, usuń niektóre nieużywane VPC przed utworzeniem instancji RDS.
Rysunek 20: Konfiguracja ustawień zaawansowanych
Instancje RDS dla Oracle i MySQL pokazano na rysunku 21.
Rysunek 21: Instancje bazy danych RDS
Grupy zabezpieczeń utworzone automatycznie nie mają wymaganych reguł ruchu przychodzącego/wychodzącego, które należy zmodyfikować. Kliknij łącze Security Groups w konsoli RDS, jak pokazano dla bazy danych MySQL na rysunku 22.
Rysunek 22: Grupy bezpieczeństwa
Kliknij Edytuj dla grupy zabezpieczeń Przychodzące, jak pokazano na rysunku 23.
Rysunek 23: Grupa bezpieczeństwa>Edytuj
W Edytuj reguły ruchu przychodzącego wybierz opcję Type as All traffic, Protocol as All, Port Range as 0-65535, Source as Anywhere i kliknij Zapisz, jak pokazano na rysunku 24.
Rysunek 24: Edytuj reguły ruchu przychodzącego
Zmodyfikowane reguły ruchu przychodzącego pokazano na rysunku 25.
Rysunek 25: Zmodyfikowane reguły ruchu przychodzącego
Reguły ruchu wychodzącego domyślnie zezwalają na cały ruch (patrz Rysunek 26).
Rysunek 26: Reguły wychodzące
Domyślna grupa bezpieczeństwa utworzona dla Oracle DB na RDS również nie zezwala na cały ruch, jak pokazano na rysunku 27.
Rysunek 27: Grupa bezpieczeństwa dla Oracle DB na RDS
Zmodyfikuj grupę bezpieczeństwa Inbound dla Oracle DB na RDS za pomocą przycisku Edit, podobnie jak modyfikowanie reguł Inbound grupy bezpieczeństwa bazy danych MySQL, aby zezwolić na cały ruch, jak pokazano na rysunku 28.
Rysunek 28: Grupa bezpieczeństwa dla Oracle DB na RDS
Zanotuj główną nazwę użytkownika i hasło główne skonfigurowane dla każdej instancji bazy danych podczas tworzenia instancji, jak pokazano dla bazy danych MySQL na rysunku 29. Ponadto podczas tworzenia bazy danych MySQL na RDS żadne z ustawień konfiguracyjnych (nazwa bazy danych , identyfikator instancji bazy danych, główna nazwa użytkownika, główne hasło) powinny być słowami zastrzeżonymi MySQL, takimi jak „MYSQL”.
Rysunek 29: Główna nazwa użytkownika i główne hasło
Przygotowywanie baz danych Oracle i MySQL dla DMS
Aby używać Oracle DB i MySQL DB na RDS jako odpowiednio źródło i cel DMS, musimy skonfigurować niektóre ustawienia w instancjach DB. Połącz się z instancjami Oracle i MySQL DB w powłoce wiersza poleceń, aby skonfigurować ustawienia. Aby połączyć się z instancjami RDS DB w powłoce wiersza poleceń, musimy uzyskać Endpoint dla instancji RDS. Punkt końcowy bazy danych Oracle na RDS jest pokazany w konsoli RDS na rysunku 30.
Rysunek 30: Punkt końcowy dla Oracle DB na RDS
Połącz się z instancją Oracle DB za pomocą następującego sqlplus komenda, w której HOST, SID,PORT mogą być różne dla różnych użytkowników; wartość HOST jest uzyskiwana przez usunięcie sufiksu portu z punktu końcowego.
sqlplus [email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=orcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.com)(PORT=1521)) (CONNECT_DATA=(SID=ORCL)))
Interfejs wiersza poleceń SQL*Plus łączy się z bazą danych Oracle na RDS (patrz Rysunek 31).
Rysunek 31: SQL*Plus CLI połączony z bazą danych Oracle
Włącz dodatkowe rejestrowanie na poziomie bazy danych dla DMS.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
Procedura PL/SQL zostaje zakończona, jak pokazano na rysunku 32.
Rysunek 32: Włączanie dodatkowego rejestrowania na poziomie bazy danych
Włącz także PRIMARY KEY logowanie na poziomie bazy danych.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging ('ADD','PRIMARY KEY');
KLUCZ PODSTAWOWY logowanie zostaje włączone, jak pokazano na rysunku 33.
Rysunek 33: Włączanie rejestrowania KLUCZY PODSTAWOWYCH
Skonfiguruj archiwizację dzienników ponawiania dla instancji Oracle DB w RDS.
exec rdsadmin.rdsadmin_util.set_configuration ('archivelog retention hours',24);
Archiwizacja zostanie skonfigurowana, jak pokazano na rysunku 34.
Rysunek 34: Konfiguracja archiwizacji
Podczas migracji bazy danych migrowane są również tabele i dane tabel. Utwórz tabelę bazy danych wlslog w bazie danych Oracle.
CREATE TABLE wlslog(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255)); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000365','Server state changed to STANDBY'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000365','Server state changed to STARTING'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000365','Server state changed to ADMIN'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000365','Server state changed to RESUMING'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000361','Started WebLogic AdminServer'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000365','Server state changed to RUNNING'); INSERT INTO wlslog(time_stamp,category,type,servername,code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT','Notice','WebLogicServer', 'AdminServer','BEA-000360','Server started in RUNNING mode');
Aby dodać dodatkowe logowanie dla tabeli bez PRIMARY KEY logowanie, lub jeśli KLUCZ PODSTAWOWY logowanie na poziomie bazy danych nie jest ustawione, zmień tabelę, aby dodać dodatkowe logowanie.
alter table wlslog add supplemental log data (ALL) columns;
Dodatkowe rejestrowanie można również włączyć w CREATE TABLE oświadczenie.
CREATE TABLE wlslog(time_stamp VARCHAR2(255) PRIMARY KEY, category VARCHAR2(255),type VARCHAR2(255), servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255), supplemental log data(ALL) columns);
Dane wyjściowe dwóch poprzednich poleceń pokazano na rysunku 35.
Rysunek 35: Dodawanie dodatkowego rejestrowania do już utworzonej tabeli lub do nowej tabeli
Następnie przygotuj instancję MySQL DB na RDS do migracji DMS. Aby połączyć się z bazą danych MySQL, uzyskaj punkt końcowy (patrz Rysunek 36.
Rysunek 36: Punkt końcowy dla bazy danych MySQL na RDS
Host uzyskuje się przez usunięcie sufiksu portu z punktu końcowego. Używając MySQL CLI, połącz się z MySQL z wiersza poleceń.
mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com -P 3306 -u dvohra -p
MySQL CLI łączy się z instancją MySQL DB na RDS, jak pokazano na rysunku 37.
Rysunek 37: Łączenie się z MySQL z MySQL CLI
Następnie utwórz i przyznaj uprawnienia do odczytu i zapisu bazy danych MySQL użytkownikowi DMS (dvohra).
CREATE USER '<user acct>'@'%' IDENTIFIED BY <user password>';??? Remove as user dvohra already exists GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON myschema.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
Zastępując konto użytkownika jako dvohra, dane wyjściowe niektórych poleceń pokazano na rysunku 38.
Rysunek 38: Przyznawanie dostępu do bazy danych MySQL użytkownikowi DMS
Wniosek
W tym artykule przedstawiliśmy migrację bazy danych Oracle na RDS do bazy danych MySQL na RDS przy użyciu usługi migracji bazy danych AWS. W tym artykule omówiliśmy konfigurację źródłowej i docelowej bazy danych. W kolejnym artykule utworzymy i uruchomimy migrację.