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:
Erstellen Sie eine übergeordnete Tabelle, die der Oracle-Partitionstabelle ähnelt, aber keine Partition enthält.
Erstellen Sie untergeordnete Tabellen, die von der übergeordneten Tabelle erben, die Sie in Schritt 1 erstellt haben.
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

Tools
AWS Database Migration Service (AWS DMS) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
Epen
Aufgabe | Beschreibung | Erforderliche 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 | DBA |
Aufgabe | Beschreibung | Erforderliche 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 eineSHARE 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.