

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.

# Migrieren Sie native Oracle-Funktionen mithilfe von Erweiterungen zu PostgreSQL
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-summary"></a>

Dieses Migrationsmuster bietet step-by-step Anleitungen für die Migration einer Amazon Relational Database Service (Amazon RDS) for Oracle-Datenbank-Instance zu einer Amazon RDS for PostgreSQL- oder Amazon Aurora PostgreSQL-Compatible Edition-Datenbank durch Änderung des systemeigenen integrierten Codes `aws_oracle_ext` und der `orafce` Erweiterungen von PostgreSQL (). `psql` Dies spart Verarbeitungszeit.

Das Muster beschreibt eine manuelle Offline-Migrationsstrategie ohne Ausfallzeiten für eine Oracle-Quelldatenbank mit mehreren Terabyte und einer hohen Anzahl von Transaktionen.

Der Migrationsprozess verwendet das AWS Schema Conversion Tool (AWS SCT) mit den `orafce` Erweiterungen `aws_oracle_ext` und, um ein Amazon RDS for Oracle Oracle-Datenbankschema in ein Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatibles Datenbankschema zu konvertieren. Dann wird der Code manuell in den von PostgreSQL unterstützten systemeigenen `psql` integrierten Code geändert. Dies liegt daran, dass die Erweiterungsaufrufen die Codeverarbeitung auf dem PostgreSQL-Datenbankserver beeinflussen und nicht der gesamte Erweiterungscode vollständig kompatibel oder kompatibel mit PostgreSQL-Code ist.

Dieses Muster konzentriert sich hauptsächlich auf die manuelle Migration von SQL-Codes mithilfe von AWS SCT und den Erweiterungen `aws_oracle_ext` und. `orafce` Sie konvertieren die bereits verwendeten Erweiterungen in native PostgreSQL (`psql`) -Built-ins. Dann entfernen Sie alle Verweise auf die Erweiterungen und konvertieren die Codes entsprechend.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Betriebssystem (Windows oder Mac) oder EC2 Amazon-Instance (läuft) 
+ Orace

**Einschränkungen**

Nicht alle Oracle-Funktionen, die `aws_oracle_ext` unsere `orafce` Erweiterungen verwenden, können in native PostgreSQL-Funktionen konvertiert werden. Möglicherweise muss es manuell überarbeitet werden, um es mit PostgreSQL-Bibliotheken zu kompilieren.

