2012-03-06 5 views
7

Tôi đang tham gia một dự án mới và tôi phải làm việc với cơ sở dữ liệu PostgreSQL hiện có. Ứng dụng này được tạo bằng CakePHP. Vấn đề tôi đang phải đối mặt trong khi nhập khẩu là kích thước tập tin của cơ sở dữ liệu là khoảng 4,8 GB và tôi hoàn toàn mới với PostgreSQL.Làm cách nào để nhập một tệp lớn vào PostgreSQL?

Tôi đã làm việc trên MySql và NoSqls nhưng PostgreSQL dường như là một phần khó khăn đối với tôi. Tôi thậm chí đã cố gắng nhập tệp qua Bàn điều khiển, nhưng lại không thành công. Tôi đang sử dụng PostgreSQL trên Ubuntu (Core i3). Xin hãy giúp tôi về điều này.

Xin cảm ơn trước.

Nishant Shrivastava

+0

định dạng là gì tập tin trong? Bạn đã cố gắng thực hiện quá trình nhập và lỗi bạn nhận được ở bảng điều khiển là gì? Lược đồ cơ sở dữ liệu của bạn là gì? –

+3

Đây có phải là kết xuất cơ sở dữ liệu đầy đủ (lược đồ + dữ liệu) mà bạn muốn khôi phục hoặc chỉ dữ liệu bạn muốn chèn không? Tệp có chứa câu lệnh 'INSERT' hoặc' COPY' không? Bạn đang chạy phiên bản PostgreSQL nào? – tscho

+3

"* nhưng lại thất bại *" không phải là thông báo lỗi PostgreSQL hợp lệ –

Trả lời

5

có nhiều khả năng

psql yourdb -f yourfile 
psql yourdb < yourfile 
cat yourfile | psql yourdb 

psql yourdb 
\i yourdb 
+0

Tôi đã có khoảng 8GB tệp sql và tất cả các lệnh này trả lại cho tôi thông báo "out of memeory" –

+0

hãy kiểm tra lại cấu hình postgresql của bạn - chủ yếu là 'work_mem' và' maintenance_work_mem'. Quan trọng tiếp theo là cấu hình quản lý ảo của hệ điều hành - ví dụ 'overcommit_ratio' trên Linux. Có lẽ Postgres của bạn có quá ít bộ nhớ từ o.s. –

+0

đã kiểm tra các cấu hình này trong tệp postgresql.conf của tôi, #work_mem = 1MB, #maintenance_work_mem = 16MB Tôi có nên thay đổi chúng, nếu có, cho cái gì? –