Transport von SQL Postgre-Datenbanken zwischen - Amazon Relational Database Service

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.

Transport von SQL Postgre-Datenbanken zwischen

Durch die Verwendung SQL übertragbarer Postgre-Datenbanken für Amazon RDS können Sie eine SQL Postgre-Datenbank zwischen zwei DB-Instances verschieben. Dies ist eine sehr schnelle Möglichkeit, große Datenbanken zwischen verschiedenen DB-Instances zu migrieren. Um diesen Ansatz zu verwenden, müssen Ihre DB-Instances beide dieselbe Hauptversion von Postgre ausführen. SQL

Diese Funktion erfordert, dass Sie die pg_transport-Erweiterung sowohl für die Quell- als auch die Ziel-DB-Instance installieren. Die pg_transport-Erweiterung bietet einen physischen Transportmechanismus, der die Datenbankdateien mit minimaler Verarbeitung verschiebt. Dieser Mechanismus bewegt Daten viel schneller als herkömmliche Abfragen- und Ladeprozesse mit weniger Ausfallzeiten.

Anmerkung

SQLPortable Postgre-Datenbanken sind RDS für Postgre SQL 11.5 und höher sowie für Postgre Version 10.10 und RDS höher verfügbar. SQL

Um eine SQL Postgre-DB-Instance von einer RDS für Postgre SQL DB-Instance zu einer anderen zu transportieren, richten Sie zunächst die Quell- und Ziel-Instances ein, wie unter beschrieben. Einrichten einer DB-Instance für den Transport Anschließend können Sie die Datenbank mit der unter Transport einer Postgre-Datenbank SQL beschriebenen Funktion transportieren.

Was passiert beim Datenbanktransport?

Die Funktion für SQL transportable Postgre-Datenbanken verwendet ein Pull-Modell, um die Datenbank von der Quell-DB-Instance in das Ziel zu importieren. Die transport.import_from_server-Funktion erstellt die In-Transit-Datenbank auf der Ziel-DB-Instance. Die In-Transit-Datenbank ist auf der Ziel-DB-Instance für die Dauer des Transports nicht zugänglich.

Wenn der Transport beginnt, werden alle aktuellen Sitzungen auf der Quelldatenbank beendet. Alle anderen Datenbanken als die Quelldatenbank auf der Quell-DB-Instance sind vom Transport nicht betroffen.

Die Quelldatenbank wird in einen speziellen schreibgeschützten Modus versetzt. Während es sich in diesem Modus befindet, können Sie sich mit der Quelldatenbank verbinden und schreibgeschützte Abfragen durchführen. Allerdings sind schreibende Abfragen und einige andere Arten von Befehlen blockiert. Von diesen Einschränkungen ist nur die spezifische Quelldatenbank betroffen, die transportiert wird.

Während des Transports können Sie für die Ziel-DB-Instance keine Point-in-time-Wiederherstellung durchführen. Dies liegt daran, dass der Transport nicht transaktional ist und das SQL Postgre-Write-Ahead-Protokoll nicht zum Aufzeichnen von Änderungen verwendet wird. Wenn in der Ziel-DB-Instance das automatische Backup aktiviert ist, wird nach Abschluss des Transports automatisch ein Backup durchgeführt. Point-in-timeWiederherstellungen sind für Zeiten nach Abschluss des Backups verfügbar.

Wenn der Transport fehlschlägt, versucht die pg_transport-Erweiterung, alle Änderungen an den Quell- und Ziel-DB-Instances rückgängig zu machen. Dazu gehört auch das Entfernen der teilweise transportierten Datenbank auf dem Ziel. Abhängig von der Art des Fehlers kann es vorkommen, dass die Quelldatenbank weiterhin schreibende Abfragen ablehnt. Verwenden Sie in diesem Fall den folgenden Befehl, um schreibende Abfragen zu ermöglichen.

ALTER DATABASE db-name SET default_transaction_read_only = false;

Einschränkungen bei der Verwendung von portablen SQL Postgre-Datenbanken

Transportdatenbanken haben folgende Einschränkungen:

  • Lesereplikate – Sie können keine Transportdatenbanken für Lesereplikate oder übergeordnete Instances von Lesereplikaten verwenden.

  • Nicht unterstützte Spaltentypen – Sie können die reg-Datentypen nicht in Datenbanktabellen verwenden, die Sie mit dieser Methode transportieren möchten. Diese Typen hängen von den Systemkatalogobjekten IDs (OIDs) ab, die sich während des Transports häufig ändern.

  • Tablespaces – Alle Quelldatenbankobjekte müssen sich im Standard-Tablespace pg_default befinden.

  • Kompatibilität — Sowohl die Quell- als auch die Ziel-DB-Instance müssen dieselbe Hauptversion von Postgre SQL ausführen.

  • Erweiterungen – Auf der Quell-DB-Instance kann nur das pg_transport installiert sein.

  • Rollen und ACLs — Die Zugriffsberechtigungen und Besitzinformationen der Quelldatenbank werden nicht auf die Zieldatenbank übertragen. Alle Datenbankobjekte werden erstellt und gehören dem lokalen Zielbenutzer des Transports.

  • Gleichzeitige Transporte – Eine einzelne DB-Instance kann bis zu 32 gleichzeitige Transporte unterstützen, einschließlich Importe und Exporte, wenn Worker-Prozesse ordnungsgemäß konfiguriert wurden.

  • RDSNur für SQL Postgre-DB-Instances — SQL Transportable Postgre-Datenbanken werden nur RDS für Postgre-DB-Instances unterstützt. SQL Sie können es nicht mit lokalen Datenbanken oder Datenbanken verwenden, die auf Amazon EC2 laufen.