Recovery Model อลเวง ตอนที่ 1

Recovery Model อลเวง ตอนที่ 1
ผู้เขียนเคยรู้สึกแปลกใจมากครั้งหนึ่ง เมื่อถูกว่าจ้างไปทำ Performance Tuning ให้กับฐานข้อมูล Microsoft SQL Server ในลักษณะ “on the job training” หรือ “ทำไปสอนไป” ให้กับบริษัทชั้นนำด้าน Consumer Product แห่งหนึ่งเมื่อ 10 กว่าปีมาแล้ว สิ่งที่ผู้เขียนเจอก็คือขนาดของไฟล์ข้อมูลมีขนาดเพียง 2 GB แต่ขนาดของไฟล์ Log มีขนาดถึง 10 GB
ผู้อ่านลองนึกถึงขนาดความจุขนาดนี้ย้อนหลังไป 10 กว่าปีที่แล้วนะครับว่ามันเยอะขนาดไหน เรื่องขนาดไม่ใช่เรื่องสำคัญ แต่สิ่งที่สำคัญสำหรับเรื่องนี้คือการเลือกใช้ Recovery Model ที่เหมาะสมและกระบวนการการทำงานที่ต้องเหมาะสมกับ Recovery Model ที่เลือกใช้ต่างหาก
สำหรับลูกค้ารายนี้กลุ่มผู้ดูแลฐานข้อมูล (DBA) ได้รับการฝึกอบรมจากศูนย์ฝึกอบรมที่ได้รับการรับรองจาก Microsoft โดยตรง แบบเรียนที่ใช้ก็เป็นของ Microsoft โดยตรงเช่นกัน ซึ่งผู้เขียนฟันธง 100% ว่ามีการเน้นรายละเอียดในส่วนนี้อยู่ชัดเจนมาก
แต่เมื่อผู้เขียนลองถามทบทวนความเข้าใจกับกลุ่มผู้ดูแลฐานข้อมูล 3-4 คำถาม ผู้เขียนจึงพูดคุยสอบถามเพื่อปรับความรู้ความเข้าใจใหม่ถึง Recovery Model ให้ถูกต้อง ซึ่งการพูดคุยในครั้งนั้น ผู้เขียนเห็นว่าเป็นประโยชน์จึงอยากถ่ายทอดเรื่องราวให้อ่านกัน ลองมาดูคำถามคำตอบกันครับ
คำถามที่ 1 ทำไมถึงเลือกใช้ Full Recovery Model แทน Simple Recovery Model ครับ ?
เหตุที่ผู้เขียนถามออกไปแบบนี้เพราะอาการที่ไฟล์ Log มีขนาดใหญ่กว่าไฟล์ข้อมูลมากๆ มีเพียงสาเหตุเดียวคือ มีการเปลี่ยน Recovery Model จากค่าตั้งต้นคือ Simple Recovery Model (สมัย Microsoft SQL Server 2000) ไปเป็น Full Recovery Model แล้วไม่มีการเรียกใช้การแบ็คอัพแบบ Transaction Log Backup ขึ้นมาใช้งาน ทำให้ไฟล์ Log ไม่ถูก Truncate หรือไม่ถูกทำให้มันสั้นลง ไฟล์ Log จึงมีขนาดโตขึ้นไปเรื่อยๆ จนมีขนาดใหญ่กว่าไฟล์ข้อมูล
คำตอบที่ 1 “จริงๆ แล้วก่อนหน้านี้ก็เลือกใช้ Simple Recovery Model มาหลายเดือน แล้วได้ไปอ่านเจอว่า Simple Recovery Model ควรใช้ในขณะกำลังพัฒนาฐานข้อมูลอยู่หรือเมื่ออยู่ในช่วงทดสอบก่อนใช้งานจริงเท่านั้น แต่ Full Recovery Model ควรกำหนดให้กับฐานข้อมูลที่ใช้งานจริงๆ บน Production Server หรือเซิร์ฟเวอร์ที่ใช้งานจริง จึงได้ตัดสินใจเปลี่ยนมาใช้ Full Recovery Model”
ถูกต้องตามที่ลูกค้าเข้าใจครับ ว่าควรใช้ Full Recovery Model บน Production Server ซึ่งผมอยากจะขยายความเพิ่มเติมถึงความแตกต่างของ Simple Recovery Model กับ Full Recovery Model (อันที่จริงแล้วยังมี Bulk-Logged Recovery Model อีก แต่คงไม่ได้กล่าวถึงในบทความนี้) ยังไงติดตามอ่านต่อได้ใน Recovery Model อลเวง ตอนที่ 2 ครับ
หลักสูตรที่เกี่ยวข้อง
https://www.9experttraining.com/sql-server-database-administration-training-course
บทความโดย
อาจารย์ภัคพงศ์ กฤตวัฒน์
วิทยากรดูแลและออกแบบหลักสูตร
กลุ่มวิชา SQL Server/Window Server