Migration von Oracle Database zu Amazon RDS for Oracle mit AWS Schema Conversion Tool - AWS Schema Conversion Tool

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migration von Oracle Database zu Amazon RDS for Oracle mit AWS Schema Conversion Tool

Einige Dinge, die Sie bei der Migration von Oracle-Schema und Code zu Amazon RDS for Oracle beachten sollten:

  • AWS SCT kann Verzeichnisobjekte zum Objektbaum hinzufügen. Verzeichnisobjekte sind logische Strukturen, die jeweils ein physisches Verzeichnis im Dateisystem des Servers darstellen. Sie können Verzeichnisobjekte mit Paketen wie DBMS _LOB, UTL _FILE, DBMS FILE _ _TRANSFER, dem DATAPUMP Hilfsprogramm usw. verwenden.

  • AWS SCT unterstützt die Konvertierung von Oracle-Tablespaces in eine Amazon RDS for Oracle-DB-Instance. Oracle speichert Daten logisch in Tabellenräumen und physisch in Datendateien, die dem entsprechenden Tabellenraum zugeordnet sind. In Oracle können Sie einen Tabellenraum mit Datendateinamen erstellen. Amazon RDS unterstützt Oracle Managed Files (OMF) nur für Datendateien, Protokolldateien und Kontrolldateien. AWS SCT erstellt die benötigten Datendateien während der Konvertierung.

  • AWS SCT kann Rollen und Rechte auf Serverebene konvertieren. Die Oracle-Datenbank-Engine verwendet rollenbasierte Sicherheit. Eine Rolle ist eine Sammlung von Sonderrechten, die Sie einem Benutzer gewähren oder entziehen können. Eine vordefinierte Rolle in AmazonRDS, genanntDBA, gewährt normalerweise alle Administratorrechte auf einer Oracle-Datenbank-Engine. Die folgenden Rechte sind für die DBA Rolle in einer RDS Amazon-DB-Instance, die die Oracle-Engine verwendet, nicht verfügbar:

    • Ändern der Datenbank

    • Ändern des Systems

    • Erstellen eines Verzeichnisses

    • Gewähren von Sonderrechten

    • Gewähren einer Rolle

    • Erstellen eines externen Auftrags

    Sie können einer Amazon RDS for Oracle-Benutzerrolle alle anderen Rechte gewähren, einschließlich erweiterter Filter- und Spaltenberechtigungen.

  • AWS SCT unterstützt die Konvertierung von Oracle-Jobs in Jobs, die auf Amazon RDS for Oracle ausgeführt werden können. Es gibt einige Einschränkungen für die Konvertierung, unter anderem:

    • Ausführbare Aufträge werden nicht unterstützt.

    • Zeitplanjobs, die den ANYDATA Datentyp als Argument verwenden, werden nicht unterstützt.

  • Oracle Real Application Clusters (RAC) One Node ist eine Option zur Oracle Database Enterprise Edition, die mit Oracle Database 11g Release 2 eingeführt wurde. Amazon RDS for Oracle unterstützt die RAC Funktion nicht. Verwenden Sie Amazon RDS Multi-AZ für eine hohe Verfügbarkeit.

    In einer Multi-AZ-Bereitstellung stellt Amazon RDS automatisch ein synchrones Standby-Replikat in einer anderen Availability Zone bereit und verwaltet es. Die primäre DB-Instance wird über die Availability Zone synchron auf eine Standby-Replikation repliziert. Diese Funktionalität sorgt für Datenredundanz, vermeidet das Einfrieren von E/A-Vorgängen und minimiert Latenzspitzen während der Durchführung von Systemsicherungen.

  • Oracle Spatial bietet ein SQL Schema und Funktionen, die das Speichern, Abrufen, Aktualisieren und Abfragen von Geodatensammlungen in einer Oracle-Datenbank erleichtern. Oracle Locator bietet Funktionen, die normalerweise zur Unterstützung von auf Internet- und Mobilfunkdiensten basierenden Anwendungen und partnerbasierten Lösungen erforderlich sind. GIS Oracle Locator ist ein begrenzter Teilbereich von Oracle Spatial.

    Um die Funktionen von Oracle Spatial und Oracle Locator zu verwenden, fügen Sie die SPATIAL Option oder LOCATOR Option (sich gegenseitig ausschließend) zur Optionsgruppe Ihrer DB-Instance hinzu.

    Es gibt einige Voraussetzungen für die Verwendung von Oracle Spatial und Oracle Locator auf einer Amazon RDS for Oracle DB-Instance:

    • Die Instance sollte Oracle Enterprise Edition Version 12.1.0.2.v6 oder höher oder 11.2.0.4.v10 oder höher verwenden.

    • Die Instanz sollte sich in einer virtuellen privaten Cloud () befinden. VPC

    • Die Instance sollte die Version der DB-Instance-Klasse sein, die die Oracle-Funktion unterstützen kann. Beispiel: Oracle Spatial wird für die DB-Instance-Klassen db.m1.small, db.t1.micro, db.t2.micro und db.t2.small nicht unterstützt. Weitere Informationen finden Sie unter Unterstützung von DB-Instance-Klassen für Oracle.

    • Die Instance muss die Option „Auto Minor Version Upgrade“ (Upgrade einer Unterversion automatisch durchführen) aktiviert haben. Amazon RDS aktualisiert Ihre DB-Instance auf die neueste Version von Oracle, PSU wenn Sicherheitslücken mit einem CVSS Wert von mehr als 9 oder andere gemeldete Sicherheitslücken vorliegen. Weitere Informationen finden Sie unter

      Einstellungen für Oracle-DB-Instances.

    • Wenn Ihre DB-Instance Version 11.2.0.4.v10 oder höher ist, müssen Sie die Option installieren. XMLDB Weitere Informationen finden Sie unter

      XMLOracle-DB.

    • Sie sollten über eine Oracle Spatial-Lizenz von Oracle verfügen. Weitere Informationen finden Sie unter Oracle Spatial and Graph in der Oracle-Dokumentation.

  • Data Guard ist in der Oracle Database Enterprise Edition enthalten. Verwenden Sie für eine hohe Verfügbarkeit die Amazon RDS Multi-AZ-Funktion.

    In einer Multi-AZ-Bereitstellung stellt Amazon RDS automatisch ein synchrones Standby-Replikat in einer anderen Availability Zone bereit und verwaltet es. Die primäre DB-Instance wird über die Availability Zone synchron auf eine Standby-Replikation repliziert. Diese Funktionalität sorgt für Datenredundanz, vermeidet das Einfrieren von E/A-Vorgängen und minimiert Latenzspitzen während der Durchführung von Systemsicherungen.

  • AWS SCT unterstützt die Konvertierung von DBMS SCHEDULER Oracle_-Objekten bei der Migration zu Amazon RDS for Oracle. Aus dem AWS SCT Bewertungsbericht geht hervor, ob ein Zeitplanobjekt konvertiert werden kann. Weitere Informationen zur Verwendung von Zeitplanobjekten mit Amazon RDS finden Sie in der RDSAmazon-Dokumentation.

  • Für Konvertierungen von Oracle zu Amazon RDS für Oracle wird DB Links unterstützt. Ein Datenbanklink ist ein Schemaobjekt in einer Datenbank, mit dessen Hilfe Sie auf Objekte in einer anderen Datenbank zugreifen können. Die andere Datenbank muss keine Oracle-Datenbank sein. Für den Zugriff auf andere als Oracle-Datenbanken müssen Sie jedoch Oracle Heterogeneous Services verwenden.

    Sobald Sie einen Datenbank-Link erstellt haben, können Sie den Link in SQL Anweisungen verwenden, um auf Tabellen, Ansichten und SQL PL/Objekte in der anderen Datenbank zu verweisen. Um einen Datenbank-Link zu verwenden, fügen Sie ihn @dblink an den Tabellen-, View- oder SQL PL/Objektnamen an. Mit der Anweisung können Sie eine Tabelle oder Ansicht in der anderen Datenbank abfragen. SELECT Weitere Informationen zur Verwendung von Oracle-Datenbanklinks finden Sie in der Oracle-Dokumentation.

    Weitere Informationen zur Verwendung von Datenbank-Links mit Amazon RDS finden Sie in der RDSAmazon-Dokumentation.

  • Der AWS SCT Bewertungsbericht enthält Servermetriken für die Konvertierung. Zu diesen Metriken über Ihre Oracle-Instance gehören:

    • Datenverarbeitungs- und Speicherkapazität der Ziel-DB-Instance.

    • Nicht unterstützte Oracle-Funktionen wie Real Application Clusters, die Amazon RDS nicht unterstützt.

    • Datenträger-Lese-/Schreib-Last

    • Durchschnittlicher Datenträger-Gesamtdurchsatz

    • Serverinformationen wie Servername, Betriebssystem, Hostname und Zeichensatz.

