หมายเลขบทความ (Article ID): 873235 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

บทนำ

บทความนี้อธิบายถึงขั้นตอนที่คุณต้องปฏิบัติตามเมื่อบันทึกธุรกรรมมีขนาดใหญ่มากเกินไป บันทึกธุรกรรมเต็มอาจทำให้ฐานข้อมูล Microsoft SQL Server ของคุณไม่สามารถใช้งานได้ บทความนี้อธิบายถึงวิธีการในการตัดทอนและลดขนาดบันทึกธุรกรรม และวิธีการป้องกันบันทึกธุรกรรมไม่ให้ขยายโดยไม่คาดคิด

ข้อมูลเพิ่มเติม

ลดขนาดบันทึกธุรกรรม

ในการกู้คืนจากสถานการณ์ที่บันทึกธุรกรรมเต็ม คุณต้องลดขนาดของบันทึกธุรกรรม ในการดำเนินการนี้ คุณต้องตัดทอนธุรกรรมที่ไม่ได้ใช้งานในบันทึกธุรกรรมของคุณและลดขนาดบันทึกธุรกรรม

หมายเหตุ บันทึกธุรกรรมมีความสำคัญมากต่อการรักษาความสมบูรณ์ทางธุรกรรมของฐานข้อมูล ดังนั้น คุณจะต้องลบแฟ้มบันทึกธุรกรรมตั้งแต่หลังจากที่คุณสำรองข้อมูลของฐานข้อมูลของคุณและบันทึกธุรกรรมแล้ว


หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการลดขนาดบันทึกธุรกรรม ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
การลดขนาดบันทึกธุรกรรมสำหรับ SQL Server 2000
การลดขนาดบันทึกธุรกรรมสำหรับ SQL Server 2005

ตัดทอนธุรกรรมที่ไม่ได้ใช้งานในบันทึกธุรกรรมของคุณ

เมื่อบันทึกธุรกรรมเต็ม คุณต้องสำรองข้อมูลแฟ้มบันทึกธุรกรรมของคุณทันที ในขณะที่มีการสำรองข้อมูลแฟ้มบันทึกธุรกรรมของคุณ SQL Server จะตัดทอนส่วนที่ไม่ได้ใช้งานของบันทึกธุรกรรมโดยอัตโนมัติ ส่วนที่ไม่ได้ใช้งานของแฟ้มบันทึกธุรกรรมจะเก็บธุรกรรมที่เสร็จสิ้นแล้ว ดังนั้น แฟ้มบันทึกธุรกรรมจึงไม่ถูกใช้โดย SQL Server อีกต่อไปในระหว่างกระบวนการการกู้คืน SQL Server จะนำพื้นที่ที่ถูกตัดทอนและไม่ได้ใช้งานนี้กลับมาใช้ใหม่ในบันทึกธุรกรรม แทนที่จะยอมให้บันทึกธุรกรรมนั้นขยายต่อไปและกินเนื้อที่เพิ่มมากขึ้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่คุณต้องพิจารณาเมื่อสำรองข้อมูลบันทึกธุรกรรมและปัญหาที่คุณต้องพิจารณาเมื่อคืนค่าการสำรองข้อมูลบันทึกธุรกรรม ให้ไปที่หัวข้อต่อไปนี้ใน SQL Server Books Online:
  • การสำรองข้อมูลบันทึกธุรกรรม
  • การสำรองข้อมูลบันทึกธุรกรรมและการคืนค่า
คุณยังสามารถลบธุรกรรมที่ไม่ได้ใช้งานจากแฟ้มบันทึกธุรกรรมโดยใช้วิธีการ ตัดทอน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตัดทอนบันทึกธุรกรรม อ่านหัวข้อ "การตัดทอนบันทึกธุรกรรม" ใน SQL Server Books Online

สิ่งสำคัญ หลังจากที่ตัดทอนแฟ้มบันทึกธุรกรรมด้วยตนเองแล้ว คุณจะต้องสร้างการสำรองข้อมูลฐานข้อมูลที่ครบถ้วนก่อนที่จะสร้างการสำรองข้อมูลบันทึกธุรกรรม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่อาจเกิดขึ้นเมื่อคุณตัดทอนแฟ้มบันทึกธุรกรรม คลิกที่หมายเลขบทความต่อไปนี้เพื่ออ่านบทความในฐานความรู้ของ Microsoft:
62866 เหตุผลที่บันทึกธุรกรรม SQL ไม่ถูกตัดทอน

ลดขนาดแฟ้มบันทึกธุรกรรม

