หลังจากที่ได้ทำความเข้าใจความสัมพันธ์ ของ Recovery Model และการ Backup แล้ว บทความตอนที่ 2 จะกล่าวถึงสองส่วนที่สำคัญ ได้แก่
Virtual Log Files (VLF) เมื่อเราสร้างไฟล์ Transaction Log ที่มี Extension เป็น .LDF นั้นในที่นี้จะเรียกว่า Physical Log File โดยจะถูกแบ่งเป็นส่วนย่อยๆ เรียกว่า Virtual Log Files เพื่อเป็นการแบ่งเขตแดนว่าในส่วน VLF ใดเป็นส่วนที่ Active และส่วนใดเป็น Non-Active
Log Sequence Number (LSN) คือหมายเลขระบุ Transaction Log ซึ่งจะมีลักษณะเรียงลำดับกันไป
เริ่มจากในส่วนของ VLF ก่อนก็แล้วกัน ผู้เขียนขอตั้งกรณีศึกษาขึ้นมาว่า มีการสร้าง Physical Log File (ไฟล์ .LDF) ให้มีขนาดคงที่ค่าหนึ่ง หมายความว่าไฟล์ดังกล่าวจะต้องไม่มีคุณสมบัติ Autogrowth หรือ เพิ่มขนาดไฟล์เองอัตโนมัตินั่นเอง (ซึ่งผู้เขียนมักแนะนำให้ผู้เข้าฝึกอบรมตั้งค่าให้มีคุณสมบัติเช่นนี้ เพราะควบคุมได้ง่ายกว่า)
ผู้อ่านอาจตั้งคำถามว่าถ้าไม่ตั้งให้มีคุณสมบัติ Autogrowth แล้ว หากบันทึกจนเต็มขนาดที่ตั้งไว้จะเกิดอะไรขึ้น ไฟล์ Transaction Log นั่นใช้บันทึก Transaction ซึ่งหมายถึง ชุดคำสั่งที่มี activity ในการ Insert, Update หรือ Delete ข้อมูล Activity เหล่านี้จะบันทึกลงในไฟล์ Transaction Log และหากบันทึกลงไม่ได้ ก็หมายถึงเราไม่สามารถทำ Explicit Transaction และ Implicit Transaction ได้
พูดง่ายๆ ก็คือ เราจะไม่สามารถ Insert, Update และ Delete ข้อมูลได้ในฐานข้อมูลนี้ นั่นเองครับ จะทำได้เพียง Select ข้อมูลออกไปดูได้เท่านั้น
ผู้อ่านสามารถดูว่าไฟล์ Transaction Log ของผู้อ่านแยกย่อยเป็น VLF อย่างไรได้โดยใช้คำสั่ง DBCC LOGINFO ในขณะอยู่ในฐานข้อมูลที่ต้องการตรวจสอบ คอลัมน์ Field มีค่าเป็น 2 ทั้งหมดแสดงว่าฐานข้อมูล TestTLOG นี้มี Physical Log File (ไฟล์ .LDF) เพียงไฟล์เดียว
ส่วนในคอลัมน์ Status หากมีค่าเป็น 0 นั่นหมายถึง VLF นั้นสามารถนำกลับไปบันทึกข้อมูล Transaction ได้ใหม่ หรือเป็น VLF ที่ยังไม่ได้ถูกใช้ หากมีค่าเป็น 2 แสดงว่าเป็น VLF ที่ยัง active อยู่
การบันทึก Transaction จะยังคงบันทึกและใช้งาน VLFs ต่อไปจนกว่าจะ End of File และเมื่อถึง End of File แล้วจะเวียนกลับมาใช้พื้นที่ใน Begin of File ในลักษณะคิววงกลม
ผู้อ่านจะบันทึกข้อมูล Transaction ลงไปในส่วนที่เวียนกลับมาได้อย่างถูกต้อง ก็ต่อเมื่อได้ทำการ Truncate กับ VLFs เหล่านั้นอย่างเหมาะสมและปลอดภัยเท่านั้น
จากบทความนี้จะทำให้ทุกท่านรู้จักกับการทำงานของ Virtual Log Files (VLF) และ Log Sequence Number (LSN) ว่าการทำงานในระดับไฟล์นั้นทำงานอย่างไร และการ Backup Transaction Log จะส่งผลต่อไฟล์ที่เป็น Non-Active และ Active อย่างไร
ติดตามบทความสุดท้าย ซึ่งจะพาทุกท่านมาเรียนรู้ การ Truncate Log และการตั้งค่า Recovery ให้กับ Microsoft SQL Server พร้อมทั้งบทสรุปการทำงานกับ Transaction Log ใน Transaction Log Management ตอนที่ 3