Rechte RDS für Oracle als Ziel

Um zu Amazon RDS for Oracle zu migrieren, erstellen Sie einen privilegierten Datenbankbenutzer. Sie können das folgende Codebeispiel verwenden.

CREATE USER user_name IDENTIFIED BY your_password; -- System privileges GRANT DROP ANY CUBE BUILD PROCESS TO user_name; GRANT ALTER ANY CUBE TO user_name; GRANT CREATE ANY CUBE DIMENSION TO user_name; GRANT CREATE ANY ASSEMBLY TO user_name; GRANT ALTER ANY RULE TO user_name; GRANT SELECT ANY DICTIONARY TO user_name; GRANT ALTER ANY DIMENSION TO user_name; GRANT CREATE ANY DIMENSION TO user_name; GRANT ALTER ANY TYPE TO user_name; GRANT DROP ANY TRIGGER TO user_name; GRANT CREATE ANY VIEW TO user_name; GRANT ALTER ANY CUBE BUILD PROCESS TO user_name; GRANT CREATE ANY CREDENTIAL TO user_name; GRANT DROP ANY CUBE DIMENSION TO user_name; GRANT DROP ANY ASSEMBLY TO user_name; GRANT DROP ANY PROCEDURE TO user_name; GRANT ALTER ANY PROCEDURE TO user_name; GRANT ALTER ANY SQL TRANSLATION PROFILE TO user_name; GRANT DROP ANY MEASURE FOLDER TO user_name; GRANT CREATE ANY MEASURE FOLDER TO user_name; GRANT DROP ANY CUBE TO user_name; GRANT DROP ANY MINING MODEL TO user_name; GRANT CREATE ANY MINING MODEL TO user_name; GRANT DROP ANY EDITION TO user_name; GRANT CREATE ANY EVALUATION CONTEXT TO user_name; GRANT DROP ANY DIMENSION TO user_name; GRANT ALTER ANY INDEXTYPE TO user_name; GRANT DROP ANY TYPE TO user_name; GRANT CREATE ANY PROCEDURE TO user_name; GRANT CREATE ANY SQL TRANSLATION PROFILE TO user_name; GRANT CREATE ANY CUBE TO user_name; GRANT COMMENT ANY MINING MODEL TO user_name; GRANT ALTER ANY MINING MODEL TO user_name; GRANT DROP ANY SQL PROFILE TO user_name; GRANT CREATE ANY JOB TO user_name; GRANT DROP ANY EVALUATION CONTEXT TO user_name; GRANT ALTER ANY EVALUATION CONTEXT TO user_name; GRANT CREATE ANY INDEXTYPE TO user_name; GRANT CREATE ANY OPERATOR TO user_name; GRANT CREATE ANY TRIGGER TO user_name; GRANT DROP ANY ROLE TO user_name; GRANT DROP ANY SEQUENCE TO user_name; GRANT DROP ANY CLUSTER TO user_name; GRANT DROP ANY SQL TRANSLATION PROFILE TO user_name; GRANT ALTER ANY ASSEMBLY TO user_name; GRANT CREATE ANY RULE SET TO user_name; GRANT ALTER ANY OUTLINE TO user_name; GRANT UNDER ANY TYPE TO user_name; GRANT CREATE ANY TYPE TO user_name; GRANT DROP ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY ROLE TO user_name; GRANT DROP ANY VIEW TO user_name; GRANT ALTER ANY INDEX TO user_name; GRANT COMMENT ANY TABLE TO user_name; GRANT CREATE ANY TABLE TO user_name; GRANT CREATE USER TO user_name; GRANT DROP ANY RULE SET TO user_name; GRANT CREATE ANY CONTEXT TO user_name; GRANT DROP ANY INDEXTYPE TO user_name; GRANT ALTER ANY OPERATOR TO user_name; GRANT CREATE ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY SEQUENCE TO user_name; GRANT DROP ANY SYNONYM TO user_name; GRANT CREATE ANY SYNONYM TO user_name; GRANT DROP USER TO user_name; GRANT ALTER ANY MEASURE FOLDER TO user_name; GRANT ALTER ANY EDITION TO user_name; GRANT DROP ANY RULE TO user_name; GRANT CREATE ANY RULE TO user_name; GRANT ALTER ANY RULE SET TO user_name; GRANT CREATE ANY OUTLINE TO user_name; GRANT UNDER ANY TABLE TO user_name; GRANT UNDER ANY VIEW TO user_name; GRANT DROP ANY DIRECTORY TO user_name; GRANT ALTER ANY CLUSTER TO user_name; GRANT CREATE ANY CLUSTER TO user_name; GRANT ALTER ANY TABLE TO user_name; GRANT CREATE ANY CUBE BUILD PROCESS TO user_name; GRANT ALTER ANY CUBE DIMENSION TO user_name; GRANT CREATE ANY EDITION TO user_name; GRANT CREATE ANY SQL PROFILE TO user_name; GRANT ALTER ANY SQL PROFILE TO user_name; GRANT DROP ANY OUTLINE TO user_name; GRANT DROP ANY CONTEXT TO user_name; GRANT DROP ANY OPERATOR TO user_name; GRANT DROP ANY LIBRARY TO user_name; GRANT ALTER ANY LIBRARY TO user_name; GRANT CREATE ANY LIBRARY TO user_name; GRANT ALTER ANY MATERIALIZED VIEW TO user_name; GRANT ALTER ANY TRIGGER TO user_name; GRANT CREATE ANY SEQUENCE TO user_name; GRANT DROP ANY INDEX TO user_name; GRANT CREATE ANY INDEX TO user_name; GRANT DROP ANY TABLE TO user_name; GRANT SELECT_CATALOG_ROLE TO user_name; GRANT SELECT ANY SEQUENCE TO user_name; -- Database Links GRANT CREATE DATABASE LINK TO user_name; GRANT CREATE PUBLIC DATABASE LINK TO user_name; GRANT DROP PUBLIC DATABASE LINK TO user_name; -- Server Level Objects (directory) GRANT CREATE ANY DIRECTORY TO user_name; GRANT DROP ANY DIRECTORY TO user_name; -- (for RDS only) GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO user_name; -- Server Level Objects (tablespace) GRANT CREATE TABLESPACE TO user_name; GRANT DROP TABLESPACE TO user_name; -- Server Level Objects (user roles) /* (grant source privileges with admin option or convert roles/privs as DBA) */ -- Queues grant execute on DBMS_AQADM to user_name; grant aq_administrator_role to user_name; -- for Materialized View Logs creation GRANT SELECT ANY TABLE TO user_name; -- Roles GRANT RESOURCE TO user_name; GRANT CONNECT TO user_name;

