Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So migrieren Sie eine Oracle-Datenbank von AWS EC2 zu AWS RDS

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.