2013-03-11 3 views
5

Ich habe zwei Server auf PostgreSQL 8.4:Wie kopiert man die Tabelle von einem Server zu einem anderen in PostgreSQL?

server1:5432 
server2:5432 

Jetzt möchte ich Tabelle von server1 kopieren und in der Datenbank auf server2 setzen.
Es ist möglich zu tun?

UPDATE

Ich versuche zu tun, wie in @Valery Viktorovsky Antwort:

pg_dump --server1:5432 --encoding=utf8 --no-owner --username=postgres --123456 np_point > D:\np_point.sql 
psql --server2:5432 --username=postgres mrsk -f D:\np_point.sql 

und erhalten Fehler:

ERROR: syntax error at or near "pg_dump" 
LINE 1: pg_dump --server1:5432 --encoding=utf8 --no-owner --use... 

Antwort

8

Der sicherste Weg ist pg_dump zu verwenden.

1. pg_dump --host server1 --encoding=utf8 --no-owner --username=foo --password -t table_name db_name > server1_db.sql 
2. psql --host server2 --username=foo db_name -f server1_db.sql 
+0

Es nicht Datenbank auf Server2 neu schreiben? –

+0

Nein, es hängt davon ab, welche Daten bereits auf Server2 gespeichert wurden. Es ist möglich, Daten von server2.table_name zu löschen und dann neue Daten zu importieren. –

+0

Was bedeutet dieser Teil: 'db_name> server1_db.sql'? –

3

Versuchen Sie, diese

mit dem Befehl COPY von psql. Eine Verbindung mit server1 und export to CSV dann einer Verbindung zu server2 und import from CSV

+0

In 'COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;' Was bedeutet DELEMITER? –

+1

Das Trennzeichen ist ein Zeichen, das jede Spalte von der nächsten Spalte in einer exportierten Tabellenzeile abgrenzt. Lesen Sie mehr über [CSV] (http://en.wikipedia.org/wiki/Comma-separated_values), es ist ein sehr allgemeines und einfaches Format zum Importieren/Exportieren von Zeug, nicht nur von/zu Datenbank, sondern von jeder anderen Anwendung, die unterstützt es. – A4L

+0

Ich versuche 'COPY np_point TO 'C:/np_point.csv' DELIMITER ',' CSV HEADER;' PostgreSQL sagt: 'Abfrage erfolgreich zurückgegeben: 6004 Zeilen betroffen, 31 ms Ausführungszeit.Aber ich kann csv-Datei nicht finden. –

1

dies kopiert nur eine bestimmte Tabelle aus einer bestimmten Datenbank zu Zieldatenbank

pg_dump -h localhost -U postgres -p 5432 -C -t table_name source_db_name | ssh -C [email protected] "psql -h localhost -U postgres -p 5432 destination_db_name" 
1

Sie auch können Sie Linux-Shell-Skript verwenden, um Ihre Tabellendaten zu wandern aus ein Server zu einem anderen PostgreSQL-Server.

Ich habe gerade meine Antwort auf unten ähnlichen Stapel Frage geschrieben, bitte beachten Sie dies. Copying PostgreSQL database to another server

Verwandte Themen