Bạn đã không đề cập đến cách sao lưu của mình được thực hiện, vì vậy câu trả lời chung chung là: Thường là với psql
công cụ.
Tùy thuộc vào cái gì pg_dump
được hướng dẫn kết xuất, tệp SQL có thể có các bộ lệnh SQL khác nhau. Ví dụ:nếu bạn hướng dẫn pg_dump
để kết xuất cơ sở dữ liệu bằng cách sử dụng --clean
và --schema-only
, bạn không thể mong đợi có thể khôi phục cơ sở dữ liệu từ kết xuất đó vì sẽ không có lệnh SQL nào để SAO CHÉP (hoặc CHÈN if --inserts
được sử dụng) dữ liệu thực tế trong bảng. Một kết xuất như vậy sẽ chỉ chứa các lệnh DDL SQL và sẽ có thể tạo lại lược đồ nhưng không phải dữ liệu thực tế.
Một kết xuất SQL điển hình được khôi phục bằng psql
:
psql (connection options here) database < yourbackup.sql
hoặc cách khác từ psql
phiên,
psql (connection options here) database
database=# \i /path/to/yourbackup.sql
Trong trường hợp sao lưu được thực hiện bằng pg_dump -Fc
("định dạng tùy chỉnh"), không phải là một tệp SQL thuần túy mà là một tệp nén, bạn cần sử dụng pg_restore
công cụ.
Nếu bạn đang làm việc trên một thiết bị giống unix, hãy thử cách này:
man psql
man pg_dump
man pg_restore
nếu không, hãy xem các tài liệu html. Chúc bạn thành công!