Ersetzen Sie im vorherigen Beispiel user_name durch den Namen Ihres Benutzers. Dann ersetze your_password mit einem sicheren Passwort.

Einschränkungen bei der Konvertierung von Oracle zu Amazon RDS for Oracle

Einige Einschränkungen, die Sie bei der Migration von Oracle-Schema und Code zu Amazon RDS for Oracle berücksichtigen sollten:

  • Eine vordefinierte Rolle in AmazonRDS, genanntDBA, gewährt normalerweise alle Administratorrechte auf einer Oracle-Datenbank-Engine. Die folgenden Rechte sind für die DBA Rolle in einer RDS Amazon-DB-Instance, die die Oracle-Engine verwendet, nicht verfügbar:

    • Ändern der Datenbank

    • Ändern des Systems

    • Erstellen eines Verzeichnisses

    • Gewähren von Sonderrechten

    • Gewähren einer Rolle

    • Erstellen eines externen Auftrags

    Sie können einer RDS Oracle-Benutzerrolle alle anderen Rechte gewähren.

  • Amazon RDS for Oracle unterstützt traditionelle Prüfungen, detaillierte Prüfungen mit dem FGA Paket DBMS _ und Oracle Unified Auditing.

  • Amazon RDS für Oracle unterstützt keine Erfassung von Änderungsdaten (CDC). Um dies CDC während und nach einer Datenbankmigration zu tun, verwenden Sie AWS Database Migration Service.