เรากำลังใช้ SQL Server ด้วยโหมดการกู้คืนแบบเต็ม ด้วยการสำรองข้อมูลเต็มรูปแบบและการสำรองข้อมูลชุดต่างๆเราต้องการตรวจสอบว่าบันทึกการเชื่อมโยงนั้นสมบูรณ์จากการสำรองข้อมูลเต็มรูปแบบล่าสุดไปยังบันทึกหางปัจจุบันหรือไม่ (โดยไม่มีการกู้คืนการสำรองข้อมูลเหล่านี้จริง ๆ วัตถุประสงค์ของที่นี่คือการทดสอบความสอดคล้องของการสำรองข้อมูล)
ฉันรู้วิธีการสำรองข้อมูลที่มีอยู่แล้ว: การใช้ RESTORE HEADERONLY ฉันได้รับ FirstLSN และ LastLSN ของทุกไฟล์ซึ่งสามารถเปรียบเทียบได้สำหรับไฟล์ที่ต่อเนื่องกันเพื่อตรวจสอบว่าเข้ากันได้หรือไม่
อย่างไรก็ตามฉันไม่ทราบวิธีการตรวจสอบว่าบันทึกท้ายติดตามการสำรองข้อมูลบันทึกล่าสุด
หากฉันมีบันทึกหาง FirstLSN ฉันสามารถเปรียบเทียบกับ LastLSN ของข้อมูลสำรองบันทึกล่าสุดได้ แต่ฉันจะขอรับ FirstLSN ของบันทึกท้ายได้อย่างไร
ฉันต้องการโซลูชันที่ใช้งานได้ตั้งแต่ SQL Server 2005 ขึ้นไป (ควรใช้ t-sql) จนถึงตอนนี้ฉันได้ค้นหา Google ไม่เป็นประโยชน์ Btw ฉันโพสต์สิ่งนี้ใน stackoverflow เป็นครั้งแรก; แต่ย้ายมาที่นี่เนื่องจากถูกตั้งค่าสถานะนอกหัวข้อที่นั่น
แก้ไข
ฉันลองทั้งสองวิธีแก้ปัญหาในตัวอย่างเล็ก ๆ (SQL Server 2005, 9.0.5057):
BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak'
-- fire some update queries
BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak'
-- fire both queries from the provided answers:
-- Martin Smith's answer yields: 838886656088920652852608
-- Shawn Melton's answer yields: 46000000267600001
RESTORE HEADERONLY FROM DISK = 'C:\temp\backup test\Log1.bak'
-- yields: 46000000267600001
ดังนั้นจึงปรากฏว่าอันแรกถูกปิดโดยคำสั่งหลายขนาด
ฉันทำแบบทดสอบเดียวกันกับ SQL 2008 SP1 (10.00.2531) ซึ่งทั้งสองแบบสอบถามให้คำตอบที่ถูกต้อง