

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.

# Verbindung zu Oracle-Datenbanken herstellen mit dem AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle"></a>

Sie können AWS SCT es verwenden, um Schemas, Datenbankcodeobjekte und Anwendungscode aus der Oracle-Datenbank in die folgenden Ziele zu konvertieren: 
+ Amazon RDS für MySQL
+ Amazon Aurora MySQL-Compatible Edition
+ Amazon RDS für PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS für Oracle
+ Amazon RDS für MariaDB

Wenn die Quelle eine Oracle-Datenbank ist, können Kommentare in das entsprechende Format konvertiert werden, z. B. in einer PostgreSQL-Datenbank. AWS SCT kann Kommentare zu Tabellen, Ansichten und Spalten konvertieren. Kommentare können Apostrophe enthalten. Bei der Konvertierung von SQL-Anweisungen werden die Apostrophe AWS SCT verdoppelt, genau wie bei Zeichenkettenliteralen.

Weitere Informationen finden Sie unter den folgenden Topics.

**Topics**
+ [Berechtigungen für Oracle als Quelle](#CHAP_Source.Oracle.Permissions)
+ [Verbindung zu Oracle als Quelle herstellen](#CHAP_Source.Oracle.Connecting)
+ [Migration von Oracle zu Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL mit AWS Schema Conversion Tool](CHAP_Source.Oracle.ToPostgreSQL.md)
+ [Migration von Oracle zu Amazon RDS for MySQL oder Amazon Aurora MySQL mit dem AWS Schema Conversion Tool](CHAP_Source.Oracle.ToMySQL.md)
+ [Migration von Oracle Database zu Amazon RDS for Oracle mit AWS Schema Conversion Tool](CHAP_Source.Oracle.ToRDSOracle.md)

## Berechtigungen für Oracle als Quelle
<a name="CHAP_Source.Oracle.Permissions"></a>

Die für Oracle als Quelle erforderlichen Rechte lauten wie folgt: 
+ CONNECT 
+ SELECT\$1CATALOG\$1ROLE 
+ SELECT ANY DICTIONARY 
+ SELECT ON SYS.ARGUMENT\$1

## Verbindung zu Oracle als Quelle herstellen
<a name="CHAP_Source.Oracle.Connecting"></a>

Gehen Sie wie nachfolgend beschrieben vor, um mit dem AWS Schema Conversion Tool eine Verbindung zu Ihrer Oracle-Quelldatenbank herzustellen. 

**So stellen Sie eine Verbindung zu einer Oracle-Quelldatenbank her**

1. Wählen Sie im AWS Schema Conversion Tool die Option **Quelle hinzufügen** aus. 

1. Wählen Sie **Oracle** und dann **Weiter**. 

   Das Dialogfeld „**Quelle hinzufügen**“ wird angezeigt.

1. Geben Sie **unter Verbindungsname** einen Namen für Ihre Datenbank ein. AWS SCT zeigt diesen Namen in der Baumstruktur im linken Bereich an. 

1. Verwenden Sie die Datenbankanmeldedaten von AWS Secrets Manager oder geben Sie sie manuell ein:
   + Gehen Sie wie folgt vor, um Datenbankanmeldedaten von Secrets Manager zu verwenden:

     1. Wählen Sie für **AWS Secret** den Namen des Secrets aus.

     1. Wählen Sie **Auffüllen**, um alle Werte im Datenbankverbindungsdialogfeld von Secrets Manager automatisch auszufüllen.

     Hinweise zur Verwendung von Datenbankanmeldedaten von Secrets Manager finden Sie unter[Konfiguration AWS Secrets Manager in der AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Gehen Sie wie folgt vor, um die Verbindungsinformationen zur Oracle-Quelldatenbank manuell einzugeben:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

1. Wählen Sie **Verbindung testen**, um zu überprüfen, ob eine Verbindung zu Ihrer Quelldatenbank hergestellt werden AWS SCT kann. 

1. Wählen Sie **Connect**, um eine Verbindung zu Ihrer Quelldatenbank herzustellen.

# Migration von Oracle zu Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL mit AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToPostgreSQL"></a>

Beachten Sie Folgendes, wenn Sie eine Oracle-Datenbank in RDS for PostgreSQL oder Amazon Aurora PostgreSQL konvertieren.

**Topics**
+ [Rechte für PostgreSQL als Zieldatenbank](#CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget)
+ [Einstellungen für die Konvertierung von Oracle in PostgreSQL](#CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings)
+ [Oracle-Sequenzen konvertieren](#CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences)
+ [Konvertieren von Oracle ROWID](#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)
+ [Oracle Dynamic SQL wird konvertiert](#CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL)
+ [Oracle-Partitionen konvertieren](#CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning)

 AWS SCT Führt bei der Konvertierung von Oracle-Systemobjekten nach PostgreSQL Konvertierungen durch, wie in der folgenden Tabelle dargestellt.


| Oracle-Systemobjekt | Description | Konvertiertes PostgreSQL-Objekt | 
| --- | --- | --- | 
| V\$1VERSION  | Zeigt die Versionsnummern der Core-Bibliothekskomponenten in der Oracle-Datenbank an | aws\$1oracle\$1ext.v\$1version | 
| V\$1INSTANCE | Eine Ansicht, die den Status der aktuellen Instance anzeigt. | aws\$1oracle\$1ext.v\$1instance | 

Sie können AWS SCT es verwenden, um Oracle SQL\$1Plus-Dateien in psql zu konvertieren, ein terminalbasiertes Frontend für PostgreSQL. Weitere Informationen finden Sie unter [Anwendungs-SQL konvertieren mit AWS SCT](CHAP_Converting.App.md).

## Rechte für PostgreSQL als Zieldatenbank
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConfigureTarget"></a>

Um PostgreSQL als Ziel zu verwenden, ist das AWS SCT Privileg erforderlich. `CREATE ON DATABASE` Stellen Sie sicher, dass Sie dieses Recht für jede PostgreSQL-Zieldatenbank gewähren.

Um die konvertierten öffentlichen Synonyme zu verwenden, ändern Sie den Standardsuchpfad der Datenbank in. `"$user", public_synonyms, public`

Sie können das folgende Codebeispiel verwenden, um einen Datenbankbenutzer zu erstellen und die Berechtigungen zu gewähren.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

Ersetzen Sie ihn im vorherigen Beispiel *user\$1name* durch den Namen Ihres Benutzers. Ersetzen Sie es dann *db\$1name* durch den Namen Ihrer Zieldatenbank. Schließlich ersetzen Sie es *your\$1password* durch ein sicheres Passwort.

Um Amazon RDS for PostgreSQL als Ziel zu verwenden, ist die `rds_superuser` entsprechende AWS SCT Berechtigung erforderlich.

In PostgreSQL kann nur der Schemaeigentümer oder ein `superuser` ein Schema entfernen. Der Besitzer kann ein Schema und alle Objekte, die dieses Schema enthält, löschen, auch wenn der Eigentümer des Schemas einige seiner Objekte nicht besitzt.

Wenn Sie verschiedene Benutzer verwenden, um verschiedene Schemas zu konvertieren und auf Ihre Zieldatenbank anzuwenden, erhalten Sie möglicherweise eine Fehlermeldung, wenn ein Schema nicht gelöscht AWS SCT werden kann. Verwenden Sie die Rolle `superuser`, um diese Fehlermeldung zu vermeiden. 

## Einstellungen für die Konvertierung von Oracle in PostgreSQL
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConversionSettings"></a>

Um die Konvertierungseinstellungen von Oracle nach PostgreSQL zu bearbeiten, wählen Sie **Einstellungen** in AWS SCT und dann **Konvertierungseinstellungen**. Wählen Sie in der oberen Liste **Oracle** und dann **Oracle — PostgreSQL** aus. AWS SCT zeigt alle verfügbaren Einstellungen für die Konvertierung von Oracle nach PostgreSQL an.

Die Konvertierungseinstellungen von Oracle nach PostgreSQL AWS SCT enthalten Optionen für Folgendes:
+ Um die Anzahl der Kommentare mit Aktionselementen im konvertierten Code zu begrenzen.

  Wählen **Sie für Hinzufügen von Kommentaren zum konvertierten Code für Aktionselemente mit ausgewähltem Schweregrad und höherem** Schweregrad den Schweregrad der Aktionspunkte aus. AWS SCT fügt dem konvertierten Code Kommentare für Aktionspunkte mit dem ausgewählten Schweregrad und höher hinzu.

  Beispiel: Um die Anzahl der Kommentare im konvertierten Code zu minimieren, wählen Sie **Nur Fehler** aus. Um Kommentare zu allen Aktionselementen in den konvertierten Code aufzunehmen, wählen Sie **Alle Nachrichten** aus.
+ Um die Konvertierung von materialisierten Oracle-Ansichten in Tabellen oder materialisierte Ansichten auf PostgreSQL zu ermöglichen AWS SCT . Wählen Sie für **Materialized View Conversion as aus, wie** Ihre materialisierten Quellansichten konvertiert werden sollen.
+ Um mit Ihrem Oracle-Quellcode zu arbeiten, wenn er die `TO_NUMBER` Funktionen `TO_CHAR``TO_DATE`, und mit Parametern enthält, die PostgreSQL nicht unterstützt. AWS SCT Emuliert standardmäßig die Verwendung dieser Parameter im konvertierten Code.

  Wenn Ihr Oracle-Quellcode nur Parameter enthält, die PostgreSQL unterstützt, können Sie native PostgreSQL-`TO_CHAR`, `TO_DATE` und -Funktionen verwenden. `TO_NUMBER` In diesem Fall arbeitet der konvertierte Code schneller. Um nur diese Parameter einzubeziehen, wählen Sie die folgenden Werte aus:
  + **Die Funktion TO\$1CHAR () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
  + **Die Funktion TO\$1DATE () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
  + **Die Funktion TO\$1NUMBER () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
+ Um zu vermeiden, dass Ihre Oracle-Quelldatenbank nur Ganzzahlwerte in den Primär- oder Fremdschlüsselspalten des `NUMBER` Datentyps speichert, AWS SCT können Sie diese Spalten in den `BIGINT` Datentyp konvertieren. Dieser Ansatz verbessert die Leistung des konvertierten Codes. Wählen Sie für diesen Ansatz die Option **NUMBER-Primär-/Fremdschlüsselspalten in BIGINT-Spalten konvertieren aus.** Stellen Sie sicher, dass Ihre Quelle keine Gleitkommawerte in diesen Spalten enthält, um Datenverlust zu vermeiden.
+ Um deaktivierte Trigger und Einschränkungen in Ihrem Quellcode zu überspringen. Wählen Sie dazu **Deaktivierte Trigger und Einschränkungen ignorieren**.
+ Wird verwendet AWS SCT , um Zeichenkettenvariablen zu konvertieren, die als dynamisches SQL aufgerufen werden. Ihr Datenbankcode kann die Werte dieser Zeichenfolgenvariablen ändern. Um sicherzustellen, dass AWS SCT immer der neueste Wert dieser Zeichenkettenvariablen konvertiert **wird, wählen Sie Dynamischen SQL-Code konvertieren, der in aufgerufenen Routinen erstellt wurde**.
+ Um dieses Problem zu beheben, unterstützen PostgreSQL Version 10 und früher keine Verfahren. Wenn Sie oder Ihre Benutzer mit der Verwendung von Prozeduren in PostgreSQL nicht vertraut sind, AWS SCT können Sie Oracle-Prozeduren in PostgreSQL-Funktionen konvertieren. Wählen Sie dazu **Verfahren in Funktionen konvertieren** aus.
+ Um zusätzliche Informationen zu den aufgetretenen Aktionspunkten zu erhalten. Zu diesem Zweck können Sie dem Erweiterungspaket bestimmte Funktionen hinzufügen, indem **Sie bei Migrationsproblemen mit den nächsten Schweregraden die Option Hinzufügen bei Ausnahmeauslösung** auswählen. Wählen Sie anschließend Schweregrade zum Auslösen benutzerdefinierter Ausnahmen aus.
+ Um mit einer Oracle-Quelldatenbank zu arbeiten, die Einschränkungen mit den automatisch generierten Namen enthalten kann. Wenn Ihr Quellcode diese Namen verwendet, stellen Sie sicher, dass Sie die Option Vom **System generierte Beschränkungsnamen mithilfe der ursprünglichen Quellnamen konvertieren** auswählen. Wenn Ihr Quellcode diese Einschränkungen verwendet, aber nicht ihre Namen verwendet, deaktivieren Sie diese Option, um die Konvertierungsgeschwindigkeit zu erhöhen.
+ Um zu überprüfen, ob Ihre Datenbank und Anwendungen in unterschiedlichen Zeitzonen ausgeführt werden. AWS SCT Emuliert standardmäßig Zeitzonen im konvertierten Code. Sie benötigen diese Emulation jedoch nicht, wenn Ihre Datenbank und Anwendungen dieselbe Zeitzone verwenden. In diesem Fall **entspricht die Option Zeitzone auf der Clientseite der Zeitzone auf dem Server**.
+ Um zu überprüfen, ob Ihre Quell- und Zieldatenbanken in unterschiedlichen Zeitzonen laufen. Wenn dies der Fall ist, gibt die Funktion, die die `SYSDATE` integrierte Oracle-Funktion emuliert, andere Werte zurück als die Quellfunktion. Um sicherzustellen, dass Ihre Quell- und Zielfunktionen dieselben Werte zurückgeben, wählen Sie **Standardzeitzone für die SYSDATE-Emulation festlegen**.
+ Um die Funktionen der Oracle-Erweiterung in Ihrem konvertierten Code zu verwenden. Wählen Sie dazu unter **Orace-Implementierung verwenden die zu** verwendenden Funktionen aus. [Weitere Informationen zu Oracle finden Sie unter orafce on.](https://github.com/orafce/orafce) GitHub

## Oracle-Sequenzen konvertieren
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertSequences"></a>

AWS SCT konvertiert Sequenzen von Oracle nach PostgreSQL. Wenn Sie Sequenzen verwenden, um Integritätseinschränkungen aufrechtzuerhalten, stellen Sie sicher, dass sich die neuen Werte einer migrierten Sequenz nicht mit den vorhandenen Werten überschneiden.

**Um konvertierte Sequenzen mit dem letzten Wert aus der Quelldatenbank zu füllen**

1. Öffnen Sie Ihr AWS SCT Projekt mit Oracle als Quelle.

1. Wählen Sie **Einstellungen** und dann **Konvertierungseinstellungen**. 

1. Wählen Sie in der oberen Liste **Oracle** und dann **Oracle — PostgreSQL** aus. AWS SCT zeigt alle verfügbaren Einstellungen für die Konvertierung von Oracle nach PostgreSQL an. 

1. Wählen Sie **Konvertierte Sequenzen mit dem letzten auf der Quellseite generierten Wert auffüllen**.

1. Wählen Sie **„OK“**, um die Einstellungen zu speichern und das Dialogfeld mit den **Konvertierungseinstellungen** zu schließen. 

## Konvertieren von Oracle ROWID
<a name="CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID"></a>

 In einer Oracle-Datenbank enthält die ROWID-Pseudospalte die Adresse der Tabellenzeile. Die ROWID-Pseudospalte ist einzigartig für Oracle und AWS SCT konvertiert daher die ROWID-Pseudospalte in eine Datenspalte in PostgreSQL. Mit dieser Konvertierung können Sie die ROWID-Informationen beibehalten. 

Bei der Konvertierung der ROWID-Pseudospalte AWS SCT kann eine Datenspalte mit dem Datentyp erstellt werden. `bigint` Wenn kein Primärschlüssel vorhanden ist, wird die ROWID-Spalte als Primärschlüssel AWS SCT festgelegt. Wenn ein Primärschlüssel vorhanden ist, wird für die ROWID-Spalte eine eindeutige Einschränkung AWS SCT festgelegt.

Wenn Ihr Quelldatenbankcode Operationen mit ROWID enthält, die Sie nicht mit einem numerischen Datentyp ausführen können, AWS SCT können Sie eine Datenspalte mit dem Datentyp erstellen. `character varying`

**So erstellen Sie eine Datenspalte für Oracle ROWID für ein Projekt**

1. Öffnen Sie Ihr AWS SCT Projekt mit Oracle als Quelle.

1. Wählen Sie **Einstellungen** und dann **Konvertierungseinstellungen**. 

1. Wählen Sie in der oberen Liste **Oracle** und dann **Oracle — PostgreSQL** aus. AWS SCT zeigt alle verfügbaren Einstellungen für die Konvertierung von Oracle nach PostgreSQL an. 

1. Führen **Sie für Generate row ID** einen der folgenden Schritte aus: 
   + Wählen Sie **Als Identität generieren** aus, um eine numerische Datenspalte zu erstellen.
   + Wählen Sie **Als Zeichendomänentyp generieren**, um eine Zeichendatenspalte zu erstellen.

1. Wählen Sie **OK**, um die Einstellungen zu speichern und das Dialogfeld mit den **Konvertierungseinstellungen** zu schließen. 

## Oracle Dynamic SQL wird konvertiert
<a name="CHAP_Source.Oracle.ToPostgreSQL.DynamicSQL"></a>

 Oracle bietet zwei Möglichkeiten, dynamisches SQL zu implementieren: die Verwendung einer EXECUTE IMMEDIATE-Anweisung oder das Aufrufen von Prozeduren im Paket DBMS\$1SQL. Wenn Ihre Oracle-Quelldatenbank Objekte mit dynamischem SQL enthält, verwenden Sie diese, AWS SCT um dynamische SQL-Anweisungen von Oracle nach PostgreSQL zu konvertieren.

**Um Oracle Dynamic SQL nach PostgreSQL zu konvertieren**

1. Öffnen Sie Ihr AWS SCT Projekt mit Oracle als Quelle.

1. Wählen Sie in der Oracle-Quellstrukturansicht ein Datenbankobjekt, das dynamisches SQL verwendet.

1. Öffnen Sie das Kontextmenü (Rechtsklick) für das Objekt, wählen Sie **Schema konvertieren** und stimmen Sie zu, dass die Objekte ersetzt werden, falls sie existieren. Der folgende Screenshot zeigt die konvertierte Prozedur unterhalb der Oracle-Prozedur mit dynamischem SQL.  
![\[Dynamische SQL-Konvertierung\]](http://docs.aws.amazon.com/de_de/SchemaConversionTool/latest/userguide/images/dynamicsql1.png)

## Oracle-Partitionen konvertieren
<a name="CHAP_Source.Oracle.ToPostgreSQL.PG10Partitioning"></a>

AWS SCT unterstützt derzeit die folgenden Partitionierungsmethoden: 
+ Bereich
+ Auflisten
+ Mehrspaltiger Bereich
+ Hash
+ Zusammengesetzt (Listenliste, Bereichsliste, Listenbereich, Listen-Hash, Bereichs-Hash, Hash-Hash)

# Migration von Oracle zu Amazon RDS for MySQL oder Amazon Aurora MySQL mit dem AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToMySQL"></a>

Um Oracle-Datenbankfunktionen in Ihrem konvertierten MySQL-Code zu emulieren, verwenden Sie das Oracle to MySQL Extension Pack in AWS SCT. Weitere Informationen zu Erweiterungspaketen finden Sie unter [Verwenden von Erweiterungspaketen mit AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Rechte für MySQL als Zieldatenbank](#CHAP_Source.Oracle.ToMySQL.ConfigureTarget)
+ [Einstellungen für die Konvertierung von Oracle in MySQL](#CHAP_Source.Oracle.ToMySQL.ConversionSettings)
+ [Überlegungen zur Migration](#CHAP_Source.Oracle.ToMySQL.MigrationConsiderations)
+ [Konvertierung der WITH-Anweisung in Oracle nach RDS für MySQL oder Amazon Aurora MySQL](#CHAP_Source.Oracle.ToMySQL.With)

## Rechte für MySQL als Zieldatenbank
<a name="CHAP_Source.Oracle.ToMySQL.ConfigureTarget"></a>

Die für MySQL als Ziel erforderlichen Rechte lauten wie folgt:
+ ERSTELLEN AM \$1 . \$1
+ SPÄTER AM \$1 . \$1
+ VORBEIKOMMEN \$1 . \$1
+ INDEX AUF \$1 . \$1
+ REFERENZEN AUF \$1 . \$1
+ SELECT ON \$1.\$1
+ ANSICHT ERSTELLEN AUF \$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ AUSLÖSEN AM \$1 . \$1
+ ROUTINE ERSTELLEN AUF \$1 . \$1
+ ROUTINE ÄNDERN AUF \$1 . \$1
+ AUSFÜHREN AM \$1 . \$1
+ TEMPORÄRE TABELLEN ERSTELLEN AUF \$1 . \$1
+ AWS\$1LAMBDA\$1ZUGANG
+ EINFÜGEN, AUF AWS\$1ORACLE \$1EXT AKTUALISIEREN. \$1
+ EINFÜGEN, AKTUALISIEREN, LÖSCHEN AUF AWS\$1ORACLE \$1EXT\$1DATA. \$1

Wenn Sie eine MySQL-Datenbank der Version 5.7 oder niedriger als Ziel verwenden, gewähren Sie die INVOKE LAMBDA \$1.\$1-Berechtigung anstelle von \$1ACCESS. AWS\$1LAMBDA Erteilen Sie für MySQL-Datenbanken der Version 8.0 und höher die AWS\$1LAMBDA\$1ACCESS Erlaubnis.

Sie können das folgende Codebeispiel verwenden, um einen Datenbankbenutzer zu erstellen und die Berechtigungen zu gewähren.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name';
GRANT AWS_LAMBDA_ACCESS TO 'user_name';
GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name';
```

Ersetzen Sie es im vorherigen Beispiel *user\$1name* durch den Namen Ihres Benutzers. Ersetzen Sie es dann *your\$1password* durch ein sicheres Passwort.

Wenn Sie eine MySQL-Datenbank Version 5.7 oder niedriger als Ziel verwenden, verwenden Sie `GRANT INVOKE LAMBDA ON *.* TO 'user_name'` statt`GRANT AWS_LAMBDA_ACCESS TO 'user_name'`.

Setzen Sie den Parameter `lower_case_table_names` auf `1`, um Amazon RDS für MySQL oder Aurora MySQL als Ziel zu verwenden. Dieser Wert bedeutet, dass der MySQL-Server Kennungen von Objektnamen wie Tabellen, Indizes, Auslösern und Datenbanken ohne Berücksichtigung der Groß- und Kleinschreibung behandelt. Wenn Sie die binäre Protokollierung in Ihrer Ziel-Instance aktiviert haben, setzen Sie den Parameter `log_bin_trust_function_creators` auf `1`. In diesem Fall müssen Sie die Eigenschaften `DETERMINISTIC`, `READS SQL DATA` oder `NO SQL` nicht verwenden, um gespeicherte Funktionen zu erstellen. Erstellen Sie zum Konfigurieren dieser Parameter eine neue DB-Parametergruppe oder ändern Sie eine vorhandene DB-Parametergruppe.

## Einstellungen für die Konvertierung von Oracle in MySQL
<a name="CHAP_Source.Oracle.ToMySQL.ConversionSettings"></a>

Um die Konvertierungseinstellungen von Oracle in MySQL zu bearbeiten AWS SCT, wählen Sie **Einstellungen** in und dann **Konvertierungseinstellungen**. Wählen Sie in der oberen Liste **Oracle** und dann **Oracle — MySQL** aus. AWS SCT zeigt alle verfügbaren Einstellungen für die Konvertierung von Oracle nach MySQL an.

Die Konvertierungseinstellungen von Oracle nach MySQL AWS SCT enthalten Optionen für Folgendes:
+ Um die Anzahl der Kommentare mit Aktionselementen im konvertierten Code zu begrenzen.

  Wählen **Sie für Hinzufügen von Kommentaren zum konvertierten Code für Aktionselemente mit ausgewähltem Schweregrad und höherem** Schweregrad den Schweregrad der Aktionspunkte aus. AWS SCT fügt dem konvertierten Code Kommentare für Aktionspunkte mit dem ausgewählten Schweregrad und höher hinzu.

  Beispiel: Um die Anzahl der Kommentare im konvertierten Code zu minimieren, wählen Sie **Nur Fehler** aus. Um Kommentare zu allen Aktionselementen in den konvertierten Code aufzunehmen, wählen Sie **Alle Nachrichten** aus.
+ Um dem entgegenzuwirken, kann Ihre Oracle-Quelldatenbank die `ROWID` Pseudospalte verwenden, MySQL unterstützt jedoch keine ähnliche Funktionalität. AWS SCT kann die `ROWID` Pseudospalte im konvertierten Code emulieren. Wählen Sie dazu unter Zeilen-ID **generieren? die Option Als Identität** **generieren** aus. .

  Wenn Ihr Oracle-Quellcode die `ROWID` Pseudospalte nicht verwendet, wählen Sie **Don't generate für Generate** **row ID?** In diesem Fall arbeitet der konvertierte Code schneller.
+ Um mit Ihrem Oracle-Quellcode zu arbeiten, wenn er die `TO_NUMBER` Funktionen `TO_CHAR``TO_DATE`, und mit Parametern enthält, die MySQL nicht unterstützt. AWS SCT Emuliert standardmäßig die Verwendung dieser Parameter im konvertierten Code.

  Wenn Ihr Oracle-Quellcode nur Parameter enthält, die PostgreSQL unterstützt, können Sie native MySQL- `TO_CHAR``TO_DATE`, und `TO_NUMBER` -Funktionen verwenden. In diesem Fall arbeitet der konvertierte Code schneller. Um nur diese Parameter einzubeziehen, wählen Sie die folgenden Werte aus:
  + **Die Funktion TO\$1CHAR () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
  + **Die Funktion TO\$1DATE () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
  + **Die Funktion TO\$1NUMBER () verwendet keine Oracle-spezifischen Formatierungszeichenfolgen**
+ Um festzustellen, ob Ihre Datenbank und Anwendungen in unterschiedlichen Zeitzonen ausgeführt werden. AWS SCT Emuliert standardmäßig Zeitzonen im konvertierten Code. Sie benötigen diese Emulation jedoch nicht, wenn Ihre Datenbank und Anwendungen dieselbe Zeitzone verwenden. In diesem Fall **entspricht die Option Zeitzone auf der Clientseite der Zeitzone auf dem Server**.

## Überlegungen zur Migration
<a name="CHAP_Source.Oracle.ToMySQL.MigrationConsiderations"></a>

Wenn Sie Oracle in RDS for MySQL oder Aurora MySQL konvertieren, können Sie eine `GOTO` Anweisung und ein Label verwenden, um die Reihenfolge zu ändern, in der Anweisungen ausgeführt werden. Alle PL/SQL-Anweisungen, die auf eine `GOTO` Anweisung folgen, werden übersprungen, und die Verarbeitung wird an der Bezeichnung fortgesetzt. Sie können `GOTO` Anweisungen und Labels an einer beliebigen Stelle innerhalb einer Prozedur, eines Batches oder eines Anweisungsblocks verwenden. Sie können auch als Nächstes GOTO-Anweisungen verwenden.

MySQL verwendet keine `GOTO` Anweisungen. Wenn Code AWS SCT konvertiert wird, der eine `GOTO` Anweisung enthält, wird die Anweisung so konvertiert, dass sie eine `BEGIN…END` `LOOP…END LOOP` OR-Anweisung verwendet. 

In der folgenden Tabelle finden Sie Beispiele dafür, wie `GOTO` Anweisungen AWS SCT konvertiert werden.


| Oracle-Anweisung | MySQL-Anweisung | 
| --- | --- | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   GOTO label1;<br />   statement2;<br />   ....<br />   label1:<br />   Statement3;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br /> label1:<br /> BEGIN<br />   ....<br />   statement1;<br />   ....<br />   LEAVE label1;<br />   statement2;<br />   ....<br /> END;<br />   Statement3;<br />   ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   GOTO label1;<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   LOOP<br />    statement2;<br />    ....<br />    ITERATE label1;<br />    LEAVE label1;<br />   END LOOP; <br />    statement3;<br />    ....<br />    statement4;<br />    ....<br />END<br /></pre>  | 
|  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   statement2;<br />   ....<br />   statement3;<br />   ....<br />   statement4;<br />   ....<br />END<br /></pre>  |  <pre>BEGIN<br />   ....<br />   statement1;<br />   ....<br />   label1:<br />   BEGIN<br />    statement2;<br />    ....    <br />    statement3;<br />    ....<br />    statement4;<br />    ....    <br />   END; <br />END<br /></pre>  | 

## Konvertierung der WITH-Anweisung in Oracle nach RDS für MySQL oder Amazon Aurora MySQL
<a name="CHAP_Source.Oracle.ToMySQL.With"></a>

Sie verwenden die WITH-Klausel (subquery\$1factoring) in Oracle, um einem Unterabfragenblock einen Namen (query\$1name) zuzuweisen. Sie können dann an mehreren Stellen in der Abfrage auf den Unterabfragenblock Bezug nehmen. Wenn ein Unterabfrageblock keine Links oder Parameter (lokal, Prozedur, Funktion, Paket) enthält, wird die Klausel in eine Ansicht oder eine temporäre Tabelle AWS SCT konvertiert. 

Der Vorteil der Umwandlung der Klausel in eine temporäre Tabelle besteht darin, dass wiederholte Verweise auf die Unterabfrage effizienter sein können. Die größere Effizienz liegt darin, dass die Daten leicht aus der temporären Tabelle abgerufen werden können, anstatt von jeder Referenz benötigt zu werden. Sie können dies emulieren, indem Sie zusätzliche Ansichten oder eine temporäre Tabelle verwenden. Für den Ansichtsnamen wird das Format `<procedure_name>$<subselect_alias>` verwendet.

Beispiele finden Sie in der folgenden Tabelle. 


| Oracle-Anweisung | MySQL-Anweisung | 
| --- | --- | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01<br />     (p_state IN NUMBER)<br />AS<br />  l_dept_id NUMBER := 1; <br />BEGIN<br />FOR cur IN  <br />           (WITH dept_empl(id, name, surname, <br />              lastname, state, dept_id)<br />              AS<br />                  (<br />                    SELECT id, name, surname,  <br />                     lastname, state, dept_id <br />                      FROM test_ora_pg.dept_employees<br />                     WHERE state = p_state AND <br />                       dept_id = l_dept_id)<br />            SELECT id,state   <br />              FROM dept_empl<br />            ORDER BY id)  LOOP<br />  NULL;<br />END LOOP;<br /></pre>  |  <pre>CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 1;<br />    DECLARE var$id VARCHAR (8000);<br />    DECLARE var$state VARCHAR (8000);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        ID, STATE<br />        FROM (SELECT<br />            ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID<br />            FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />            WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl<br />        ORDER BY ID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$id, var$state;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br /> TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01<br />AS    <br />BEGIN<br /><br /> FOR cur IN  (<br />               WITH dept_empl AS<br />                   (<br />                        SELECT id, name, surname, <br />                         lastname, state, dept_id <br />                          FROM test_ora_pg.dept_employees<br />                         WHERE state = 1),<br />                    dept AS <br />                   (SELECT id deptid, parent_id, <br />                      name deptname<br />                      FROM test_ora_pg.department                <br />                   )<br />                SELECT dept_empl.*,dept.*          <br />                 FROM dept_empl, dept<br />                 WHERE dept_empl.dept_id = dept.deptid<br />              ) LOOP<br />              NULL;<br />            END LOOP;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br /> `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT id, name, surname, lastname, state, dept_id <br />   FROM test_ora_pg.dept_employees<br />  WHERE state = 1);<br />  <br />CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br /> `(deptid, parent_id,deptname)<br />AS<br />(SELECT id deptid, parent_id, name deptname<br />   FROM test_ora_pg.department);  <br /><br /><br />CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br />BEGIN<br />    DECLARE var$ID DOUBLE;<br />    DECLARE var$NAME VARCHAR (30);<br />    DECLARE var$SURNAME VARCHAR (30);<br />    DECLARE var$LASTNAME VARCHAR (30);<br />    DECLARE var$STATE DOUBLE;<br />    DECLARE var$DEPT_ID DOUBLE;<br />    DECLARE var$deptid DOUBLE;<br />    DECLARE var$PARENT_ID DOUBLE;<br />    DECLARE var$deptname VARCHAR (200);<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT<br />        dept_empl.*, dept.*<br />        FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl<br />          ` AS dept_empl,<br />             TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept<br />          ` AS dept<br />        WHERE dept_empl.DEPT_ID = dept.DEPTID;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />    FETCH cur INTO var$ID, var$NAME, var$SURNAME, <br />     var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, <br />     var$PARENT_ID, var$deptname;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /><br />call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()<br /></pre>  | 
|  <pre>CREATE PROCEDURE <br />  TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)<br />AS    <br />   l_dept_id NUMBER := 10;<br />BEGIN<br /> FOR cur IN  (<br />               WITH emp AS              <br />                    (SELECT id, name, surname, <br />                      lastname, state, dept_id <br />                       FROM test_ora_pg.dept_employees<br />                      WHERE dept_id > 10                 <br />                    ),<br />                    active_emp AS<br />                    (<br />                      SELECT id<br />                        FROM emp<br />                       WHERE emp.state = p_state <br />                    )<br />                    <br />                SELECT *          <br />                  FROM active_emp                 <br />              ) LOOP<br />         NULL;<br />  END LOOP;<br />  <br />END;<br /></pre>  |  <pre>CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp<br />    `(id, name, surname, lastname, state, dept_id)<br />AS<br />(SELECT<br />       id, name, surname, lastname, <br />       state, dept_id<br />  FROM TEST_ORA_PG.DEPT_EMPLOYEES<br />  WHERE DEPT_ID > 10);<br /><br /><br />CREATE PROCEDURE <br />   test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)<br />BEGIN<br />    DECLARE var_l_dept_id DOUBLE DEFAULT 10;<br />    DECLARE var$ID DOUBLE;<br />    DECLARE done INT DEFAULT FALSE;<br />    DECLARE cur CURSOR FOR SELECT *<br />                             FROM (SELECT<br />                                      ID<br />                                     FROM <br />                             TEST_ORA_PG.<br />                              `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp<br />                                   WHERE emp.STATE = par_p_state) <br />                                    AS active_emp;<br />    DECLARE CONTINUE HANDLER FOR NOT FOUND<br />        SET done := TRUE;<br />    OPEN cur;<br /><br />    read_label:<br />    LOOP<br />        FETCH cur INTO var$ID;<br /><br />        IF done THEN<br />            LEAVE read_label;<br />        END IF;<br /><br />        BEGIN<br />        END;<br />    END LOOP;<br />    CLOSE cur;<br />END;<br /></pre>  | 

# Migration von Oracle Database zu Amazon RDS for Oracle mit AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Bei der Migration von Oracle-Schema und -Code in Amazon RDS für Oracle sind einige Punkte zu beachten: 
+ 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 z. B. DBMS\$1LOB, UTL\$1FILE, DBMS\$1FILE\$1TRANSFER, dem DATAPUMP Dienstprogramm usw. verwenden.
+ AWS SCT unterstützt die Konvertierung von Oracle-Tablespaces in eine Amazon RDS for Oracle 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 Amazon RDS mit den Namen DBA lässt normalerweise alle administrativen Sonderrechte in einer Oracle-Datenbank-Engine zu. Die folgenden Sonderrechte sind nicht für die Feedback-Schleifen-Rolle in einer Amazon RDS-DB-Instance verfügbar, welche die Oracle-Engine verwendet:
  + Ändern der Datenbank
  + Ändern des Systems
  + Erstellen eines Verzeichnisses
  + Gewähren von Sonderrechten
  + Gewähren einer Rolle
  + Erstellen eines externen Auftrags

  Sie können alle anderen Berechtigungen für eine Amazon RDS for Oracle-Benutzerrolle, u. a. erweiterte Filterungs- und Spaltenberechtigungen, erteilen.
+ 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.
  + Die Einplanung von Aufträgen, die den ANYDATA-Datentyp als Argument verwenden, werden nicht unterstützt.
+ Oracle Real Application Clusters (RAC) One Node ist eine Option der 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 Hochverfügbarkeit. 

  Bei einer Multi-AZ-Bereitstellung sorgt Amazon RDS für eine automatische Bereitstellung und Verwaltung eines synchronen Standby-Replikats in einer anderen Availability Zone. Die primäre DB-Instance wird über die Availability Zone synchron auf eine Standby-Replikation repliziert. Diese Funktion bietet Datenredundanz, verhindert I/O Einfrierungen und minimiert Latenzspitzen bei System-Backups.
+ Oracle Spatial stellt ein SQL-Schema und Funktionen bereit, die Speicherung, Abruf, Update und Abfrage von Sammlungen großer Datensätze in einer Oracle-Datenbank ermöglichen. Oracle Locator stellt Funktionalitäten zur Verfügung, die üblicherweise für die Unterstützung von Anwendungen auf Internet- und Wireless-Servicebasis sowie von GIS-Lösungen auf Partnerbasis erforderlich sind. Oracle Locator ist ein begrenzter Teilbereich von Oracle Spatial.

  Um Oracle Spatial- und Oracle Locator-Funktionen verwenden zu können, fügen Sie die Option SPATIAL oder die Option LOCATOR (schließen sich gegenseitig aus) 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 Instanz sollte Oracle Enterprise Edition Version 12.1.0.2.v6 oder höher oder 11.2.0.4.v10 oder höher verwenden.
  + Die Instance sollte sich innerhalb einer Virtual Private Cloud (VPC) befinden.
  + 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 DB-Instance-Klassenunterstützung für Oracle.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses)
  + 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 Oracle-PSU, falls Schwachstellen mit einem CVSS-Schweregrad von 9\$1 oder andere gemeldete Schwachstellen vorliegen. Die Ausgabe des obigen Befehls sieht in etwa folgendermaßen aus (JSON format). 

    [Einstellungen für Oracle-DB-Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Wenn Ihre DB-Instance Version 11.2.0.4.v10 oder höher ist, müssen Sie die XMLDB-Option installieren. Die Ausgabe des obigen Befehls sieht in etwa folgendermaßen aus (JSON format).

    Oracle XML [DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html).
  + Sie sollten über eine Oracle Spatial-Lizenz von Oracle verfügen. Weitere Informationen finden Sie unter [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) in der Oracle-Dokumentation.
+ Data Guard ist in der Oracle Database Enterprise Edition enthalten. Verwenden Sie Amazon RDS Multi-AZ für Hochverfügbarkeit. 

  Bei einer Multi-AZ-Bereitstellung sorgt Amazon RDS für eine automatische Bereitstellung und Verwaltung eines synchronen Standby-Replikats in einer anderen Availability Zone. Die primäre DB-Instance wird über die Availability Zone synchron auf eine Standby-Replikation repliziert. Diese Funktion bietet Datenredundanz, verhindert I/O Einfrierungen und minimiert Latenzspitzen bei System-Backups.
+ AWS SCT unterstützt die Konvertierung von Oracle DBMS\$1SCHEDULER-Objekten bei der Migration zu Amazon RDS for Oracle. Der AWS SCT Bewertungsbericht gibt an, ob ein Zeitplanobjekt konvertiert werden kann. Weitere Informationen zur Verwendung von Zeitplanobjekten mit Amazon RDS finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler).
+ Für Umwandlungen von Oracle zu Amazon RDS 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 PL/SQL Objekte in der anderen Datenbank zu verweisen. Um einen Datenbank-Link zu verwenden, fügen Sie ihn `@dblink` an den Namen der Tabelle, Ansicht oder des PL/SQL Objekts an. Sie können eine Tabelle oder Ansicht in der anderen Datenbank mit der SELECT-Anweisung abfragen. Weitere Informationen zur Verwendung von Oracle-Datenbanklinks finden Sie in der [Oracle-Dokumentation](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Weitere Informationen zur Verwendung von Datenbanklinks mit Amazon RDS finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks).
+ Der AWS SCT Bewertungsbericht enthält Server-Metriken 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 für RDS für Oracle als Ziel
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

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 es im vorherigen Beispiel *user\$1name* durch den Namen Ihres Benutzers. Ersetzen Sie es dann *your\$1password* durch ein sicheres Passwort.

## Einschränkungen bei der Konvertierung von Oracle zu Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Bei der Migration von Oracle-Schema und -Code in Amazon RDS for Oracle sind einige Einschränkungen zu beachten: 
+  Eine vordefinierte Rolle in Amazon RDS mit den Namen DBA lässt normalerweise alle administrativen Sonderrechte in einer Oracle-Datenbank-Engine zu. Die folgenden Sonderrechte sind nicht für die Feedback-Schleifen-Rolle in einer Amazon RDS-DB-Instance verfügbar, welche die Oracle-Engine verwendet:
  + Ä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 Oracle RDS-Benutzerrolle alle anderen Berechtigungen erteilen.
+ Amazon RDS for Oracle unterstützt traditionelle Prüfungen, detaillierte Prüfungen mit dem Paket DBMS\$1FGA und Oracle Unified Auditing.
+ Amazon RDS for Oracle unterstützt Change Data Capture (CDC) nicht. Um CDC während und nach einer Datenbankmigration durchzuführen, verwenden Sie. AWS Database Migration Service