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 eine partitionierte Oracle-Tabelle zu Postgre mithilfe SQL von AWS DMS
Erstellt von Saurav Mishra () und Eduardo Valentim () AWS AWS
Umgebung: PoC oder Pilotprojekt | Quelle: Oracle-Datenbank | Ziel: Postgre 9.0 SQL |
R-Typ: Re-Architect | Arbeitslast: Oracle | Technologien: Migration; Datenbanken; Speicher und Backup |
AWSDienstleistungen: AWS DMS |
Übersicht
Dieses Muster beschreibt, wie das Laden einer partitionierten Tabelle von Oracle nach Postgre mithilfe SQL von AWS Database Migration Service (AWSDMS) beschleunigt werden kann, der keine native Partitionierung unterstützt. Die SQL Postgre-Zieldatenbank kann auf Amazon Elastic Compute Cloud (AmazonEC2) installiert werden, oder es kann sich um eine Amazon Relational Database Service (AmazonRDS) for Postgre SQL - oder Amazon Aurora Postgre-Compatible SQL 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, AWS DMS kann das anfängliche Laden sehr langsam sein.
Um die anfänglichen Ladevorgänge von Oracle nach Postgre SQL 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 Übernahme einen Trigger.
SQLPostgre-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 Postgre-Datenbank auf SQL AWS
Produktversionen
Postgret 9.0 SQL
Architektur
Quelltechnologie-Stack
Eine partitionierte Tabelle in Oracle
Zieltechnologie-Stack
Eine partitionierte Tabelle in Postgre SQL (bei AmazonEC2, Amazon RDS für Postgre oder Aurora PostgreSQL) SQL
Zielarchitektur
Tools
AWSDer Database Migration Service (AWSDMS) 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 Postgre SQL 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 SQL untergeordneten Postgre-Tabellen zu. | DBA |
Führen Sie die AWS DMS Aufgaben mit Volllast und 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 Postgre SQL Version 10 die native Partitionierung unterstützt, könnten 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 Job-Partitionen verwenden, können Sie Partitionen auch neu laden, falls AWS DMS Validierungsprobleme auftreten. Führen Sie Aufgaben auf separaten Replikationsinstanzen aus, um die Leistung und Replikationskontrolle zu verbessern.