Migration auf Databases for PostgreSQL
Es gibt verschiedene Optionen, um Daten aus vorhandenen PostgreSQL-Datenbanken auf IBM Cloud® Databases for PostgreSQL zu migrieren. Wir konzentrieren uns auf die einfachste und effektivste. Für den Beginn müssen Sie PostgreSQL lokal installiert
haben, sodass Sie über die Tools psql
und pg_dump
verfügen. Die Cloud Databases-CLI erleichtert die Verbindung und Wiederherstellung auf eine neue Databases for PostgreSQL-Bereitstellung, ist aber nicht zwingend erforderlich.
pg_dump
Führen Sie in der Quellendatenbank pg_dump
aus, um eine SQL-Datei zu erstellen, die zum erneuten Erstellen der Datenbank verwendet werden kann. pg_dump
setzt mindestens einen Hostnamen (Flag -h
), eine Portnummer
(Flag -p
), einen Datenbanknamen (Flag -d
), einen Benutzernamen (Flag -U
) und eine Datei oder einen Verzeichnisnamen (Flag -f
) zum Schreiben des Speicherauszugs voraus.
Mit dem folgenden Befehl wird beispielsweise ein Speicherauszug der "zusammengesetzten" PostgreSQL-Datenbank, die auf sl-eu-lon-2-portal.4.dblayer.com, Port 17980 gehostet wird, mit dem Benutzer mit Administratorberechtigung erstellt
und die Ergebnisse werden in der Datei dump.sql
gespeichert.
pg_dump -h sl-eu-lon-2-portal.4.dblayer.com -p 17980 -d compose -U admin -f dump.sql
Der pg_dump
hat viele Optionen, und es wird empfohlen, dass Sie die offizielle Dokumentation zu konsultieren und befehlsreferenz verwenden, um einen umfassenderen Überblick über seine Möglichkeiten zu erhalten.
Ausgabe von 'pg_dump' wiederherstellen
Die Ausgabe von pg_dump
kann anschließend in eine neue Databases for PostgreSQL-Bereitstellung hochgeladen werden. Da die Ausgabe in SQL verfasst ist, kann sie einfach über den Befehl psql
an die Datenbank gesendet
werden. Es wird empfohlen, Importe über den Benutzer mit Administratorberechtigung auszuführen.
Unter Verbinden mit psql
erfahren Sie, wie Sie sich als Administrator mit psql
verbinden können. Für Verbindungen mit dem Befehl
psql
benötigen Sie die Verbindungszeichenfolge des Benutzers mit Administratorberechtigung sowie das TLS-Zertifikat. Das Zertifikat muss aus Base64 entschlüsselt und als beliebige lokale Datei gespeichert werden. Um die zuvor
erstellte dump.sql
in eine Datenbankbereitstellung namens example-psql
zu importieren, kann der psql
-Befehl mit -f dump.sql
als Parameter aufgerufen werden. Der Parameter weist psql
an, die SQL-Anweisungen in der Datei zu lesen und auszuführen. Der Befehl sieht ungefähr wie folgt aus:
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt psql 'host=c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32484 dbname=ibmclouddb user=admin sslmode=verify-full' -f dump.sql
Wie in der Dokumentation Verbindungen mit psql
herstellen beschrieben, vereinfacht das Cloud Databases-CLI-Plug-in die Verbindungsherstellung.
Der vorangehende psql
-Import kann wie folgt ausgeführt werden:
ibmcloud cdb deployment-connections example-psql -s -- -f dump.sql
Wenn kein Benutzer angegeben ist, verwendet der Befehl automatisch den Benutzer mit Administratorberechtigung. Zudem fordert er auch interaktiv zur Kennworteingabe auf. Das TLS-Zertifikat wird automatisch abgerufen und verwendet. Der Befehl
-s
startet psql
(oder den Befehl, der konfiguriert wurde), sobald die Details aus der API erhalten wurden. Alles, was nach --
kommt, wird an den Befehl übergeben.
Während der Wiederherstellungsprozess ausgeführt wird, gibt er eine Reihe von Nachrichten über Änderungen aus, die er an der Datenbankbereitstellung vornimmt.
Zusätzliche Migrationsmöglichkeit durch Verwendung von pg_restore
Für Benutzer mit einer TAR-Datei, die SQL und Daten separat enthält, kann zusätzlich zu den zuvor genannten pg_restore
-Befehlen der Befehl psql
verwendet werden, um die Daten zu migrieren. Ein Beispiel für den Befehl
pg_restore
:
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt pg_restore -h c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud -p 32484 -U admin -F t -d ibmclouddb tarfile.tar