Nextcloud AIO — Restore
DOC PATH runbooks/nextcloud/restore-from-borgbackup
Mục đích
Mục có tiêu đề “Mục đích”Restore hệ thống Nextcloud AIO về restore point BorgBackup đã chọn thông qua giao diện AIO, sau đó kiểm tra dữ liệu và đưa dịch vụ trở lại hoạt động.
Quy trình này dành cho thao tác restore đã được phê duyệt. Không dùng để thử nghiệm trên môi trường thật khi chưa xác định rõ restore point và kế hoạch gián đoạn dịch vụ.
Preconditions
Mục có tiêu đề “Preconditions”Trước khi bắt đầu:
- Xác định rõ restore point cần dùng.
- Backup storage và repository Borg đang truy cập được.
- Đã bố trí maintenance window phù hợp.
- Đã thông báo cho user nếu restore gây gián đoạn.
- Có đủ dung lượng cho dữ liệu restore.
- Ghi nhận trạng thái hiện tại của container và dịch vụ.
- Đảm bảo không có thao tác backup, nâng cấp hoặc bảo trì khác đang chạy.
Kiểm tra nhanh trước khi thao tác:
docker psdf -hdocker logs --tail 100 nextcloud-aio-mastercontainerẢnh hưởng
Mục có tiêu đề “Ảnh hưởng”Trong quá trình restore:
- User có thể không truy cập được Nextcloud.
- Các thay đổi sau thời điểm của restore point có thể bị mất.
- Phải tạm tắt Daily Backup.
- Không khởi động lại server, Docker hoặc dừng cưỡng chế Borg container.
- Không chỉnh sửa thủ công nội dung bên trong Borg repository.
- Thời gian restore phụ thuộc vào kích thước backup, hiệu năng storage và trạng thái server.
Runbook
Mục có tiêu đề “Runbook”1. Mở AIO
Mục có tiêu đề “1. Mở AIO”Truy cập giao diện Nextcloud qua tên miền đã được phê duyệt:
https://<nextcloud-domain>/Trong giao diện, lần lượt chọn:
Administration Settings > Overview > Open Nextcloud AIO Interface > Backup and restoreĐăng nhập bằng mật khẩu quản trị AIO lấy từ password manager. Không ghi mật khẩu vào ticket, lịch sử terminal hoặc log.
2. Disable Daily Backup
Mục có tiêu đề “2. Disable Daily Backup”Tắt tính năng Daily Backup trước khi bắt đầu restore.
Nếu AIO đang chạy Daily Backup hoặc một tác vụ backup khác, chờ tác vụ kết thúc theo trạng thái hiển thị trong giao diện AIO. Không đồng thời khởi chạy restore.
Cần theo dõi trạng thái Daily Backup trong suốt quá trình restore, đặc biệt khi restore kéo dài qua thời điểm backup theo lịch.
3. Update backup list
Mục có tiêu đề “3. Update backup list”Trong mục Backup and restore:
- Chọn
Update backup listđể cập nhật danh sách. - Chờ danh sách backup được làm mới.
- Đối chiếu thời gian, kích thước và metadata của restore point.
- Chọn đúng backup đã được phê duyệt.
Không chọn backup chỉ dựa vào tên; cần đối chiếu với hồ sơ sự cố hoặc hồ sơ thay đổi.
4. Restore
Mục có tiêu đề “4. Restore”Chọn restore point và bấm Restore selected backup.
Trong suốt quá trình restore:
- Không khởi động lại server.
- Không khởi động lại Docker.
- Không dừng cưỡng chế Borg container.
- Không xóa hoặc di chuyển Borg repository.
- Không thay đổi cấu hình reverse proxy nếu không thuộc kế hoạch restore.
Theo dõi tiến trình trong giao diện AIO và ghi lại lỗi nếu có. Nếu tiến trình dừng bất thường, kiểm tra log, trạng thái container và restore point trước khi quyết định chạy lại.
5. Start Containers
Mục có tiêu đề “5. Start Containers”Sau khi AIO báo restore hoàn tất, khởi động lại các container nếu giao diện web yêu cầu. Chờ trạng thái chuyển sang healthy/running trước khi xác minh.
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'6. Application Check
Mục có tiêu đề “6. Application Check”Kiểm tra trạng thái Nextcloud:
docker exec --user www-data nextcloud-aio-nextcloud php occ statusKiểm tra giao diện web:
https://<nextcloud-domain>/Đăng nhập bằng user kiểm thử, kiểm tra các file, thư mục, thư mục chia sẻ và metadata quan trọng trong phạm vi restore.
7. Check notify_push
Mục có tiêu đề “7. Check notify_push”Nếu High Performance Backend for Nextcloud Files được bật trước khi restore, kiểm tra lại notify_push:
docker exec --user www-data nextcloud-aio-nextcloud \php occ notify_push:setup https://<nextcloud-domain>/pushChạy self-test nếu thành phần đang hỗ trợ lệnh này:
docker exec --user www-data nextcloud-aio-nextcloud \php occ notify_push:self-testThay đổi một file thử nghiệm và kiểm tra client có nhận cập nhật theo thời gian thực hay không.
8. Re-enable Daily Backup
Mục có tiêu đề “8. Re-enable Daily Backup”Chỉ bật lại tính năng Daily Backup sau khi:
- Restore đã hoàn tất.
- Các container chính ở trạng thái healthy/running.
- Giao diện web truy cập được.
- notify_push đã kiểm tra hoặc được đánh dấu không áp dụng.
- Dữ liệu quan trọng đã được xác minh.
Sau khi bật lại, ghi nhận thời điểm tác vụ tiếp theo và theo dõi kết quả của lần backup đầu tiên.
Xác minh
Mục có tiêu đề “Xác minh”Dịch vụ
Mục có tiêu đề “Dịch vụ”docker psdocker compose -f /root/nextcloud-aio/compose.yaml psdocker logs --tail 100 nextcloud-aio-mastercontainerNextcloud
Mục có tiêu đề “Nextcloud”docker exec --user www-data nextcloud-aio-nextcloud php occ statusdocker exec --user www-data nextcloud-aio-nextcloud php occ app:listUser và dữ liệu
Mục có tiêu đề “User và dữ liệu”- Đăng nhập bằng user kiểm thử.
- Kiểm tra một file cũ có trong restore point.
- Kiểm tra quyền truy cập của một thư mục.
- Kiểm tra thư mục chia sẻ nội bộ nếu thuộc phạm vi restore.
- Upload và download một file kiểm thử.
- Đối chiếu checksum nếu có dữ liệu mẫu phù hợp.
Network
Mục có tiêu đề “Network”curl -I https://<nextcloud-domain>/Xác nhận không có redirect loop, certificate hợp lệ và request đi qua reverse proxy đúng với kiến trúc đã thiết kế.
Backup sau Restore
Mục có tiêu đề “Backup sau Restore”- Xác nhận tính năng Daily Backup đã được bật lại.
- Xác nhận tác vụ backup tiếp theo được lập lịch.
- Kiểm tra backup mới sau lần backup đầu tiên.
- Chạy kiểm tra tính toàn vẹn theo chính sách vận hành.
Rollback
Mục có tiêu đề “Rollback”Nếu restore thất bại:
- Không xóa restore point hoặc repository Borg.
- Ghi nhận lỗi, thời điểm và trạng thái container.
- Giữ tính năng Daily Backup ở trạng thái tắt cho đến khi có quyết định vận hành.
- Kiểm tra restore point khác đã được phê duyệt.
- Nếu cần quay lại trạng thái trước khi restore, dùng quy trình và backup riêng đã được xác nhận.
- Không dùng lệnh xóa volume hoặc prune Docker để xử lý lỗi restore.
- Báo cáo cho người quản trị hệ thống nếu giao diện AIO không còn phản hồi.