

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 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)