ฉันใช้ SQL Server 2014 และนี่คือสถานการณ์:
- ฉันมีเซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B
- ETL ข้ามคืนประมวลผลบนเซิร์ฟเวอร์ A
- หลังจากกระบวนการโหลดเสร็จสิ้นฐานข้อมูล X จะได้รับการสำรอง (ด้วย
CHECKSUM
และRESTORE VERIFYONLY
เพื่อให้มั่นใจในความน่าเชื่อถือ) จากนั้นจะถูกส่งไปยังเซิร์ฟเวอร์ B - เซิร์ฟเวอร์ B ได้รับ
bak
ไฟล์จากนั้นกู้คืนฐานข้อมูลที่นั่น
ฉันต้องการใช้กลยุทธ์การสำรองข้อมูลที่แตกต่างกันเพื่อที่:
การสำรองข้อมูลทั้งหมดจะทำในวันเสาร์เท่านั้น
เช่นการสำรองข้อมูลเต็มรูปแบบบนเซิร์ฟเวอร์ A ในวันเสาร์ -> จัดส่งไปยังเซิร์ฟเวอร์ B -> กู้คืนการสำรองข้อมูลเต็มรูปแบบบนเซิร์ฟเวอร์ Bส่วนที่เหลือของวันจะเป็นการสำรองข้อมูลที่แตกต่างกัน
เช่นการสำรองข้อมูลที่แตกต่างกันบนเซิร์ฟเวอร์ A -> จัดส่งไปยังเซิร์ฟเวอร์ B -> เรียกคืนการสำรองข้อมูลต่างกันในเซิร์ฟเวอร์ B
ฉันได้ลองแล้ว แต่ฉันพบข้อผิดพลาดว่า:
ไม่สามารถกู้คืนบันทึกหรือการสำรองข้อมูลส่วนต่างได้เนื่องจากไม่มีไฟล์พร้อมที่จะเปิดใช้งาน
ไม่แน่ใจว่าทำไม ฉันตรวจสอบsys.database_files
บนเซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B และฉันเห็นว่าdifferential_Base_LSN
และdifferential_base_GUID
เหมือนกัน มีอะไรให้ตรวจสอบอีกบ้าง?
ในขั้นตอนที่ 2 ข้างต้นเมื่อฉันกู้คืนการสำรองข้อมูล diff บนเซิร์ฟเวอร์ B ฉันจำเป็นต้องกู้คืนทั้งการสำรองข้อมูลทั้งหมด + การสำรองข้อมูลต่างกันทุกครั้งหรือไม่
ฉันกู้คืนการสำรองข้อมูลส่วนต่างเท่านั้นWITH RECOVERY
(และได้รับข้อความแสดงข้อผิดพลาดนั้น) เนื่องจากการสำรองข้อมูลเต็มรูปแบบได้รับการกู้คืนแล้วเมื่อวันก่อน
เพื่อชี้แจง: ใช่ฉันต้องการให้ db บนเซิร์ฟเวอร์ B อ่านได้ระหว่างดิฟเฟอเรนเชียล ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร ตัวเลือกเดียวของฉันที่จะRESTORE FULL (WITH NORECOVERY)
+ RESTORE DIFF (WITH RECOVERY)
ลำดับคอมโบในแต่ละคืน
คำแนะนำใด ๆ ที่จะได้รับการชื่นชมมาก