Importieren von Daten in PostgreSQL in Amazon RDS - Amazon Relational Database Service

Importieren von Daten in PostgreSQL in Amazon RDS

Angenommen, Sie verfügen über eine bestehende PostgreSQL-Bereitstellung, die Sie zu Amazon RDS verschieben möchten. Wie komplex diese Aufgabe ist, hängt von der Größe Ihrer Datenbank und den Arten von Datenbankobjekten ab, die Sie übertragen. Nehmen wir beispielsweise eine Datenbank mit mehreren Gigabyte an Datensätzen, einschließlich der gespeicherten Prozeduren und Auslöser. Eine solche Datenbank ist komplizierter als eine einfache Datenbank mit nur wenigen Megabyte an Testdaten und ohne Auslöser oder gespeicherten Prozeduren.

Unter den folgenden Bedingungen empfehlen wir Ihnen die Verwendung von nativen PostgreSQL-Datenbank-Migrationstools:

  • Sie möchten eine homogene Migration durchführen, bei der die Ausgangsdatenbank denselben Datenbank-Engine hat wie die Zieldatenbank.

  • Sie möchten eine komplette Datenbank migrieren.

  • Die nativen Tools erlauben Ihnen, Ihr System mit einer minimalen Ausfallzeit zu migrieren.

In den meisten anderen Fällen wird eine Datenbankmigration mit AWS Database Migration Service (AWS DMS) ist der beste Ansatz. AWS DMS kann Datenbanken ohne Ausfallzeit migrieren und bei vielen Datenbank-Engines die Replikation fortführen, bis Sie zum Umschalten auf die Zieldatenbank bereit sind. Mit AWS DMS können Sie Daten entweder in denselben Datenbank-Engine oder in einen anderen Datenbank-Engine migrieren. Wenn Sie Daten nicht in Ihre Quelldatenbank, sondern in eine andere Datenbank-Engine migrieren, können Sie das AWS Schema Conversion Tool (AWS SCT) verwenden. Mit AWS SCT migrieren Sie Schemaobjekte, die nicht von AWS DMS migriert werden. Weitere Informationen über AWS DMS finden Sie unter Was ist AWS Database Migration Service? im .

Modifizieren Sie die DB-Parametergruppe so, dass sie nur die folgenden Einstellungen für Ihren Import enthält. Sie sollten die Parametereinstellungen testen, um festzustellen, welches die effizientesten Einstellungen für Ihre DB-Instance-Größe sind. Nach der Import abgeschlossen wurde, müssen Sie auch diese Parameter auf die Produktionswerte zurücksetzen.

Ändern Sie die Einstellungen für Ihre DB-Instance wie folgt:

  • Deaktivieren Sie die DB-Instance-Backups (Sicherungsaufbewahrung auf 0 setzen).

  • Deaktivieren Sie Multi-AZ.

Modifizieren Sie die DB-Parametergruppe so, dass sie die folgenden Einstellungen enthält. Sie sollten beim Importieren von Daten nur diese Einstellungen verwenden. Sie sollten die Parametereinstellungen testen, um festzustellen, welches die effizientesten Einstellungen für Ihre DB-Instance-Größe sind. Nach der Import abgeschlossen wurde, müssen Sie auch diese Parameter auf die Produktionswerte zurücksetzen.

Parameter Empfohlene Werte beim Importieren Beschreibung

maintenance_work_mem

524288, 1048576, 2097152 oder 4194304 (in KB). Diese Einstellungen sind vergleichbar mit 512 MB, 1 GB, 2 GB und 4 GB.

Der Wert für diese Einstellung hängt von der Größe Ihres Hosts ab. Dieser Parameter wird während der CREATE INDEX-Anweisungen verwendet und jeder parallele Befehl kann so viel Speicherplatz benötigen. Berechnen Sie den besten Wert, sodass Sie diesen Wert nicht zu hoch einstellen und Gefahr laufen, keinen Speicherplatz mehr zu haben.

max_wal_size

256 (für Version 9.6), 4096 (für Version 10 und höher)

Maximale Größe, um das WAL während automatischer Kontrollpunkte zunehmen zu lassen. Eine Erhöhung dieses Parameters kann den Zeitaufwand für die Wiederherstellung nach dem Absturz erhöhen. Dieser Parameter ersetzt checkpoint_segments für PostgreSQL 9.6 und höher.

Für PostgreSQL-Version 9.6 liegt dieser Wert auf 16 MB-Einheiten. Bei späteren Versionen liegt der Wert bei 1 MB Einheiten. In Version 9.6 bedeutet das beispielsweise 128 Blöcke mit einer Größe von jeweils 16 MB. In Version 12.4 bedeutet das 2 048 Blöcke mit einer Größe von jeweils 1 MB.

checkpoint_timeout

1800

Der Wert für diese Einstellung erlaubt eine seltenere WAL-Rotation.

synchronous_commit

Aus

Deaktivieren Sie diese Einstellungen, um Schreibvorgänge zu beschleunigen. Wenn dieser Parameter auf „off“ gestellt wird, kann dadurch das Risiko von Datenverlusten bei einem Serverausfall steigen (stellen Sie FSYNC nicht auf „off“).

wal_buffers

8192

Dieser Wert wird in 8 KB-Einheiten angegeben. Dies wiederum erhöht Ihre WAL-Erzeugungsgeschwindigkeit

autovacuum

0

Deaktivieren Sie den Selbstbereinigungsparameter für PostgreSQL während dem Laden von Daten, sodass dieser keine Ressourcen verbraucht

Verwenden Sie den Befehl pg_dump -Fc (komprimiert) oder den Befehl pg_restore -j (parallel) mit diesen Einstellungen.

Anmerkung

Der PostgreSQL-Befehl pg_dumpall erfordert super_user-Berechtigungen, die nicht gewährt werden, wenn Sie eine DB-Instance erstellen, sodass er nicht für das Importieren von Daten verwendet werden kann.