การดำเนินการสำรองข้อมูลหรือวิธีการตัดทอนไม่ได้ทำให้ขนาดของแฟ้มบันทึกลดลง หากต้องการลดขนาดของแฟ้มบันทึกธุรกรรม คุณจะต้องทำให้ขนาดของแฟ้มบันทึกธุรกรรมเล็กลง ในการลดขนาดของแฟ้มบันทึกให้มีขนาดตามที่ขอและลบหน้าที่ไม่ใช้ออก คุณต้องใช้การดำเนินการ DBCC SHRINKFILE คำสั่ง DBCC SHRINKFILE Transact-SQL สามารถเพียงแค่ลดขนาดของส่วนที่ไม่ได้ใช้งานภายในแฟ้มบันทึก

หมายเหตุ คำสั่ง DBCC SHRINKFILE Transact-SQL ไม่สามารถตัดทอนบันทึกและลดขนาดเนื้อที่ที่ใช้แล้วภายในแฟ้มบันทึกได้ด้วยตัวเอง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลดขนาดแฟ้มบันทึก โปรดอ่านหัวข้อต่อไปนี้ใน SQL Server Books Online:
  • การลดขนาดแฟ้มบันทึก
  • DBCC SHRINKFILE
สำหรับข้อมูลเพิ่มเิติมเกี่ยวกับวิธีการลดขนาดแฟ้มบันทึกใน SQL Server 2000 คลิกที่หมายเลขบทความต่อไปนี้ เพื่ออ่านบทความในฐานความรู้ของ Microsoft:
272318 การลดขนาดแฟ้มบันทึกใน SQL Server 2000 ด้วย DBCC SHRINKFILE
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่อาจเกิดขึ้นเมื่อคุณลดขนาดแฟ้มบันทึกธุรกรรม คลิกที่หมายเลขบทความต่อไปนี้เพื่ออ่านบทความในฐานความรู้ของ Microsoft:
814574 PRB: ข้อความแสดงข้อผิดพลาด: "ไม่สามารถลดขนาดแฟ้มบันทึก ..." เกิดขึ้นเมื่อคุณลดขนาดแฟ้มบันทึกธุรกรรม (ซึ่งอาจจะเป็นภาษาอังกฤษ)
324432 PRB: คำสั่ง DBCC SHRINKFILE และ SHRINKDATABASE อาจไม่ได้ผลเนื่องจากข้อความถูกสร้างขึ้นอย่างกระจัดกระจาย, ntext หรือคอลัมน์รูป

ป้องกันแฟ้มบันทึกธุรกรรมไม่ให้ขยายโดยไม่คาดคิด

