Câu trả lời:
Bạn có thể sử dụng pg_dump
như thế này:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Vui lòng suy nghĩ trước để đặt .pgpass
tệp chứa mật khẩu sẽ được sử dụng nếu kết nối yêu cầu mật khẩu. Tập tin này nên có các dòng định dạng sau:
hostname:port:database:username:password
Và mỗi trong bốn trường đầu tiên có thể là một giá trị theo nghĩa đen, hoặc *, phù hợp với bất cứ điều gì. Ví dụ : *:*:*:postgres:pg_password
.
Tập .pgpass
tin này phải nằm trong thư mục chính ~ / và các quyền trên nó phải không cho phép mọi quyền truy cập vào thế giới hoặc nhóm; đạt được điều này bằng lệnh
chmod 0600 ~/.pgpass
.
Chạy pg_dumpall từ cron.
Hãy dùng thử AutoPostgreQueryBackup . Nó là một tập lệnh duy nhất, có thể dễ dàng cấu hình theo nhu cầu của bạn, lập lịch hàng ngày, hàng tuần và hàng tháng, nhật ký cho mỗi email, tệp nhật ký hoặc thiết bị xuất chuẩn, v.v.
Nếu đó là một cơ sở dữ liệu nhỏ một cách hợp lý và các yêu cầu thấp như vậy đối với bản sao lưu chỉ một lần một ngày, chỉ cần chạy pg_dump từ cron để chuyển sang tệp cục bộ, sau đó sử dụng bất cứ thứ gì bạn có để sao lưu các tệp trên máy để lưu trữ kết xuất .
pg_rman là một công cụ mới, cung cấp các bản sao lưu gia tăng, hoạt động cho PostgreQuery 8.4 hoặc mới hơn.
Hãy thử astrails an toàn . Nó biết cách sao lưu mysql (mysqldump), postgres (pg_dump) hoặc chỉ các tệp đơn giản (tar) bằng mã hóa (gnupg) và tải lên S3 / Sftp.
pg_dump là một giải pháp tốt, nhưng nếu bạn đang cố gắng sao lưu nhiều dữ liệu, có lẽ điều này có thể giúp:
http://www.postgresql.org/docs/8.1/static/backup-online.html
trong thực tế là một loại ghi nhật ký 'thô', nhưng có thể hữu ích như một phương thức sao lưu gia tăng ...
Đây là một tập lệnh sẽ sao lưu từng cơ sở dữ liệu riêng lẻ cũng như thông tin đăng nhập thường xuyên nhưng quan trọng của PostgreSQL GLOBALS và thông tin đăng nhập của người dùng.
Tầm quan trọng của việc này là tận dụng việc nén mà pg_dumpall không cung cấp và dữ liệu bị quên mà pg_dump bỏ qua.
Điều này sẽ yêu cầu một pgpass hoặc thiết lập tương tự như được mô tả ở đây http://wiki.postgresql.org/wiki/Pgpass
Đây là thiết lập cho OSX nhưng chỉ cần thay đổi đường dẫn Chương trình và nó sẽ hoạt động tốt.
Sao lưu lên / sqlbackups Tập lệnh sẽ trả về kích thước thư mục / thư mục và có các điểm dừng sẽ trả về trạng thái khác không nếu thất bại. Tôi đã sử dụng nó kết hợp với pgAgent để thực hiện sao lưu hàng ngày.
Script đã được xử lý lại, xin lỗi về điều đó :(
Tại sao ổn định với một bản sao lưu hàng ngày khi bạn có thể dễ dàng phục hồi tại thời điểm với barman ?
Như những người khác đã nói: pg_dumpall.
Ngoài ra, hãy xem đăng nhập vận chuyển. Sau đó, bạn có thể nhận được nhiều bản sao lưu theo thời gian hơn mà bạn có thể phát lại: http://www.postgresql.org/docs/8.3/static/r nb-config-wal.html
Hoặc làm thế nào về phần sao lưu trong hướng dẫn: