หมายเหตุ
หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องเปิดใช้งานการตั้งค่าสถานะการติดตาม 1800 เป็นพารามิเตอร์เริ่มต้นบนเซิร์ฟเวอร์หรือแบบจําลองทั้งหมดที่มีขนาดเซกเตอร์ทางกายภาพ 512 ไบต์ และเริ่มระบบใหม่ เพื่อให้โปรแกรมแก้ไขด่วนนี้ทํางานได้อย่างถูกต้อง
อาการ
ลองทำตามสถานการณ์ต่อไปนี้:
คุณเปิดใช้งานฟีเจอร์กลุ่มให้บริการ AlwaysOn หรือ Logshipping ใน Microsoft SQL Server
ดิสก์ที่จัดเก็บไฟล์บันทึกของแบบจําลองหลักและรองใน AlwaysOn Availability Group (AG) มีขนาดเซกเตอร์ที่แตกต่างกัน หรือในสภาพแวดล้อม Logshipping ดิสก์ที่เก็บไฟล์บันทึกสําหรับเซิร์ฟเวอร์หลัก Logshipping และเซิร์ฟเวอร์รองของ Logshipping จะมีขนาดเซกเตอร์ที่แตกต่างกัน ตัวอย่างเช่น
- ไฟล์บันทึกแบบจําลองหลักจะอยู่บนดิสก์ที่มีขนาดเซกเตอร์ 512 ไบต์ อย่างไรก็ตาม ไฟล์บันทึกแบบจําลองรองจะอยู่บนดิสก์ที่มีขนาดเซกเตอร์ 4 กิโลไบต์ (KB)
- ไฟล์บันทึกแบบจําลองหลักจะอยู่บนระบบภายในองค์กรที่มีขนาดเซกเตอร์ 512 ไบต์ อย่างไรก็ตาม แบบจําลองรองจะอยู่บนดิสก์ที่เก็บข้อมูล Windows Azure ที่มีขนาดเซกเตอร์ 4 กิโลไบต์ (KB)
ในสถานการณ์นี้ ข้อความแสดงข้อผิดพลาดต่อไปนี้ถูกบันทึกไว้ในบันทึกข้อผิดพลาดของ SQL Server ข้อความแสดงข้อผิดพลาดอาจยังคงมีต่อไปครู่หนึ่งหลังจากเริ่มระบบใหม่ หากมีบันทึกที่ไม่ได้นําไปใช้กับรายการรองก่อนที่จะเริ่มระบบของเซิร์ฟเวอร์ใหม่
หมายเหตุ
มี IO บันทึกที่จัดเรียงผิดพลาด X รายการซึ่งจําเป็นต้องย้อนกลับไปยัง IO แบบซิงโครนัส IO ปัจจุบันอยู่ในไฟล์ ....
นอกจากนี้ การซิงโครไนซ์ AG หรือ Logshipping จะทํางานช้ามากเนื่องจาก I/O แบบซิงโครนัส หากแบบจําลองรองอยู่ในที่เก็บข้อมูล Windows Azure จะใช้เวลานานกว่าที่คาดไว้ในกระบวนการซิงโครไนซ์ให้เสร็จสิ้น
หมายเหตุ ปัญหานี้เกิดขึ้นเมื่อคุณใช้ทั้งไดรฟ์ใหม่ที่มีขนาดเซกเตอร์ 4 KB และไดรฟ์เก่าที่มีขนาดเซกเตอร์ 512 ไบต์ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับไดรฟ์ใหม่ ให้ดู SQL Server - ไดรฟ์ใหม่ ใช้ขนาดเซกเตอร์ 4K และ SQL Server–พื้นที่จัดเก็บ/VHDx และขนาดเซกเตอร์ 4K
การแก้ปัญหา
ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้
การอัปเดตสะสม 5 สําหรับ SQL Server 2014 /en-us/help/3011055
การอัปเดตสะสม 3 สําหรับ SQL Server 2012 SP2 /en-us/help/3002049
การอัปเดตสะสม 13 สําหรับ SQL Server 2012 SP1 /en-us/help/3002044
หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนและเปิดใช้งานค่าสถานะการติดตาม 1800 เป็นพารามิเตอร์เริ่มต้นบนแบบจําลองเซิร์ฟเวอร์ทั้งหมดที่ทํางานบนดิสก์ที่มีขนาดเซกเตอร์ 512 ไบต์ คุณจะสังเกตเห็นว่าขนาดของไฟล์ต่อไปนี้เพิ่มขึ้นเล็กน้อย:
- ไฟล์บันทึกทรานแซคชัน
- การสํารองข้อมูลบันทึก
นอกจากนี้ คุณสังเกตเห็นว่ามีการบันทึกข้อความต่อไปนี้ในบันทึกข้อผิดพลาด SQL Server ของเซิร์ฟเวอร์หลัก:
หมายเหตุ
ส่วนท้ายของบันทึกสําหรับฐานข้อมูล '<ชื่อ>ฐานข้อมูล' กําลังถูกเขียนใหม่เพื่อให้ตรงกับขนาดเซกเตอร์ใหม่ที่ 4096 ไบต์
ข้อความนี้เป็นข้อความแจ้งข้อมูลที่สามารถละเว้นได้อย่างปลอดภัย
เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server
การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ดูการอัปเดตสะสมล่าสุดสําหรับ SQL Server:
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2014
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2012 SP2
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2012 SP1
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ ให้ย้ายไฟล์บันทึกทรานแซคชันที่ปลายทางไปยังไดรฟ์ที่มี การตั้งค่าไบต์ต่อเซกเตอร์ทางกายภาพ เป็น 512 ไบต์
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
แนวทางปฏิบัติคือ พยายามตรวจสอบให้แน่ใจว่าดิสก์ทั้งหมดบนแบบจําลองทั้งหมด (อย่างน้อยดิสก์ทั้งหมดที่โฮสต์ไฟล์บันทึก) มีขนาดเซกเตอร์เท่ากัน ในสภาพแวดล้อมแบบผสม ซึ่งส่วนรองมีเซกเตอร์ทางกายภาพ 512 ไบต์ และเซกเตอร์หลักมีขนาดเซกเตอร์ 4 KB ควรใช้ TF 1800 เป็นแฟล็กเริ่มต้นบนเซิร์ฟเวอร์หรือแบบจําลองทั้งหมดที่มีขนาดเซกเตอร์ทางกายภาพ 512 ไบต์และเริ่มระบบใหม่ ซึ่งทําให้มั่นใจว่ารูปแบบการสร้างบันทึกที่กําลังดําเนินอยู่จะใช้ขนาดเซกเตอร์ 4 KB
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ SQL Server ทํางานกับเซกเตอร์ขนาดใหญ่ โปรดดูโพสต์ต่อไปนี้ในบล็อกการสนับสนุน:
SQL Server–พื้นที่จัดเก็บ/VHDx และขนาดเซกเตอร์ 4K
คุณสามารถใช้โปรแกรมอรรถประโยชน์พร้อมท์คําสั่ง Fsutil เพื่อกําหนดไบต์ต่อค่าเซกเตอร์ทางกายภาพ หากพารามิเตอร์นี้ไม่สามารถมองเห็นได้ในผลลัพธ์ คุณต้องใช้โปรแกรมแก้ไขด่วนที่ระบุไว้ในบทความ KB 982018
เมื่อต้องการตรวจสอบชนิดของไดรฟ์ที่คุณมี ให้ทําตามขั้นตอนเหล่านี้:
เรียกใช้คําสั่งต่อไปนี้ที่พร้อมท์คําสั่งด้วยสิทธิ์ผู้ดูแล:
Fsutil fsinfo ntfsinfo x: หมายเหตุ พื้นที่ที่สํารองไว้ x แสดงถึงไดรฟ์ที่คุณกําลังตรวจสอบใช้ค่าสําหรับไบต์ต่อเซกเตอร์และไบต์ต่อฟิสิคเซกเตอร์เพื่อกําหนดชนิดของไดรฟ์ที่คุณมี เมื่อต้องการทําสิ่งนี้ ให้ใช้ตารางต่อไปนี้:
ค่า "ไบต์ต่อเซกเตอร์" ค่า "ไบต์ต่อเซกเตอร์ทางกายภาพ" ชนิดของไดรฟ์ 4096 4096 เนทีฟ 4K 512 4096 รูปแบบขั้นสูง (หรือที่เรียกว่า 512E) 512 512 เนทีฟ 512 ไบต์