Tôi đang sử dụng SQL Server 2014 và đây là tình huống:
- Tôi có máy chủ A và máy chủ B.
- ETL qua đêm được xử lý trên máy chủ A.
- Sau khi quá trình tải hoàn tất, cơ sở dữ liệu X sẽ được sao lưu (với
CHECKSUM
vàRESTORE VERIFYONLY
để đảm bảo độ tin cậy) và sau đó được gửi đến máy chủ B. - Máy chủ B nhận
bak
tệp và sau đó khôi phục cơ sở dữ liệu ở đó.
Tôi muốn sử dụng chiến lược sao lưu khác biệt để:
Sao lưu toàn bộ chỉ được thực hiện vào Thứ Bảy,
tức là Sao lưu toàn bộ trên máy chủ A vào Thứ Bảy -> gửi đến máy chủ B -> Khôi phục sao lưu toàn bộ trên máy chủ BNhững ngày còn lại sẽ là sao lưu vi sai
tức là Sao lưu vi sai trên máy chủ A -> gửi đến máy chủ B -> Khôi phục sao lưu vi sai trên máy chủ B
Tôi đã thử nhưng tôi gặp lỗi, nói:
bản sao lưu nhật ký hoặc vi sai không thể được khôi phục vì không có tệp nào sẵn sàng để tiến hành.
Không chắc chắn lý do tại sao. Tôi đã kiểm tra sys.database_files
trên máy chủ A và máy chủ B, và tôi có thể thấy rằng differential_Base_LSN
và differential_base_GUID
giống nhau. Bất cứ nơi nào / bất cứ điều gì khác để kiểm tra?
Nhân tiện, ở bước 2 ở trên, khi tôi khôi phục lại bản sao lưu diff trên máy chủ B, tôi có luôn cần khôi phục cả bản sao lưu đầy đủ + bản sao lưu vi sai mỗi lần không?
Tôi chỉ khôi phục bản sao lưu vi sai WITH RECOVERY
(và nhận được thông báo lỗi đó) vì bản sao lưu đầy đủ đã được khôi phục vào ngày hôm trước.
Để làm rõ: Có, tôi muốn db trên máy chủ B có thể đọc được giữa các vi sai. Làm thế nào tôi có thể nhận được xung quanh đó? Là lựa chọn duy nhất của tôi để RESTORE FULL (WITH NORECOVERY)
+ RESTORE DIFF (WITH RECOVERY)
chuỗi kết hợp mỗi đêm?
Bất kỳ hướng dẫn sẽ được nhiều đánh giá cao.