Bạn không cần tạo một tệp trung gian. Bạn có thể làm
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
hoặc
pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
sử dụng psql
hoặc pg_dump
để kết nối với máy chủ từ xa.
Với cơ sở dữ liệu lớn hoặc kết nối chậm, việc kết xuất tệp và chuyển tệp đã nén có thể nhanh hơn.
Như Kornel đã nói không cần phải kết xuất vào một tệp trung gian, nếu bạn muốn nén hoạt động, bạn có thể sử dụng một đường hầm nén
pg_dump -C dbname | bzip2 | ssh [email protected] "bunzip2 | psql dbname"
hoặc
pg_dump -C dbname | ssh -C [email protected] "psql dbname"
nhưng giải pháp này cũng yêu cầu có được một phiên ở cả hai đầu.
Lưu ý: pg_dump
là để sao lưu và psql
là để khôi phục. Vì vậy, lệnh đầu tiên trong câu trả lời này là sao chép từ cục bộ sang từ xa và lệnh thứ hai là từ từ xa sang cục bộ . Thêm -> https://www.postgresql.org/docs/9.6/app-pgdump.html