เมื่อมีการทำธุรกรรม (COMMIT) ธุรกรรมนั้นจะถูกเขียนไปยังบันทึกธุรกรรมใน RAM
การทำธุรกรรมจะถูกเขียนลงในบันทึกการทำธุรกรรมก่อนที่จะเปลี่ยนหน้าหรือข้อมูลตามที่ร้องขอโดยแบบสอบถาม สิ่งนี้เรียกว่าการเขียนบันทึกล่วงหน้า (WAL) หาก SQL Server ขัดข้องในขณะที่หน้ากำลังมีการปรับปรุงในหน่วยความจำ WAL ให้แน่ใจว่าเครื่องยนต์ DB สามารถอ่านบันทึกธุรกรรมและย้อนกลับการทำธุรกรรม นี่เป็นคุณสมบัติ ACID ของ RDBMS
เมื่อ CHECKPOINT เกิดขึ้น (หลังจากเวลาผ่านไปและ / หรือธุรกรรมบางอย่างและเกณฑ์อื่น ๆ ) ธุรกรรมระหว่าง CHECKPOINT ที่ผ่านมาและปัจจุบันจะถูกเขียนไปยังดิสก์
ด่านตรวจวูบหน้าสกปรกจากบัฟเฟอร์ไปยังดิสก์ มันจะทำงานเล็ก ๆ น้อย ๆ ที่แตกต่างกันสำหรับ tempdb หน้าสกปรกเป็นหน้าที่มีการเปลี่ยนแปลงนับตั้งแต่ถูกอ่านจากดิสก์ กระบวนการจุดตรวจสอบนี้สร้างเครื่องหมายในการทำธุรกรรมบันทึกจนถึงจุดที่มีการทำธุรกรรม หลังจากความล้มเหลวการกู้คืนรู้ว่าการทำธุรกรรมทั้งหมดถึงเครื่องหมายที่ได้กระทำ คุณสามารถออกด่านด้วยตนเองได้ด้วยคำสั่ง TSQL
เมื่อบันทึกการสำรองข้อมูลเกิดขึ้นข้อมูลจะถูกเขียนไปยังไฟล์ MDF
ไม่เมื่อบันทึกการสำรองข้อมูลเกิดขึ้น SQL Server จะคัดลอกข้อมูลบันทึกธุรกรรมจากไฟล์บันทึกฐานข้อมูลไปยังดิสก์ที่คุณทำการสำรองข้อมูล การดำเนินการสำรองข้อมูลอ่านข้อมูลจากดิสก์และเขียนข้อมูลบนดิสก์
ฉันต้องการให้คุณอ่านลิงค์ด้านล่าง
ทำความเข้าใจเกี่ยวกับการบันทึกและการกู้คืนใน SQL Server ที่ชี้โดย Mark แล้ว
SQL Server 2008 Internals และการแก้ไขปัญหาหนังสือ
สถาปัตยกรรมบันทึกธุรกรรมและการจัดการ