Kopieren Sie die PostgreSQL-Datenbank von einem Remote-Server

10

Wenn ich MySQL verwendete, konnte ich einen Befehl ausführen, der SSHs auf meinem Server ausführt, und die Datenbank auf meinen lokalen Computer kopieren.

ssh -t Remoteserver 'mysqldump --compress -u dbuser --password = "Passwort" Datenbankname' | / usr / local / mysql / bin / mysql -u root --password = "Passwort" local_db_name

Wie kann ich mit PostgreSQL dasselbe tun?

wyred
quelle

Antworten:

14

Wenn der DB-Server Datenbankverbindungen von Ihrem Host (normalerweise an Port 5432) übernimmt, müssen Sie kein SSH verwenden. In diesem Fall müssen Sie Folgendes tun:

pg_dump -h your_db_host -U db_user -C db_name | psql -h localhost -d local_db_name -U local_db_user

Wenn Sie nur vom Host selbst aus eine Verbindung zu Ihrer Datenbank herstellen können, müssen Sie die SSH-Logik aus Ihrem MySQL-Beispiel hinzufügen.

Mit erhalten -CSie CREATE DATABASEam Anfang des Dumps einen Befehl, damit Sie ihn nicht selbst erstellen müssen. Mit dem obigen Befehl werden Sie zweimal nach einem Kennwort gefragt, es sei denn, Sie speichern diese in einer .pgpass- Datei (vorausgesetzt, Sie arbeiten unter Linux / Unix). Die lokale Verbindung kann auch anders sein, wenn Ihre Datenbank TCP nicht überwacht (in diesem Fall lassen Sie einfach den -h localhostTeil weg ).

Weitere Details und Optionen finden Sie in der Dokumentation zu pg_dump .

dezso
quelle
bedeutet, dass Sie auf beiden Servern dasselbe Passwort haben müssen, oder?
Florian Heigl
1
@ FlorianHeigl Nr.
Dekso