Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Migrieren Sie eine partitionierte Oracle-Tabelle mithilfe von AWS DMS zu PostgreSQL

Fokusmodus
Migrieren Sie eine partitionierte Oracle-Tabelle mithilfe von AWS DMS zu PostgreSQL - AWS Prescriptive Guidance

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.

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.

Erstellt von Saurav Mishra (AWS) und Eduardo Valentim (AWS)

Übersicht

Dieses Muster beschreibt, wie das Laden einer partitionierten Tabelle von Oracle nach PostgreSQL mithilfe von AWS Database Migration Service (AWS DMS) beschleunigt werden kann, der keine native Partitionierung unterstützt. Die PostgreSQL-Zieldatenbank kann auf Amazon Elastic Compute Cloud (Amazon EC2) installiert werden, oder es kann sich um eine Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder eine Amazon Aurora PostgreSQL-kompatible Edition-DB-Instance handeln. 

Das Hochladen einer partitionierten Tabelle umfasst die folgenden Schritte:

  1. Erstellen Sie eine übergeordnete Tabelle, die der Oracle-Partitionstabelle ähnelt, aber keine Partition enthält.

  2. Erstellen Sie untergeordnete Tabellen, die von der übergeordneten Tabelle erben, die Sie in Schritt 1 erstellt haben.

  3. Erstellen Sie eine Prozedurfunktion und einen Trigger, um die Einfügungen in der übergeordneten Tabelle zu verarbeiten.

Da der Trigger jedoch bei jeder Einfügung ausgelöst wird, kann das anfängliche Laden mit AWS DMS sehr langsam sein.

Um die anfänglichen Ladevorgänge von Oracle nach PostgreSQL 9.0 zu beschleunigen, erstellt dieses Muster eine separate AWS-DMS-Aufgabe für jede Partition und lädt die entsprechenden untergeordneten Tabellen. Anschließend erstellen Sie während der Umstellung einen Trigger. 

PostgreSQL Version 10 unterstützt native Partitionierung. In einigen Fällen können Sie sich jedoch für die Verwendung der vererbten Partitionierung entscheiden. Weitere Informationen finden Sie im Abschnitt Zusätzliche Informationen.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto

  • Eine Oracle-Quelldatenbank mit einer partitionierten Tabelle

  • Eine PostgreSQL-Datenbank auf AWS

Produktversionen

  • PostgreSQL 9.0

Architektur

Quelltechnologie-Stack

  • Eine partitionierte Tabelle in Oracle

Zieltechnologie-Stack

  • Eine partitionierte Tabelle in PostgreSQL (auf Amazon EC2, Amazon RDS for PostgreSQL oder Aurora PostgreSQL)

Zielarchitektur

Partitionierte Tabellendaten in Oracle werden für jede Partition in eine AWS-DMS-Aufgabe und dann in PostgreSQL verschoben.

Tools

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die Tabellen in PostgreSQL.

Erstellen Sie die übergeordneten und die entsprechenden untergeordneten Tabellen in PostgreSQL mit den erforderlichen Prüfbedingungen für Partitionen.

DBA

Erstellen Sie die AWS DMS-Aufgabe für jede Partition.

Nehmen Sie die Filterbedingung der Partition in die AWS DMS-Aufgabe auf. Ordnen Sie die Partitionen den entsprechenden PostgreSQL-Untertabellen zu.

DBA

Führen Sie die AWS-DMS-Aufgaben mithilfe von Full Load and Change Data Capture (CDC) aus.

Stellen Sie sicher, dass der StopTaskCachedChangesApplied Parameter auf eingestellt ist true und der StopTaskCachedChangesNotApplied Parameter auf eingestellt ist. false

DBA

AWS DMS einrichten

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die Tabellen in PostgreSQL.

Erstellen Sie die übergeordneten und die entsprechenden untergeordneten Tabellen in PostgreSQL mit den erforderlichen Prüfbedingungen für Partitionen.

DBA

Erstellen Sie die AWS DMS-Aufgabe für jede Partition.

Nehmen Sie die Filterbedingung der Partition in die AWS DMS-Aufgabe auf. Ordnen Sie die Partitionen den entsprechenden PostgreSQL-Untertabellen zu.

DBA

Führen Sie die AWS-DMS-Aufgaben mithilfe von Full Load and Change Data Capture (CDC) aus.

Stellen Sie sicher, dass der StopTaskCachedChangesApplied Parameter auf eingestellt ist true und der StopTaskCachedChangesNotApplied Parameter auf eingestellt ist. false

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Beenden Sie die Replikationsaufgaben.

Bevor Sie die Aufgaben beenden, stellen Sie sicher, dass Quelle und Ziel synchron sind.

DBA

Erstellen Sie einen Trigger für die übergeordnete Tabelle.

Da die übergeordnete Tabelle alle Befehle zum Einfügen und Aktualisieren empfängt, sollten Sie einen Trigger erstellen, der diese Befehle auf der Grundlage der Partitionierungsbedingung an die jeweiligen untergeordneten Tabellen weiterleitet.

DBA

Überschneiden

AufgabeBeschreibungErforderliche Fähigkeiten

Beenden Sie die Replikationsaufgaben.

Bevor Sie die Aufgaben beenden, stellen Sie sicher, dass Quelle und Ziel synchron sind.

DBA

Erstellen Sie einen Trigger für die übergeordnete Tabelle.

Da die übergeordnete Tabelle alle Befehle zum Einfügen und Aktualisieren empfängt, sollten Sie einen Trigger erstellen, der diese Befehle auf der Grundlage der Partitionierungsbedingung an die jeweiligen untergeordneten Tabellen weiterleitet.

DBA

Zugehörige Ressourcen

Zusätzliche Informationen

Obwohl PostgreSQL Version 10 die native Partitionierung unterstützt, können Sie sich für die folgenden Anwendungsfälle entscheiden, die vererbte Partitionierung zu verwenden:

  • Die Partitionierung erzwingt die Regel, dass alle Partitionen denselben Satz von Spalten wie die übergeordnete Partition haben müssen, aber die Tabellenvererbung unterstützt untergeordnete Partitionen mit zusätzlichen Spalten.

  • Die Tabellenvererbung unterstützt mehrere Vererbungen.

  • Die deklarative Partitionierung unterstützt nur die Listen- und Bereichspartitionierung. Mit der Tabellenvererbung können Sie die Daten beliebig aufteilen. Wenn der Einschränkungsausschluss Partitionen jedoch nicht effektiv bereinigen kann, wird die Abfrageleistung beeinträchtigt.

  • Einige Operationen benötigen eine stärkere Sperre, wenn deklarative Partitionierung verwendet wird als bei Verwendung der Tabellenvererbung. Zum Beispiel erfordert das Hinzufügen oder Entfernen einer Partition zu oder aus einer partitionierten Tabelle eine ACCESS EXCLUSIVE Sperre für die übergeordnete Tabelle, wohingegen eine SHARE UPDATE EXCLUSIVE Sperre für die reguläre Vererbung ausreicht.

Wenn Sie separate Jobpartitionen verwenden, können Sie Partitionen auch neu laden, falls es Probleme mit der AWS DMS-Validierung gibt. Führen Sie zur besseren Leistungs- und Replikationskontrolle Aufgaben auf separaten Replikationsinstanzen aus.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.