Ein Nachteil der Verwendung von AWS SCT-Erweiterungen ist die langsame Leistung beim Ausführen und Abrufen der Ergebnisse. Die Kosten können anhand des einfachen [PostgreSQL EXPLAIN-Plans](https://www.postgresql.org/docs/current/sql-explain.html) (Ausführungsplan einer Anweisung) für die Migration der `SYSDATE` Oracle-Funktion zur `NOW()` PostgreSQL-Funktion zwischen allen drei Codes (`aws_oracle_ext`, und `psql` Standard) nachvollzogen werden`orafce`, wie im Abschnitt *Leistungsvergleichsprüfung im angehängten Dokument* erläutert.

**Produktversionen**
+ **Quelle:** Amazon RDS for Oracle Oracle-Datenbank 10.2 und höher (für 10.x), 11g (11.2.0.3.v1 und höher) und bis zu 12.2, 18c und 19c (und höher) für Enterprise Edition, Standard Edition, Standard Edition 1 und Standard Edition 2
+ **Ziel**: Amazon RDS for PostgreSQL oder Aurora PostgreSQL-kompatible Datenbank 9.4 und höher (für 9.x), 10.x, 11.x, 12.x, 13.x und 14.x (und höher)
+ **AWS SCT**: Aktuelle Version (dieses Muster wurde mit 1.0.632 getestet)
+ **Oracle**: Aktuelle Version (dieses Muster wurde mit 3.9.0 getestet)

## Architektur
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Amazon RDS for Oracle Oracle-Datenbank-Instance mit Version 12.1.0.2.v18

**Zieltechnologie-Stack**
+ Eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatible Datenbank-Instance mit Version 11.5

**Architektur für die Datenbankmigration**

Das folgende Diagramm stellt die Datenbankmigrationsarchitektur zwischen den Oracle-Quelldatenbanken und den PostgreSQL-Zieldatenbanken dar. Die Architektur umfasst AWS Cloud, eine Virtual Private Cloud (VPC), Availability Zones, ein privates Subnetz, eine Amazon RDS for Oracle Oracle-Datenbank, AWS SCT, eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatible Datenbank, Erweiterungen für Oracle (`aws_oracle_ext`und`orafce`) und strukturierte Abfragesprache-Dateien (SQL).

![\[Der Prozess wird in der folgenden Liste erklärt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Starten Sie die Amazon RDS for Oracle DB-Instance (Quell-DB).

1. Verwenden Sie AWS SCT mit den Erweiterungspaketen `aws_oracle_ext` und `orafce` Erweiterungspaketen, um den Quellcode von Oracle nach PostreSQL zu konvertieren.

1. Die Konvertierung erzeugt PostgreSQL-unterstützte migrierte .sql-Dateien.

1. Konvertieren Sie die nicht konvertierten Oracle-Erweiterungscodes manuell in PostgreSQL () `psql` -Codes.

1. Die manuelle Konvertierung erzeugt konvertierte .sql-Dateien, die PostgreSQL unterstützen.

1. Führen Sie diese .sql-Dateien auf Ihrer Amazon RDS for PostgreSQL PostgreSQL-DB-Instance (Ziel-DB) aus.

## Tools
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Tools**

*AWS-Services*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — Das AWS Schema Conversion Tool (AWS SCT) konvertiert Ihr vorhandenes Datenbankschema von einer Datenbank-Engine in eine andere. Sie können das relationale OLTP-Schema (Online Transactional Processing) oder das Data Warehouse-Schema konvertieren. Ihr konvertiertes Schema ist für eine Amazon RDS for MySQL MySQL-DB-Instance, einen Amazon Aurora Aurora-DB-Cluster, eine Amazon RDS for PostgreSQL PostgreSQL-DB-Instance oder einen Amazon Redshift Redshift-Cluster geeignet. Das konvertierte Schema kann auch mit einer Datenbank auf einer EC2 Amazon-Instance verwendet oder als Daten in einem Amazon S3-Bucket gespeichert werden.

  AWS SCT bietet eine projektbasierte Benutzeroberfläche, mit der Sie das Datenbankschema Ihrer Quelldatenbank automatisch in ein Format konvertieren können, das mit Ihrer Amazon RDS-Zielinstanz kompatibel ist. 

  Sie können AWS SCT verwenden, um eine Migration von einer Oracle-Quelldatenbank zu einem der oben aufgeführten Ziele durchzuführen. Mit AWS SCT können Sie die Objektdefinitionen der Quelldatenbank wie Schema, Ansichten, gespeicherte Prozeduren und Funktionen exportieren. 

  Sie können AWS SCT verwenden, um Daten von Oracle in Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL-Compatible Edition zu konvertieren. 

  In diesem Muster verwenden Sie AWS SCT, um Oracle-Code mithilfe der Erweiterungen und in PostgreSQL zu konvertieren und zu migrieren `aws_oracle_ext` und `orafce` die Erweiterungscodes manuell in `psql` Standard- oder systemeigenen integrierten Code zu migrieren.
+ Das [AWS SCT-Erweiterungspaket](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) ist ein Zusatzmodul, das in der Quelldatenbank vorhandene Funktionen emuliert, die für die Konvertierung von Objekten in die Zieldatenbank erforderlich sind. Bevor Sie das AWS SCT-Erweiterungspaket installieren können, müssen Sie Ihr Datenbankschema konvertieren.

  Wenn Sie Ihr Datenbank- oder Data Warehouse-Schema konvertieren, fügt AWS SCT Ihrer Zieldatenbank ein zusätzliches Schema hinzu. Über dieses Schema werden SQL-Systemfunktionen der Quelldatenbank implementiert, die zum Schreiben des konvertierten Schemas in die Zieldatenbank benötigt werden. Dieses Zusätzliche Schema wird als Erweiterungspaketschema bezeichnet.

  Das Erweiterungspaket-Schema für OLTP-Datenbanken ist entsprechend der Quelldatenbank benannt. Für Oracle-Datenbanken lautet `AWS_ORACLE_EXT` das Erweiterungspaket-Schema.

*Andere Tools*
+ [Oracle — Oracle](https://github.com/orafce/orafce) ist ein Modul, das Oracle-kompatible Funktionen, Datentypen und Pakete implementiert. Es ist ein Open-Source-Tool mit einer Berkeley Source Distribution (BSD) -Lizenz, sodass jeder es verwenden kann. Das `orafce` Modul ist nützlich für die Migration von Oracle zu PostgreSQL, da viele Oracle-Funktionen in PostgreSQL implementiert sind.

 

**Code**

Eine Liste aller häufig verwendeten und migrierten Codes von Oracle nach PostgreSQL, um die Verwendung von AWS SCT-Erweiterungscodes zu vermeiden, finden Sie im angehängten Dokument.

## Epen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-epics"></a>

### Konfiguration der Amazon RDS for Oracle Oracle-Quelldatenbank
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Oracle-Datenbankinstanz. | Erstellen Sie eine Amazon RDS for Oracle- oder Aurora PostgreSQL-kompatible Datenbank-Instance von der Amazon RDS-Konsole aus. | Allgemein AWS, DBA | 
| Konfigurieren Sie die Sicherheitsgruppen. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie die Datenbank. | Erstellen Sie die Oracle-Datenbank mit den benötigten Benutzern und Schemas. | Allgemein AWS, DBA | 
| Erstellen Sie die Objekte. | Objekte erstellen und Daten in das Schema einfügen. | DBA | 

### Konfiguration der Amazon RDS for PostgreSQL PostgreSQL-Zieldatenbank
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die PostgreSQL-Datenbankinstanz. | Erstellen Sie eine Amazon RDS for PostgreSQL- oder Amazon Aurora PostgreSQL-Datenbank-Instance von der Amazon RDS-Konsole aus. | Allgemein AWS, DBA | 
| Konfigurieren Sie die Sicherheitsgruppen. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie die Datenbank. | Erstellen Sie die PostgreSQL-Datenbank mit den benötigten Benutzern und Schemas. | Allgemein AWS, DBA | 
| Validieren Sie die Erweiterungen. | Stellen Sie sicher, dass `aws_oracle_ext` und korrekt in der PostgreSQL-Datenbank installiert und konfiguriert `orafce` sind. | DBA | 
| Stellen Sie sicher, dass die PostgreSQL-Datenbank verfügbar ist. | Stellen Sie sicher, dass die PostgreSQL-Datenbank betriebsbereit ist. | DBA | 

### Migrieren Sie das Oracle-Schema mithilfe von AWS SCT und den Erweiterungen nach PostgreSQL
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie AWS SCT. | Installieren Sie die neueste Version von AWS SCT. | DBA | 
| Konfigurieren Sie AWS SCT. | Konfigurieren Sie AWS SCT mit Java Database Connectivity (JDBC) -Treibern für Oracle () und `ojdbc8.jar` PostgreSQL (). `postgresql-42.2.5.jar` | DBA | 
| Aktivieren Sie das AWS SCT-Erweiterungspaket oder die Vorlage. | Aktivieren Sie unter AWS SCT **Project Settings** die Implementierung integrierter Funktionen mit den `orafce` Erweiterungen `aws_oracle_ext` und für das Oracle-Datenbankschema. | DBA | 
| Konvertiert das Schema. | Wählen Sie in AWS SCT „**Schema konvertieren“**, um das Schema von Oracle nach PostgreSQL zu konvertieren und die SQL-Dateien zu generieren. | DBA | 

### AWS SCT-Erweiterungscode in PSQL-Code konvertieren
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Den Code manuell konvertieren. | Konvertieren Sie jede Codezeile, die von Erweiterungen unterstützt wird, manuell in den integrierten `psql` Standardcode, wie im angehängten Dokument beschrieben. Zum Beispiel ändern `AWS_ORACLE_EXT.SYSDATE()` oder `ORACLE.SYSDATE()` zu. `NOW()` | DBA | 
| Bestätigen Sie den Code | (Optional) Überprüfen Sie jede Codezeile, indem Sie sie vorübergehend in der PostgreSQL-Datenbank ausführen. | DBA | 
| Erstellen Sie Objekte in der PostgreSQL-Datenbank. | Um Objekte in der PostgreSQL-Datenbank zu erstellen, führen Sie die .sql-Dateien aus, die von AWS SCT generiert und in den beiden vorherigen Schritten geändert wurden. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Datenbank
  + [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Arbeiten mit Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [PostgreSQL EXPLAIN-Plan](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Überblick über das AWS-Schema-Konvertierungstool](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [AWS SCT-Benutzerhandbuch](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Verwenden der AWS SCT-Benutzeroberfläche](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Verwendung von Oracle Database als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Erweiterungen für AWS SCT
  + [Verwenden des AWS SCT-Erweiterungspakets](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Oracle-Funktionalität (de)](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [PGNX Oracle](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Zusätzliche Informationen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Weitere Informationen finden Sie in den ausführlichen Befehlen mit Syntax und Beispielen für die manuelle Konvertierung von Code im angehängten Dokument.

## Anlagen
<a name="attachments-158847bb-27ef-4915-a9ca-7d87073792c1"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)