Microsoft แจกจ่ายการแก้ไข Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) หรือ Microsoft SQL Server 2008 หรือ Microsoft SQL Server 2012 ในไฟล์ที่สามารถดาวน์โหลดได้ไฟล์เดียว เนื่องจากการแก้ไขเป็นแบบสะสม การเผยแพร่ใหม่แต่ละครั้งจะมีโปรแกรมแก้ไขด่วนทั้งหมดและการอัปเดตความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การอัปเดต SQL Server 2008 R2 Service Pack 1 (SP1) หรือ SQL Server 2008 หรือ Microsoft SQL Server 2012
อาการ
อาจใช้เวลานานในการคืนค่าฐานข้อมูลใน Microsoft SQL Server 2008 R2 หรือใน Microsoft SQL Server 2008 หรือใน Microsoft SQL Server 2012
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากใช้เวลานานในการสร้างรายการแฟ้มบันทึกเสมือน (VLF) เมื่อมี VLF จํานวนมากในฐานข้อมูล
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
SQL Server 2012
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 1 สําหรับ SQL Server 2012 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงแบบสะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2679368 แพคเกจการอัปเดตสะสม 1 สําหรับ SQL Server 2012Note เนื่องจากรุ่นเป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2012 ก่อนหน้า Microsoft ขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2692828 SQL Server รุ่น 2012 ที่เผยแพร่หลังจากการเผยแพร่ SQL Server 2012 คุณต้องใช้โปรแกรมแก้ไขด่วน SQL Server 2012 การติดตั้ง SQL Server 2012
SQL Server 2008 Service Pack 2
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 8 สําหรับ SQL Server 2008 Service Pack 2 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงแบบสะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2648096 แพคเกจการอัปเดตสะสม 8 สําหรับ SQL Server 2008 Service Pack 2Note เนื่องจากรุ่นต่างๆ เป็นแบบสะสม การเผยแพร่การแก้ไขใหม่แต่ละครั้งจะมีการแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2008 ก่อนหน้า Microsoft ขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2402659 SQL Server รุ่น 2008 ที่เผยแพร่หลังจากการเผยแพร่ SQL Server 2008 Service Pack 2 มีการสร้างการแก้ไขด่วนของ Microsoft SQL Server 2008 สําหรับ service pack SQL Server เฉพาะ คุณต้องใช้ hotfix SQL Server 2008 Service Pack 2 กับการติดตั้ง SQL Server 2008 Service Pack 2 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใดๆ ที่มีอยู่ใน SQL Server Service Pack จะรวมอยู่ใน SQL Server Service Pack ถัดไป
SQL Server 2008 Service Pack 3
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 3 สําหรับ SQL Server 2008 Service Pack 3 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงแบบสะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2648098 แพคเกจการอัปเดตสะสม 3 สําหรับ SQL Server 2008 Service Pack 3Note เนื่องจากรุ่นต่างๆ เป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่จะมีการแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2008 ก่อนหน้า Microsoft ขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2629969 SQL Server รุ่น 2008 ที่เผยแพร่หลังจาก SQL Server 2008 Service Pack 3 มีการเผยแพร่การแก้ไขด่วนของ Microsoft SQL Server 2008 ถูกสร้างขึ้นสําหรับ service pack SQL Server เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วน SQL Server 2008 Service Pack 3 กับการติดตั้ง SQL Server 2008 Service Pack 3 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใดๆ ที่มีอยู่ใน SQL Server Service Pack จะรวมอยู่ใน SQL Server Service Pack ถัดไป
แพคเกจการอัปเดตสะสม 11 สําหรับ SQL Server 2008 R2
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 11 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2008 R2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2633145 แพคเกจการอัปเดตสะสม 11 สําหรับ SQL Server 2008 R2Note เนื่องจากรุ่นเป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข 2008 R2 SQL Server ก่อนหน้านี้ เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
981356 รุ่น SQL Server 2008 R2 ที่เผยแพร่หลังจากเผยแพร่ SQL Server 2008 R2
แพคเกจการอัปเดตสะสม 4 สําหรับ SQL Server 2008 R2 SP1
การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 4 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2008 R2 SP1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2633146 แพคเกจการอัปเดตสะสม 4 สําหรับ SQL Server 2008 R2 SP1Note เนื่องจากรุ่นต่างๆ เป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่จะมีการแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2008 R2 SP1 ก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
2567616 รุ่น SQL Server 2008 R2 ที่เผยแพร่หลังจากเปิดตัว SQL Server 2008 R2 SP1
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
คุณสามารถตรวจสอบจํานวนของส่วน VLF โดยการตรวจสอบแฟ้มบันทึกข้อผิดพลาด SQL แล้ว โดยการค้นหาหมายเลขลําดับล็อก (LSN) ในแต่ละแฟ้มสํารองข้อมูลบันทึกธุรกรรม ตัวเลขแรกก่อนสัญลักษณ์เครื่องหมายจุดคู่ใน LSN จะสอดคล้องกับจํานวนของ LSNตัวอย่างเช่น ตัวเลขแรกในข้อความให้ข้อมูลข้อความแรกสําหรับ LSN คือ 1 อย่างไรก็ตาม ตัวเลขแรกในข้อความแสดงข้อมูลที่สองสําหรับ LSN จะถูก 100001 ในสถานการณ์นี้ มี VLF 100,000 ที่ใช้ระหว่างเวลาของข้อความให้ข้อมูลข้อความแรกและข้อความที่สองที่ให้ข้อมูล ดังนั้น บันทึกทรานแซคชันแบบแยกส่วนที่บันทึกไว้ที่มี Files Virtual Log (VLF) จํานวนมากมีลักษณะดังต่อไปนี้:
{Log ถูกสํารองไว้ ฐานข้อมูล: mydbname วันที่สร้าง(เวลา): 2010/07/08(12:36:46), LSN แรก: 1:5068:70, LSN ล่าสุด: 1:5108:1, จํานวนอุปกรณ์การถ่ายโอนข้อมูล: 1, ข้อมูลอุปกรณ์: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}) นี่คือข้อความให้ข้อมูลเท่านั้น ไม่จําเป็นต้องดําเนินการใดๆ ของผู้ใช้มีการสํารองข้อมูลแฟ้มบันทึกแล้ว ฐานข้อมูล: mydbname, วันที่สร้าง(เวลา): 2010/07/08(15:36:46), LSN แรก: 100001:5108:1, LSN ล่าสุด: 100002:5108:1, จํานวนอุปกรณ์การถ่ายโอนข้อมูล: 1, ข้อมูลอุปกรณ์: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}) นี่คือข้อความให้ข้อมูลเท่านั้น ไม่จําเป็นต้องดําเนินการใดๆ ของผู้ใช้}
อ้างอิง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับหมายเลขลําดับแฟ้มบันทึก (LSN) แวะไปที่เว็บไซต์ต่อไปนี้ของ MSDN:
ข้อมูลทั่วไปเกี่ยวกับหมายเลขลําดับล็อก
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่โครงสร้างไฟล์บันทึกสามารถส่งผลกระทบต่อเวลาการกู้คืนฐานข้อมูล แวะไปที่เว็บไซต์ MSDN ต่อไปนี้:
โครงสร้างไฟล์บันทึกอาจส่งผลต่อเวลา ในการกู้คืนฐานข้อมูลอย่างไรสําหรับข้อมูลเพิ่มเติมเกี่ยวกับบันทึกทรานแซคชัน VLFs แวะไปที่เว็บไซต์ต่อไปนี้ของ MSDN:
วิธีแก้ไขปัญหาชั่วคราว
-
รอให้การดําเนินการคืนค่าหรือการกู้คืนเสร็จสมบูรณ์ถ้าคุณมีฐานข้อมูลที่ไม่สามารถกู้คืนได้ซึ่งกําลังประสบกับประสิทธิภาพการทํางานที่ช้าลงเมื่อคุณคืนค่าหรือกู้คืนฐานข้อมูล คุณอาจต้องรอให้การดําเนินการคืนค่าหรือการกู้คืนเสร็จสมบูรณ์ ตัวอย่างเช่น คุณอาจเห็นสถานะออฟไลน์หรือสถานะการกู้คืนใน SQL Server Management Studio (SSMS) สําหรับฐานข้อมูลที่ไม่สามารถกู้คืนได้ การหยุด SQL Server มักจะไม่ช่วยบรรเทาการกู้คืนที่ช้าและอาจใช้เวลามากขึ้นในการทําซ้ําขั้นตอนการวิเคราะห์การกู้คืนระยะทําซ้ําหรือเลิกทําขั้นตอนเดียวกัน
-
หลีกเลี่ยงการคืนค่าลําดับบันทึกทรานแซคชันที่มี VLF หลายพันรายการ ถ้าคุณพบประสิทธิภาพการทํางานที่ช้าในขณะที่คุณคืนค่าและกู้คืนฐานข้อมูลโดยใช้ไฟล์สํารอง คุณสามารถหลีกเลี่ยงการคืนค่าลําดับบันทึกทรานแซคชันที่มี VLF หลายพันรายการ เมื่อต้องการระบุไฟล์สํารองที่มีบันทึกไฟล์บันทึกเสมือนมากที่สุด ให้ใช้คําสั่งต่อไปนี้เพื่อดูคอลัมน์ FirstLSN และ LastLSN ในไฟล์สํารองข้อมูลบันทึก: RESTORE HEADERONLY FROM DISK='C:\folder\file.trn'คุณสามารถตัดสินใจหลีกเลี่ยงการคืนค่าไฟล์สํารองข้อมูลบันทึกได้ หรือคุณสามารถใช้คําสั่ง STOP AT ในคําสั่ง RESTORE เพื่อหลีกเลี่ยงส่วนที่กระจัดกระจายของบันทึกธุรกรรม ถ้าคุณไม่คืนค่าลําดับแฟ้มบันทึกทั้งหมดจนถึงจุดล่าสุดในระหว่างสถานการณ์การกู้คืนล้มเหลว ข้อมูลสูญหายเกิดขึ้นในฐานข้อมูลของคุณ SQL Server การสูญหายของข้อมูลนี้เกิดขึ้นเนื่องจากไม่ได้เก็บธุรกรรมทั้งหมดไว้ ดังนั้นจึงมีการตัดสินใจแลกเปลี่ยนทางธุรกิจ คุณสามารถคืนค่าบันทึกทรานแซคชันที่กระจัดกระจายสูงได้อย่างสมบูรณ์ อย่างไรก็ตาม การดําเนินการนี้อาจใช้เวลาหลายชั่วโมง หรือคุณสามารถใช้คําสั่ง STOP AT ในการกู้คืนเพื่อหยุดการกู้คืนก่อนที่ส่วนที่กระจัดกระจายอย่างมากของบันทึก อย่างไรก็ตาม ธุรกรรมใดๆ ที่หายไปที่คุณละไว้จะสูญหายไปหมายเหตุ โดยไม่ต้องติดตั้งโปรแกรมแก้ไขด่วนนี้ โดยทั่วไปแล้วจะไม่มีแหล่งข้อมูลที่ปลอดภัยสําหรับการกู้คืนด่วนหลังจากที่คุณเริ่มระบบ SQL Server ใหม่ SQL Server ต้องค้นหารายการของ VLFs เพื่อวิเคราะห์ไฟล์บันทึก เพื่อทําซ้ําทรานแซคชันที่เสร็จสมบูรณ์ แล้วเลิกทําทรานแซคชันที่ไม่สมบูรณ์เพื่อให้การกู้คืนฐานข้อมูลเป็นแบบออนไลน์ได้อย่างปลอดภัย คุณไม่สามารถข้ามทรานชันระหว่างการกู้คืนได้อย่างปลอดภัย