ในการป้องกันแฟ้มบันทึกธุรกรรมไม่ให้ขยายโดยไม่คาดคิด ให้พิจารณาใช้วิธีการใดวิธีการหนึ่งดังต่อไปนี้
  • ตั้งค่าขนาดของแฟ้มบันทึกธุรกรรมให้มีค่าขนาดใหญ่เพื่อหลีกเลี่ยงการขยายขนาดโดยอัตโนมัติของแฟ้มบันทึกธุรกรรม
  • กำหนดค่าการขยายขนาดอัตโนมัติของแฟ้มบันทึกธุรกรรมโดยใช้หน่วยของหน่วยความจำแทนที่จะใช้เปอร์เซ็นต์ หลังจากทีุ่คุณประเมินขนาดหน่วยความจำสูงสุดอย่างรอบคอบแล้ว

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่จะต้องพิจารณาเมื่อคุณกำหนดค่าตัวเลือกขยายอัตโนมัติ คลิกที่หมายเลขบทความดังต่อไปนี้เพื่ออ่านบทความในฐานความรู้ของ Microsoft
    315512 ข้อควรพิจารณาสำหรับการกำหนดค่าขยายอัตโนมัติและลดขนาดอัตโนมัติ
  • เปลี่ยนแปลงกู้คืนโมเดล หากเกิดความเสียหายหรือข้อมูลเสียหาย คุณต้องกู้คืนฐานข้อมูลของคุณ เพื่อรักษาไว้ซึ่งความสอดคล้องของข้อมูลและความสมบูรณ์ทางธุรกรรมของฐานข้อมูล คุณสามารถใช้หนึ่งในกู้คืนโมเดลต่อไปนี้ในการกำหนดวิธีการสำรองข้อมูลของคุณและความเสี่ยงต่อการสูญเสียข้อมูลของคุณ ทั้งนี้โดยพิจารณาจากความสำคัญของข้อมูลในฐานข้อมูลของคุณ:
    • กู้คืนโมเดลแบบง่าย
    • กู้คืนโมเดลแบบเต็ม
    • กู้คืนโมเดลแบบบันทึกจำนวนมาก
    เมื่อใช้กู้คืนโมเดลแบบง่าย คุณจะสามารถกู้คืนฐานข้อมูลของคุณไปยังการสำรองข้อมูลล่าสุดของฐานข้อมูลของคุณ เมื่อใช้กู้คืนโมเดลแบบเต็มหรือกู้คืนโมเดลแบบบันทึกจำนวนมาก คุณจะสามารถกู้คืนฐานข้อมูลของคุณไปยัง ณ จุดเมื่อเกิดความล้มเหลว โดยการคืนค่าฐานข้อมูลของคุณที่มีการสำรองข้อมูลแฟ้มบันทึกธุรกรรม

    ตามค่าเริ่มต้น ใน SQL Server 2000 และใน SQL Server 2005 กู้คืนโมเดลสำหรับฐานข้อมูล SQL Server จะถูกตั้งค่าเป็นกู้คืนโมเดลแบบเต็ม เมื่อใช้กู้คืนโมเดลแบบเต็ม จะมีการสำรองข้อมูลของบันทึกธุรกรรมเป็นประจำเพื่อป้องกันขนาดแฟ้มบันทึกธุรกรรมขยายผิดสัดส่วนกับขนาดของฐานข้อมูล อย่างไรก็ตาม หากไม่มีการสำรองข้อมูลของบันทึกธุรกรรมเป็นประจำ แ้ฟ้มบันทึกธุรกรรมก็จะขยายจนเต็มดิสก์ และคุณอาจไม่สามารถดำเนินการแก้ไขข้อมูลใดๆ ได้บนฐานข้อมูล SQL Server

    คุณสามารถเปลี่ยนแปลงกู้คืนโมเดลจากแบบเต็มเป็นแบบง่ายได้ หากคุณไม่ต้องการใช้แฟ้มบันทึกธุรกรรมในระหว่างการดำเนินการกู้คืนความเสียหาย
  • สำรองข้อมูลแฟ้มบันทึกธุรกรรมเป็นประจำเพื่อลบธุรกรรมที่ไม่ได้ใช้งานในบันทึกธุรกรรมของคุณออก
  • ออกแบบธุรกรรมให้มีขนาดเล็ก
  • ตรวจสอบว่าไม่มีธุรกรรมใดที่ยังไม่ไ้ด้รับการยอมรับทำงานอยู่โดยไม่จำกัดเวลา
  • กำหนดเวลาให้ตัวเลือก อัพเดตสถิติ ดำเนินการทุกวัน
  • ในการจัดเรียงข้อมูลดัชนีเพื่อให้เป็นประโยชน์ต่อประสิทธิภาพของปริมาณงานในสภาพแวดล้อมสำหรับการผลิตของคุณ ให้ใช้คำสั่ง DBCC INDEXDEFRAG Transact-SQL แทนที่จะใช้คำสั่ง DBCC DBREINDEX Transact-SQL หากคุณเรียกใช้คำสั่ง DBCC DBREINDEX บันทึกธุรกรรมอาจขยายอย่างมากเมื่อฐานข้อมูล SQL Server ของคุณอยู่ในโหมดกู้คืนโมเดลแบบเต็ม นอกจากนี้ คำสั่ง DBCC INDEXDEGRAG ยังไม่เก็บบันทึกข้อมูลไว้เป็นเวลานาน ซึ่งต่างจากคำสั่ง DBCC DBREINDEX

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดเรียงข้อมูลดัชนีใน SQL Server 2000 อ่านในเว็บไซต์ของ Microsoft ต่อไปนี้: หากคุณต้องเรียกใช้คำสั่ง DBCC DBREINDEX ในฐานะที่เป็นงานซึ่งเป็นส่วนหนึ่งของแผนการบำรุงรักษาฐานข้อมูล คุณต้องแยกย่อยงานให้เป็นหลายๆ ชิ้นงาน นอกจากนี้ คุณต้องทำการสำรองข้อมูลบ่อยๆ สำหรับบันทึกธุรกรรมระหว่างทำงานต่างๆ

ข้อมูลเพิ่มเติมเกี่ยวกับแฟ้มบันทึกธุรกรรม

