Ein Datenbankmigrationsdienst kann verwendet werden, um eine Datenbank nicht nur zwischen zwei RDS-DB-Instances zu migrieren, sondern die Quelle/das Ziel kann auch eine Nicht-RDS-Datenbank sein. Die einzige Voraussetzung ist, dass mindestens einer der Datenbankendpunkte einer DMS-Migration eine AWS-basierte Datenbank ist. Die AWS-basierte Datenbank könnte eine RDS-DB-Instance, Redshift, MongoDB oder eine auf EC2 gehostete Datenbank sein. In vier Artikeln besprechen wir die Migration einer Oracle-Datenbank von EC2 zu RDS. Dieser Artikel hat die folgenden Abschnitte:
- Einstellung der Umgebung
- Erstellen einer Oracle-Datenbankinstanz auf AWS RDS
- Verbindung zu einer Oracle-Datenbankinstanz auf RDS herstellen
- Erstellen einer EC2-Instanz
- Erstellen und Starten einer Oracle-Datenbankinstanz auf EC2
- Herstellen einer Verbindung zu einer Oracle-Datenbankinstanz auf EC2
- Schlussfolgerung
Einstellung der Umgebung
Erstellen Sie zunächst ein AWS-Konto. Erstellen Sie als Nächstes einen KMS-Hauptschlüssel (dms).
Erstellen einer Oracle-Datenbankinstanz auf AWS RDS
Erstellen Sie eine RDS-DB-Instance für die Oracle-Datenbank. Wählen Sie Oracle aus als Engine im RDS-Dashboard, wie in Abbildung 1 gezeigt.
Abbildung 1: Oracle-Datenbank als RDS-Engine auswählen
Für Produktion? , wählen Sie Entwicklung/Test aus , wie in Abbildung 2 gezeigt, und klicken Sie auf Nächster Schritt .
Abbildung 2: Anwendungsfall als Entwicklung/Test auswählen
In DB-Details angeben , aktivieren Sie das Kontrollkästchen Nur Optionen anzeigen, die für das kostenlose Kontingent von RDS infrage kommen . Die Standardeinstellungen für das kostenlose Kontingent sind in Abbildung 3 dargestellt.
Abbildung 3: DB-Details angeben
Geben Sie die DB-Instance-ID an (ORCL) und geben Sie einen Master-Benutzernamen an und Master-Passwort , wie in Abbildung 4 gezeigt. Klicken Sie auf Nächster Schritt .
Abbildung 4: Angeben der DB-Instanzkennung
Unter Erweiterte Einstellungen konfigurieren , wählen Sie die Option Neue VPC erstellen aus , wie in Abbildung 5 gezeigt. Wählen Sie außerdem die Option Neue DB-Subnetzgruppe erstellen aus , und legen Sie Öffentlich zugänglich fest auf Ja . Legen Sie die Verfügbarkeitszone fest auf Keine Präferenz . Wählen Sie die Option Neue Sicherheitsgruppe erstellen aus . In den Datenbankoptionen Kopfzeile, geben Sie einen Datenbanknamen an (ORCL), Datenbankport (1521) und behalten Sie die Standardeinstellungen für DB Parameter Group bei und Optionsgruppe .
Abbildung 5: Erweiterte Einstellungen konfigurieren
Behalten Sie die anderen Optionen als Standard bei, einschließlich derjenigen für Sicherung, Überwachung und Wartung (siehe Abbildung 6). Klicken Sie auf DB-Instanz starten .
Abbildung 6: Konfigurieren anderer erweiterter Einstellungen und Starten von DB Instance
Die Meldung Ihre DB-Instanz wird erstellt wird angezeigt, wie in Abbildung 7 gezeigt. Klicken Sie auf View Your DB Instances .
Abbildung 7: DB-Instanz wird erstellt
Eine neue DB-Instance wird erstellt, wie in Abbildung 8 gezeigt. Der Endpoint hat das Format Hostname:Port und wir verwenden den Hostnamen wenn wir den Endpunkt der Zieldatenbank in einem späteren Abschnitt konfigurieren. Wenn eine Oracle-Datenbank als Ziel in einer DMS-Migration verwendet wird, muss jedes in einer Migration verwendete Zielschema erstellt werden, bevor die Migration ausgeführt wird. Wir werden das Schema DVOHRA verwenden erstellt in der Oracle-Datenbank auf RDS.
Abbildung 8: ORCL der RDS-DB-Instanz
Damit eine DMS-Replikations-Instance eine Verbindung zur RDS-DB-Instance herstellen kann, ändern Sie die eingehenden Regeln der Sicherheitsgruppe, um den gesamten Datenverkehr zuzulassen. Klicken Sie auf den Link in Sicherheitsgruppen in Abbildung 8. Die Sicherheitsgruppenkonsole wird angezeigt, wie in Abbildung 9 gezeigt. Wählen Sie Eingehend aus und klicken Sie auf Bearbeiten .
Abbildung 9: Sicherheitsgruppe>Eingehend>Bearbeiten
Unter Eingangsregeln bearbeiten , legen Sie Typ fest zu Alle Zugriffe , Protokoll an Alle , Portbereich bis 0-65535, Quelle nach überall , und klicken Sie auf Speichern , wie in Abbildung 10 gezeigt.
Abbildung 10: Eingehende Regeln bearbeiten
Die Eingangsregeln werden modifiziert, um den gesamten Datenverkehr zuzulassen (siehe Abbildung 11).
Abbildung 11: Eingehende Regeln so eingestellt, dass der gesamte Datenverkehr zugelassen wird
Der Ausgang Regeln müssen nicht geändert werden, da sie bereits so eingestellt sind, dass sie den gesamten Datenverkehr zulassen, wie in Abbildung 12 gezeigt.
Abbildung 12: Ausgehende Regeln
Verbindung zu einer Oracle-Datenbankinstanz auf RDS herstellen
Um die Oracle-Datenbank als Ziel zu verwenden, müssen wir dem DMS-Benutzer bestimmte Berechtigungen in der Oracle-Datenbank gewähren. Stellen Sie über die SQL*Plus-Befehlszeilenschnittstelle eine Verbindung zur Oracle-Datenbank her, um die Berechtigungen zu erteilen.
C:appdeepakproduct12.1.0dbhome_1BIN>sqlplus [email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=orcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.com) (PORT=1521))(CONNECT_DATA=(SID=ORCL))) SQL*Plus: Release 12.1.0.1.0 Production on Sun Sep 17 14:11:18 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Release 11.2.0.4.0 - 64bit Production SQL>
Gewähren Sie als Nächstes dem DMS-Benutzer Berechtigungen, die für verschiedene Benutzer unterschiedlich sind.
SQL> GRANT SELECT ANY TRANSACTION to DVOHRA; Grant succeeded. SQL> GRANT CREATE SESSION,CREATE ANY TABLE to DVOHRA; Grant succeeded. SQL> GRANT CREATE ANY INDEX to DVOHRA; Grant succeeded. SQL> GRANT DROP ANY TABLE to DVOHRA; Grant succeeded. SQL> GRANT SELECT ANY TABLE to DVOHRA; Grant succeeded. SQL> GRANT INSERT ANY TABLE to DVOHRA; Grant succeeded. SQL> GRANT UPDATE ANY TABLE to DVOHRA; Grant succeeded. SQL> GRANT CREATE ANY VIEW to DVOHRA; Grant succeeded. SQL> GRANT DROP ANY VIEW to DVOHRA; Grant succeeded. SQL> GRANT CREATE ANY PROCEDURE to DVOHRA; Grant succeeded. SQL> GRANT ALTER ANY PROCEDURE to DVOHRA; Grant succeeded. SQL> GRANT DROP ANY PROCEDURE to DVOHRA; Grant succeeded. SQL> GRANT CREATE ANY SEQUENCE to DVOHRA; Grant succeeded. SQL> GRANT ALTER ANY SEQUENCE to DVOHRA; Grant succeeded. SQL> GRANT DROP ANY SEQUENCE to DVOHRA; Grant succeeded. SQL>
Erstellen einer EC2-Instanz
Um eine Oracle-Datenbank-Instance auf EC2 zu erstellen, wählen Sie ein AMI aus dem AWS Marketplace aus. Es sind mehrere verschiedene AMIs für die Oracle-Datenbank verfügbar. Wählen Sie Oracle Database 11g Standard Edition aus , wie in Abbildung 13 gezeigt.
Abbildung 13: Auswählen von AMI für Oracle Database auf EC2
Die Oracle Database AMI-basierte EC2-Instance ist in Abbildung 14 dargestellt. Rufen Sie die öffentliche IPv4-IP ab Adresse der EC2-Instanz aus der EC2-Verwaltungskonsole.
Abbildung 14: EC2-Instanz für Oracle Database
Die Eingangsregeln für die Sicherheitsgruppe, in der die EC2-Instanz erstellt wird, sollten Datenverkehr zulassen, wie in Abbildung 15 gezeigt. Zumindest sollte eine Verbindung zur IP-Adresse der Replikationsinstanz bereitgestellt werden.
Abbildung 15: Eingehende Sicherheitsgruppenregeln zum Zulassen des gesamten Datenverkehrs
Ebenso der Outbound Regeln sollten den gesamten Datenverkehr zulassen (siehe Abbildung 16).
Abbildung 16: Ausgehende Regeln
Erstellen und Starten einer Oracle-Datenbankinstanz auf EC2
Stellen Sie von einem lokalen Computer aus eine Verbindung zur EC2-Instance her, indem Sie die öffentliche IP-Adresse der EC2-Instance und das Schlüsselpaar verwenden, das zum Erstellen der EC2-Instance verwendet wurde. Die Berechtigungen für das Schlüsselpaar müssen auf 400 gesetzt werden.
[[email protected] ~]# chmod 400 rhel.pem [[email protected] ~]# ssh -i "rhel.pem" [email protected]
Die Oracle Database-Software wird installiert, wie in der Meldung in Abbildung 17 angegeben. Die Meldung weist auch darauf hin, dass zur Verwendung der Software eine Datenbank erstellt werden muss. Eine Benutzeraufforderung wird angezeigt „Möchten Sie jetzt eine Datenbank erstellen [y|n].“
Abbildung 17: Herstellen einer Verbindung zur EC2-Instanz und Installieren der Oracle-Datenbanksoftware
Geben Sie y an um eine Datenbank zu erstellen, wie in Abbildung 18 gezeigt. Eine Benutzeraufforderung zur Angabe eines Namens für die Oracle-Datenbank wird angezeigt, wie in Abbildung 18 gezeigt. Der angegebene Name wird als Oracle-SID verwendet.
Abbildung 18: Benutzeraufforderung zur Angabe einer Oracle-SID
Geben Sie SID als ORCL an und klicken Sie auf Eingabe. Eine Benutzeraufforderung zur Angabe eines Kennworts für den SYS-Benutzer wird angezeigt, wie in Abbildung 19 gezeigt.
Abbildung 19: Benutzeraufforderung zur Angabe eines Kennworts für den SYS-Benutzer
Geben Sie das SYS-Passwort erneut an der Eingabeaufforderung Confirm SYS Password ein, wie in Abbildung 20 gezeigt. Eine weitere Benutzeraufforderung zur Angabe eines Passworts für den SYSTEM-Benutzer wird angezeigt.
Abbildung 20: Benutzeraufforderung zur Angabe des Passworts für den SYSTEM-Benutzer
Geben Sie auf ähnliche Weise ein Kennwort für jeden der DBSNMP-, SYSMAN- und ADMIN-Benutzer an. Die Datenbank wird erstellt (siehe Abbildung 21).
Abbildung 21: Oracle-Datenbank erstellen
Die Datenbank wird auf EC2 installiert. Die vollständige Ausgabe wird aufgelistet:
The Oracle Database Software (ORACLE_HOME) has been installed at /u01/app/oracle/product/11.2.0/db1. Before you can use the Oracle Software, you will need to create a database. Would you like to create a database now [y|n]: y Please enter the name for your Oracle Database. This name will be used as your ORACLE SID (System Identifier): ORCL Please specify the passwords for the database administrative accounts. All passwords must be a minimum of 6 characters in length and must contain a combination of letters and numbers. SYS (Database Administrative Account) Password: Confirm SYS password: SYSTEM (Database Administrative Account) Password: Confirm SYSTEM password: DBSNMP (Enterprise Manager Administrative Account) Password: Confirm DBSNMP password: SYSMAN (Enterprise Manager Administrative Account) Password: Confirm SYSMAN password: ADMIN Password: Confirm ADMIN password: Please wait while your database is created, it may take up to 15 minutes. Copying database files 1% complete 3% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 57% complete 60% complete 62% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ ORCL.log" for further details. Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0 Copyright (c) 1996, 2013 Oracle Corporation. All rights reserved. https://ip-172-30-4-238:1158/em/console/aboutApplication Stopping Oracle Enterprise Manager 11g Database Control ... ... Stopped. SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 17 19:45:25 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> Connected. SQL> Database closed. Database dismounted. ORACLE instance shut down. SQL> ORACLE instance started. Total System Global Area 4676636672 bytes Fixed Size 2261048 bytes Variable Size 939528136 bytes Database Buffers 3724541952 bytes Redo Buffers 10305536 bytes Database mounted. SQL> Database altered. SQL> Database altered. SQL> Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0 Copyright (c) 1996, 2013 Oracle Corporation. All rights reserved. https://ip-172-30-4-238:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 11g Database Control .... started. ------------------------------------------------------------------ Logs are generated in directory /u01/app/oracle/product/11.2.0/db1 /ip-172-30-4-238_ORCL/sysman/log Adding ORACLE_SID=ORCL to /home/oracle/.bash_profile The database was created successfully. The database and config was created successfully. To use the database web console, navigate to https://34.234.193 .179:1158/em and login with the username SYSMAN and the password you created earlier for the SYSMAN account. Note that you must have properly configured your security groups to allow the IP you are browsing from to connect to port 1158 on the database instance. To connect to the database from the command line, type 'sudo su - oracle' to change to the oracle user. To start working with the database instance type 'sqlplus / as sysdba' Thank You for choosing Oracle Database on EC2!
Verbindung zu einer Oracle-Datenbankinstanz auf EC2 herstellen
Legen Sie den Oracle-Benutzer als oracle fest mit folgendem Befehl:
[email protected] ~> sudo su - oracle
Starten Sie eine SQL*Plus-CLI, um von der Befehlszeile aus eine Verbindung zur Datenbank herzustellen.
[email protected] ~> sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 17 19:47:30 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Release 11.2.0.4.0 - 64bit Production SQL>
Schlussfolgerung
In diesem ersten von vier Artikeln zum Migrieren einer Oracle-Datenbankinstanz von EC2 zu RDS haben wir damit begonnen, eine Oracle-Datenbankinstanz auf EC2 und eine weitere auf RDS zu erstellen. Im zweiten Artikel erstellen wir einen IAM-Benutzer, eine zu migrierende Datenbanktabelle und eine Replikationsinstanz, einschließlich Replikationsendpunkten.