2012-05-07 14 views
5

Tôi có một ứng dụng đường ray chạy trên Heroku bằng cơ sở dữ liệu tiêu chuẩn của họ với các hình ảnh được lưu trữ trên s3.Làm cách nào tôi có thể sao lưu một cách có trách nhiệm ứng dụng dựa trên heroku/s3/github của tôi?

Tôi nên làm sao lưu có trách nhiệm?

Cho đến nay tôi tải xuống mã ứng dụng, tệp s3 và ảnh chụp nhanh cơ sở dữ liệu hàng tháng và lưu trữ nó trên ổ đĩa ngoài. Tải xuống các tệp của tôi từ s3 cực kỳ chậm và tôi mong đợi nó sẽ tồi tệ hơn nhiều khi thời gian trôi qua.

Trả lời

2

Tôi đã sử dụng các PG Sao lưu Heroku add-on:

https://devcenter.heroku.com/articles/pgbackups

Nó sao lưu cơ sở dữ liệu Postgres của bạn và có thể được cấu hình để lưu trữ các bản sao lưu hàng ngày (hoặc thường xuyên hơn nếu cần thiết). Tôi muốn khuyên bạn nên nó nói chung cho sao lưu cơ bản của cơ sở dữ liệu.

Mã tôi chỉ đơn giản giữ một bản sao trong kho lưu trữ trong github (hoặc một số kho lưu trữ git khác). Github là tuyệt vời và tôi không thể nghĩ ra một lý do để làm bất cứ điều gì khác.

Bản thân S3 khá an toàn và đáng tin cậy. Dưới đây là một đoạn trích từ thông tin sản phẩm của họ:

Amazon S3 cung cấp cơ sở hạ tầng lưu trữ có độ bền cao được thiết kế cho lưu trữ dữ liệu quan trọng và nhiệm vụ. Các đối tượng được lưu trữ dư thừa trên nhiều thiết bị trên nhiều cơ sở trong Vùng Amazon S3. Để giúp đảm bảo độ bền, các hoạt động của Amazon S3 PUT và COPY lưu trữ đồng bộ dữ liệu của bạn trên nhiều cơ sở trước khi trả về THÀNH CÔNG.

Nếu điều quan trọng là bạn có bản sao an toàn tất cả các tệp từ S3, tôi có thể thiết lập một số công việc theo lịch thường xuyên để sao chép chúng vào máy chủ. Tôi đã sử dụng S3 Công cụ để làm điều này trong quá khứ:

http://s3tools.org/s3cmd

+0

Đó là những gợi ý hay và tương tự như những gì tôi đang làm bây giờ. Tôi cho rằng có mã trên github và cục bộ là khá tốt. Tôi có lẽ sẽ tiếp tục tải xuống và lưu trữ các bản sao lưu heroku để an toàn hơn. S3 là vấn đề lớn nhất và sử dụng một nhiệm vụ theo lịch trình có lẽ là cách để làm điều đó, cảm ơn! –

+0

Vì vậy, về cơ bản, toàn bộ dịch vụ web của bạn dựa trên Amazon ... Điều gì sẽ xảy ra nếu chúng rơi xuống trong một thời gian khá dài vì bất kỳ lý do gì, hoặc đột nhiên chúng bắt đầu mất dữ liệu? Nếu toàn bộ doanh nghiệp của bạn dựa vào điều này thì sao? –

+0

's3cmd' là * bị hỏng * và không được sử dụng để sao lưu hoặc bất kỳ điều gì tự động. Đáng chú ý nhất là phiên bản 1.1.0 và có thể là bất cứ điều gì cũ hơn có thể trả lại mã thoát '0' trên' s3cmd put' mặc dù nó thậm chí không thể giải quyết các máy chủ trong trường hợp lỗi DNS. –

0

Tôi chỉ phải lưu trữ một trang web, nơi truy cập vào các repo git sử dụng để đẩy nó là không có sẵn. Tôi đã làm như sau bằng cách sử dụng cluku heruku.

  • đăng nhập Heroku
  • Heroku git: clone -a bạn-app-tên
  • Heroku pg: sao lưu: chụp -a-app-tên của bạn
  • Heroku pg: sao lưu: tải -a của bạn -app-name

Khi hoàn thành, bạn sẽ có một thư mục có chứa tên ứng dụng và tên miền 'latest.dump'.

Tất cả điều này sẽ khá dễ dàng để viết.