Di chuyển cơ sở dữ liệu postgresql từ máy chủ này sang máy chủ khác


9

Tôi đã tạo một cơ sở dữ liệu (không gian) tại nhà của tôi, một vài gigabyte và tôi muốn di chuyển toàn bộ cơ sở dữ liệu như từ một máy tính mà máy tính làm việc của tôi.

Không có gì hâm mộ, tôi sẽ tạo một cá thể db postgresql / postgis mới tại máy tính làm việc của tôi. Người dùng db có thể hoặc không thể có cùng tên trong cả hai máy tính.

Có thể không? Tôi nên cẩn thận về điều gì? Làm thế nào tôi có thể làm nó đau miễn phí?

Tôi đang sử dụng postgresql v9.1.5 với phần mở rộng postgis. Ubuntu12.04 (nhân 3.2.0-31)


Xem chủ đề tương tự này trên StackOverflow, Sao chép cơ sở dữ liệu PostgreSQL sang máy chủ khác .
Basil Bourque

Câu trả lời:


11

Bạn có thể chạy một bãi chứa cơ sở dữ liệu:

pg_dump yourdatabase | gzip -9 > outfile.sql.gz

và sau đó nhập trở lại vào PostgreSQL trên máy tính làm việc của bạn. Sẽ mất khá nhiều thời gian và tệp kết quả, ngay cả khi được nén, có thể nằm trong phạm vi gigabyte, nhưng phải đủ nhỏ để chứa trong khóa USB.

Trên máy tính làm việc của bạn, tạo cơ sở dữ liệu mới và tải kết xuất:

zcat outfile.sql.gz | psql yournewdatabase

Nếu bạn có kết nối nhanh (hoặc có thể mất thời gian), bạn thậm chí có thể chuyển cơ sở dữ liệu qua Internet thông qua kết nối SSH được mã hóa hoặc các công cụ như rsync.


1
Điều gì về quyền riêng tư của người dùng / nhóm? ở nhà tôi có ví dụ user1 nhưng tại nơi làm việc user2. Có vấn đề gì không?

2
Nó không nên. Tất nhiên, bạn phải đặt đúng người dùng trong ứng dụng của mình. Vì đó là PC tại nhà của bạn, hãy thử đổi tên user1 thành user2 và xác minh tất cả đều hoạt động trước khi bán phá giá. Sau đó, việc chuyển giao sẽ không gặp rắc rối.

3
Sử dụng pg_dumpall cho kết xuất các vai trò cơ sở dữ liệu.
Frank Heikens

1
để có thể kết xuất cơ sở dữ liệu, bạn cần cài đặt phiên bản postgresql giống như trên máy chủ cũ, xem wiki.postgresql.org/wiki/Apt
rubo77

2

pg_dumpall là cách an toàn nhất để làm điều này. Tôi sẽ khuyên bạn nên lấy một bãi rác trước khi di chuyển. vấn đề lớn với nó là nó có thể mất một thời gian để khôi phục nếu nó lớn.

Bạn cũng có thể sao chép thư mục dữ liệu, tốt nhất là sau khi dừng máy chủ của bạn (bạn có thể sử dụng pg_start_backup () thay cho việc dừng nhưng xem tất cả các tài liệu về thời gian phục hồi trước khi bạn đi theo tuyến đường đó. Tuyến đó sẽ cho phép thời gian ngừng hoạt động gần như bằng không di chuyển tuy nhiên. Cũng lưu ý rằng bạn chỉ có thể làm điều này nếu kiến trúc HĐH và CPU giống nhau trên cả hai hệ thống. Bạn không thể chuyển từ Windows sang Linux hoặc từ i686 sang x86-64 theo cách này. để đảm bảo các hệ thống tương thích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.