Importieren einer PostgreSQL-Datenbank aus einer Amazon EC2-Instance
Wenn Sie in einem PostgreSQL-Server auf einer Amazon-EC2-Instance Daten haben und diese in eine PostgreSQL-DB-Instance verschieben möchten, können Sie diesen Prozess zum Migrieren der Daten nutzen.
-
Erstellen Sie eine Datei mit pg_dump, die zu ladenden Daten enthält
-
Erstellen Sie die DB-Ziel-Instance
-
Verwenden Sie psql, um die Datenbank auf der DB-Instance zu erstellen und die Daten zu laden
-
Erstellen Sie einen DB-Snapshot der DB-Instance
Die folgenden Abschnitte enthalten weitere Informationen zu den oben aufgeführten Schritten.
Schritt 1: Erstellen einer Datei, die zu ladenden Daten enthält, mit pg_dump
Das Dienstprogramm pg_dump verwendet den Befehl COPY, um ein Schema sowie eine Daten-Dumpdatei einer PostgreSQL-Datenbank zu erstellen. Das durch pg_dump erzeugte Dump-Skript lädt Daten in eine Datenbank mit demselben Namen und erstellt die Tabellen, Indizes und Fremdschlüssel. Sie können den Befehl pg_restore und den Parameter -d verwenden, um die Daten in einer Datenbank mit einem anderen Namen wiederherzustellen.
Bevor Sie die Daten-Dumpdatei erstellen, sollten Sie die zu dumpenden Tabellen abfragen, um die Zeilenanzahl zu ermitteln und diese in der DB-Ziel-Instance zu bestätigen.
Der folgende Befehl erstellt eine Dump-Datei mit dem Namen mydb2dump.sql für eine Datenbank mit dem Namen mydb2.
prompt>pg_dump dbname=mydb2 -f mydb2dump.sql
Schritt 2: Erstellen einer DB-Ziel-Instance
Erstellen Sie die DB-Ziel-Instance für PostgreSQL entweder über die Amazon-RDS-Konsole, AWS CLI oder über die API. Achten Sie darauf, dass beim Erstellen der Instance die Einstellung der Sicherungsaufbewahrung auf 0 festgelegt ist und deaktivieren Sie Multi-AZ. Dadurch wird der Datenimport beschleunigt. Bevor Sie die Daten dumpen können, müssen Sie eine Datenbank auf der Instance erstellen. Die Datenbank kann den gleichen Namen wie die in den Dumpdaten enthaltene Datenbank haben. Alternativ können Sie auch eine Datenbank mit einem anderen Namen erstellen. In diesem Fall verwenden Sie den Befehl pg_restore und den Parameter -d, um die Daten in einer Datenbank mit einem neuen Namen wiederherzustellen.
Beispielsweise können die folgenden Befehle für das Dumpen, Wiederherstellen und Umbenennen einer Datenbank verwendet werden.
pg_dump -Fc -v -h[endpoint of instance]-U[master username][database]>[database].dump createdb[new database name]pg_restore -v -h[endpoint of instance]-U[master username]-d[new database name][database].dump
Schritt 3: Verwenden von psql zum Erstellen der Datenbank auf der DB-Instance und zum Laden der Daten
Sie können dieselbe Verbindung nutzen, die Sie für die Ausführung des Befehls pg_dump verwendet haben, um eine Verbindung mit der DB-Ziel-Instance herzustellen und die Datenbank neu zu erstellen. Mit psql können Sie den Masterbenutzername und das Masterpasswort verwenden, um die Datenbank auf der DB-Instance zu erstellen
Im folgenden Beispiel wird psql sowie auch eine Dump-Datei mit dem Namen mydb2dump.sql verwendet, um eine Datenbank mit dem Namen mydb2 auf einer PostgreSQL-DB-Instance mit dem Namen mypginstance zu erstellen:
Für Linux, macOS oder Unix:
psql \ -fmydb2dump.sql\ --hostmypginstance.555555555555.aws-region.rds.amazonaws.com \ --port8199\ --usernamemyawsuser\ --passwordpassword\ --dbnamemydb2
Für Windows:
psql ^ -fmydb2dump.sql^ --hostmypginstance.555555555555.aws-region.rds.amazonaws.com ^ --port8199^ --usernamemyawsuser^ --passwordpassword^ --dbnamemydb2
Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.
Schritt 4: Erstellen Sie einen DB-Snapshot der DB-Instance
Sobald Sie verifiziert haben, dass die Daten in die DB-Instance geladen wurden, empfehlen wir Ihnen einen DB-Snapshot der PostgreSQL-DB-Ziel-Instance zu erstellen. -DB-Snapshots sind vollständige Backups von Ihrer DB-Instance, die für eine Backup Ihrer DB-Instance auf einen bekannten Zustand verwendet werden können. Ein DB-Snapshot, der sofort nach einem Ladevorgang erstellt wird, bewahrt Sie davor, die Daten bei einem Fehler erneut laden zu müssen. Einen solchen Snapshot können Sie auch als Ausgangspunkt für neue DB-Instances verwenden. Weitere Informationen zum Erstellen eines DB-Snapshots finden Sie unter Erstellen eines DB-Snapshots für eine DB-Instance mit Single-AZ für Amazon RDS.