ใน SQL Server 2000 และใน SQL Server 2005 แต่ละฐานข้อมูลจะมีอย่างน้อยหนึ่งแฟ้มข้อมูลและหนึ่งแฟ้มบันทึกธุรกรรม SQL Server ทำหน้าที่จัดเก็บข้อมูลทางกายภาพในแฟ้มข้อมูล แฟ้มบันทึกธุรกรรมทำหน้าที่จัดเก็บรายละเอียดของการแก้ไขทั้งหมดที่คุณดำเนินการบนฐานข้อมูล SQL Server ของคุณ และรายละเอียดของธุรกรรมที่ทำแต่ละการแก้ไข เนื่องจากความสมบูรณ์ทางธุรกรรมได้รับการพิจารณาว่าเป็นลักษณะพื้นฐานและลักษณะภายในของ SQL Server ดังนั้น การบันทึกรายละเอียดของธุรกรรมจึงไม่สามารถปิดได้ใน SQL Server

แฟ้มบันทึกธุรกรรมถูกแบ่งตามเชิงตรรกะออกเป็นเซ็กเมนต์เล็กๆ ที่ถูกอ้างอิงถึงว่าเป็นแฟ้มบันทึกเสมือน ใน SQL Server 2000 คุณสามารถกำหนดค่าแฟ้มบันทึกธุรกรรมให้ขยายได้ตามต้องการ การขยายบันทึกธุรกรรมสามารถควบคุมโดยผู้ใช้หรือสามารถกำหนดค่าให้ใช้งานเนื้อที่บนดิสก์ที่มีอยู่ทั้งหมด การแก้ไขใดๆ ที่ SQL Server ทำต่อขนาดของแฟ้มบันทึกธุรกรรม เช่น การตัดทอนแฟ้มบันทึกธุรกรรมหรือการขยายแฟ้มบันทึกธุรกรรม จะถูกดำเนินการในหน่วยต่างๆ ของแฟ้มบันทึกเสมือน

หากมีการเติมแฟ้มบันทึกธุรกรรมที่สอดคล้องกับฐานข้อมูลของ SQL Server และหากคุณตั้งค่าตัวเลือกสำหรับแฟ้มบันทึกธุรกรรมให้ขยายได้โดยอัตโนมัติ แฟ้มบันทึกธุรกรรมจะขยายอยู่ในหน่วยแฟ้มบันทึกเสมือน ในบางครั้ง แฟ้มบันทึกธุรกรรมอาจมีขนาดใหญ่มากและเนื้อที่ดิสก์อาจหมด เมื่อแฟ้มบันทึกธุรกรรมขยายจนกระทั่งแฟ้มบันทึกใช้เนื้อที่บนดิสก์ีที่มีทั้งหมดและไม่สามารถขยายได้อีกต่อไป คุณจะไม่สามารถดำเนินการแก้ไขข้อมูลได้บนฐานข้อมูลของคุณ นอกจากนี้ SQL Server ยังอาจทำเครื่องหมายระุบุว่า ฐานข้อมูลของคุณน่าสงสัย เนื่องจากขาดเนื้อที่ในการขยายบันทึกธุรกรรม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสถานการณ์ที่อาจทำให้แฟ้มบันทึกธุรกรรมขยายโดยไม่คาดคิด คลิกที่หมายเลขบทความต่อไปนี้เพื่ออ่านบทความในฐานความรู้ของ Microsoft:
317375 บันทึกธุรกรรมขยายโดยไม่คาดคิดหรือเต็มบน SQL Server

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ปัญหาความต้องการเนื้อที่บนดิสก์เพิ่มเติมในระหว่างกระบวนการกู้คืน โปรดอ่านหัวข้อ "เนื้อที่บนดิสก์ไม่เพียงพอ" ใน SQL Server Books Online สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมแฟ้มบันทึกธุรกรรม โปรดอ่านหัวข้อต่อไปนี้ใน SQL Server Books Online:
  • สถาปัตยกรรมบันทึกธุรกรรม
  • สถาปัตยกรรมเชิงตรรกะของบันทึกธุรกรรม
  • สถาปัตยกรรมทางกายภาพของบันทึกธุรกรรม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกู้คืนโมเดลใน SQL Server 2000 อ่านหัวข้อดังต่อไปนี้ใน SQL Server Books Online:
  • การเลือกกู้คืนโมเดล
  • การกู้คืนแบบง่าย
  • การกู้คืนแบบเต็ม
  • การกู้คืนแบบบันทึกจำนวนมาก
  • การเปลี่ยนกู้คืนโมเดล

คุณสมบัติ

หมายเลขบทความ (Article ID): 873235 - รีวิวครั้งสุดท้าย: 29 กุมภาพันธ์ 2555 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Keywords: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com