Điều gì xảy ra nếu rsnapshot / rdiff-backup bị gián đoạn ở giữa một lần chuyển?


20

Câu hỏi nói lên tất cả:

Điều gì xảy ra nếu rsnapshot hoặc sao lưu dự phòng bị gián đoạn ở giữa chuyển khoản?

Tôi biết rằng rsnapshot cố gắng tạo một ảnh chụp nhanh hoàn chỉnh cho hệ thống của bạn theo kiểu xoay vòng, và sao lưu dự phòng tạo ra một bản sao lưu khác biệt, sẽ dựa trên các tệp được lưu trước đó.

Vậy: Điều gì xảy ra nếu nó bị gián đoạn ở giữa?

Điều này có dẫn đến một "ảnh chụp không đầy đủ" không?

Các ảnh chụp nhanh khác phụ thuộc vào ảnh này sẽ bị hỏng? (Chắc chắn là không, nhưng ...?)


1
Sẽ không rõ ràng hơn nhiều nếu bạn tách câu hỏi này thành hai câu hỏi riêng biệt?
andol

2
@andol Nếu anh ấy đang tìm kiếm thông tin về cách phục hồi sau khi chuyển khoản bị gián đoạn, tôi nghĩ sẽ tốt hơn nếu có hai câu hỏi. Tôi giải thích đây là một yêu cầu để so sánh mức độ rắc rối của bạn nếu bạn sử dụng từng tiện ích, tuy nhiên, giống như đó là một biến thể của "giúp tôi quyết định sử dụng cái nào."
ændrük

Cảm ơn Andol; nhưng không, tôi nghĩ đây là một câu hỏi Về cơ bản, "điều gì xảy ra nếu rsnapshot / rsync bị gián đoạn giữa quá trình chuyển?", Và tôi nghĩ rằng các công cụ trải dài trên một ngách cụ thể, vì vậy điều này IMO không đảm bảo hai câu hỏi riêng biệt. Tôi đặt ra câu hỏi về 'ảnh chụp không hoàn chỉnh' là một kết quả tiềm năng cho mục đích làm rõ.
emf

Câu trả lời:


22

Hiểu biết của tôi là ...

Sao lưu dự phòng sẽ phát hiện gia tăng không đầy đủ vào lần chạy tiếp theo. Nó sẽ xóa gia số không đầy đủ để vị trí sao lưu giống như khi cố gắng sao lưu bị gián đoạn chưa bao giờ được bắt đầu.

rsnapshot phức tạp hơn một chút vì thói quen của nó là từng bước hơn và thay đổi tùy thuộc vào việc sử dụng sync_firstuse_lazy_deletescác tùy chọn.

  • Nếu bạn sử dụng sync_firstrsnapshot syncbị gián đoạn, bạn chỉ cần chạy rsnapshot synclại để làm thẳng mọi thứ. Nếu bạn vô tình chạy rsnapshot <backup level>vào thời điểm này thay vào đó, điểm sao lưu mới nhất sẽ vẫn chưa hoàn thành và sẽ được thực hiện thông qua các vòng quay.
  • Nếu bạn không sử dụng sync_first, bạn sẽ bị mắc kẹt với một điểm sao lưu không đầy đủ là sự kết hợp của các phiên bản cũ và mới của các tệp. Trừ khi bạn xoay ngược thủ công từng điểm sao lưu, điểm sao lưu không đầy đủ sẽ được thực hiện thông qua các vòng quay.
  • Trong cả hai trường hợp, việc chạy rsnapshot <backup level>sẽ khiến điểm sao lưu cũ nhất bị mất trừ khi use_lazy_deletesđược bật.

Lưu ý rằng sync_firstuse_lazy_deletesđi kèm với chi phí sử dụng nhiều dung lượng đĩa hơn.


Một lời nhắc nhở / từ chối trách nhiệm: Điều này không cần phải nói, nhưng đừng bao giờ tin tưởng một cách mù quáng vào lời khuyên của người khác trên internet. Nếu bạn có kế hoạch sử dụng sao lưu dự phòng hoặc rsnapshot cho mục đích quan trọng , hãy đọc từng từ của hướng dẫn và kiểm tra, kiểm tra, tự kiểm tra mọi thứ!


1
Một lời nhắc nhở đáng trân trọng và thực hành tốt để theo kịp văn hóa "phương pháp phù hợp" này, chúng tôi không muốn linux biến thành vùng đất tiêu dùng ngu ngốc. Cảm ơn đã lưu ý.
emf

Vì vậy, hiểu chính xác: có một bản sao lưu không đầy đủ "được thực hiện trong các lần quay" cho rsnapshot sẽ có hai điều: 1. Ảnh chụp nhanh đó sẽ không đầy đủ nếu được quay lại ở điểm sau 2. Mọi ảnh chụp nhanh cấp cao hơn vẫn sẽ hoàn tất , nhưng sẽ không tham khảo chính xác các tệp liên kết cứng trước đó bị bỏ sót trong ảnh chụp nhanh chưa hoàn chỉnh. Điều này có đúng không?
emf

1

Điều đó vừa xảy ra với tôi. ổ đĩa ngoài của tôi đã trở thành một nửa hoàn toàn thông qua sao lưu gia tăng của rsnapshot:

rsync: write failed on "<path>": No space left on device (28) 

Bây giờ tôi muốn chia sẻ một vài điều tôi học được từ điều này. tức là sửa chữa và hạn chế các cơ hội nghiêm trọng để trường hợp đó cắn tôi trở lại;)

Tiếp tục sao lưu bị gián đoạn của Rupnapshot

Tôi biết hai cách để quay trở lại một cách an toàn.

Thủ công

  1. Xóa thư mục cuối cùng (ví dụ: Daily.0)
  2. Đổi tên các thư mục liên tiếp (hàng ngày.1 -> hàng ngày.0, ...); kịch bản có thể 1
  3. Chạy sao lưu như bình thường (một lần nữa).

Tự động

rsnapshot không có khả năng tạm dừng / dừng và tiếp tục (ngoại trừ " bị bỏ qua do kế hoạch khôi phục " 2 ), vì vậy chúng tôi phải sử dụng trình bao bọc để xử lý các tính năng này.

rsnapshot-once3 bởi Philipp C. Heckel là một trình bao bọc cho rsnapshot trong PHP rằng:

  • hoạt động mà không sửa đổi conf của rsnapshot của bạn
  • đảm bảo rằng các tác vụ hàng ngày, hàng tuần và hàng tháng chỉ được chạy một lần trong khoảng thời gian tương ứng, thông qua cron (tốt cho máy tính xách tay)
  • khôi phục lại bản sao lưu thất bại (kiểm tra xem bản sao lưu cuối cùng đã hoàn thành chưa, nếu không thư mục cuối cùng bị xóa và các thư mục liên tiếp được đổi tên, ví dụ: Daily1. -> Daily.0, ...)

Sử dụng nó trong một năm Tôi là một người dùng hạnh phúc: Tôi đã chỉnh sửa php.ini openbase_dircho nhu cầu sao lưu của mình và voila, ngày may mắn ^ _ ^ Nhẹ nhàng và an toàn hơn so với giải pháp dựa trên rsnapshot thô trước đây của tôi.

Lưu ý: slm đã liên kết tôi ở đây từ câu hỏi trùng lặp: đích đầy đủ của mục đích - Làm thế nào để chạy lại an toàn?

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.