Tôi có phải xóa và sau đó tạo cơ sở dữ liệu để khôi phục cơ sở dữ liệu từ tệp pg_dump không? Nếu tôi không xóa cơ sở dữ liệu, dữ liệu đang được khôi phục sẽ được thêm vào dữ liệu hiện tại trong DB ngay cả khi một số đăng ký đã có trong cơ sở dữ liệu (vì vậy dữ liệu được nhân đôi).Khôi phục cơ sở dữ liệu Postgresql
5
A
Trả lời
6
Bạn có thể sử dụng tùy chọn -c (--clean) trong khi chạy pg_dump, do đó, kết xuất sẽ chứa các lệnh DROP ... thích hợp.
Nhưng nói chung, tôi sẽ đề nghị để đi theo "con đường khó":
dropdb ...
createdb ...
psql -d ... -f dump.file
Bằng cách này bạn chắc chắn rằng không có "thuyết minh trái" từ bất cứ trước đây trong cơ sở dữ liệu.
Một điều tốt nữa về giải pháp của bạn là bạn không cần phải thực hiện một VACUUM ĐẦY ĐỦ để lấy lại không gian của các bản ghi đã xóa. – bortzmeyer