ยืนยันหลักของเซิร์ฟเวอร์ SQL ข้อผิดพลาดเมื่อคุณพยายามที่ดำเนินการคำสั่งขนาดใหญ่แทรกหรือ BCP: "<loglock.cpp>บรรทัด =ยืนยันหลักล้มเหลว 807 = ' ผลลัพธ์== LCK_OK' "</loglock.cpp>

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

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้:
  • เซิร์ฟเวอร์ A และ B ของเซิร์ฟเวอร์กำลังเรียกใช้ Microsoft SQL Server 2008 หรือ SQL Server 2008 R2
  • คุณเซ็ตอัพฐานข้อมูลเรอร์ระหว่างเซิร์ฟเวอร์และเซิร์ฟเวอร์ B.
  • คุณเรียกใช้คำสั่งขนาดใหญ่แทรกหรือ BCP บนฐานข้อมูลหลัก

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

วันเวลา spid โดยใช้รุ่นของ 'dbghelp.dll' '4.0.5'
วันเวลา spid ** การถ่ายโอนเธรด - spid = 31, EC = 0x00000007F9B1C1A0
วันเวลา spid *** การถ่ายโอนข้อมูลกองซ้อนการส่งไป Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt SQL ของ C:\Program Files\Microsoft

วันเวลา spid * *******************************************************************************

วันเวลา spid *
วันเวลา spid * เริ่มถ่ายโอนข้อมูลกองซ้อน:
วันเวลา spid * 01/04/12 16:46:21 spid 12100
วันเวลา spid *
วันเวลา spid * ตำแหน่ง: loglock.cpp:807
วันเวลา spid * นิพจน์: ผลลัพธ์== LCK_OK
วันเวลา spid * SPID: 31
วันเวลา spid * ประมวลผล ID: 2228

วันเวลา spid ข้อผิดพลาด: 17066 ความรุนแรง: รัฐ 16 : 1

วันเวลา spid ยืนยันหลักของเซิร์ฟเวอร์ SQL: แฟ้ม:<loglock.cpp>บรรทัด =ยืนยันหลักล้มเหลว 807 = ' ผลลัพธ์== LCK_OK' ข้อผิดพลาดนี้อาจเป็นที่เกี่ยวข้องกับการกำหนดเวลา ถ้าข้อผิดพลาดยังคงอยู่หลังจากสำเร็จคำ ใช้ DBCC CHECKDB เพื่อตรวจสอบความสมบูรณ์ของโครงสร้างฐานข้อมูล หรือรีสตาร์ทเซิร์ฟเวอร์เพื่อให้แน่ใจว่า โครงสร้างของข้อมูลในหน่วยความจำจะไม่เกิดความเสียหาย

</loglock.cpp>วันเวลา spid ข้อผิดพลาด: 3624 ความรุนแรง: สถานะ 20 : 1

วันเวลา spid การตรวจสอบการยืนยันหลักการของระบบล้มเหลว ตรวจสอบการล็อกข้อผิดพลาดของ SQL Server สำหรับรายละเอียด โดยทั่วไป ความล้มเหลวในการยืนยันหลักมีสาเหตุความเป็นซอฟต์แวร์จุดบกพร่องหรือข้อมูลเสีย เมื่อต้องการตรวจสอบความเสียหายของฐานข้อมูล พิจารณาการรันการ DBCC CHECKDB ถ้าคุณตกลงที่จะส่งถ่ายโอนข้อมูลไปยัง Microsoft ในระหว่างการติดตั้ง การถ่ายโอนข้อมูลแบบย่อส่วนจะถูกส่งไปยัง Microsoft การปรับปรุงอาจพร้อมใช้งานจาก Microsoft ใน Service Pack ล่าสุด หรือ ในแบบ QFE จากฝ่ายสนับสนุนทางเทคนิค

วันเวลา spid ข้อผิดพลาด: 1454 ความรุนแรง: รัฐ 16 : 1

วันเวลา spid เรอร์ฐานข้อมูลจะสามารถใช้งาน อินสแตนซ์ของเซิร์ฟเวอร์ '<Instance name="">' พบข้อผิดพลาด 3624 สถานะ 1 ระดับความร้ายแรง 20 เมื่อจะถูกทำหน้าที่เป็นคู่ค้าทำมิเรอร์แบบสำหรับฐานข้อมูล '<database name="">' ฐานข้อมูลเรอร์คู่ค้าอาจพยายามกู้คืนโดยอัตโนมัติจากข้อผิดพลาด และการดำเนินต่อเซสชันทำมิเรอร์แบบ สำหรับข้อมูลเพิ่มเติม ให้ดูบันทึกข้อผิดพลาดสำหรับข้อผิดพลาดเพิ่มเติม </database></Instance>


หมายเหตุ คุณต้องเตรียมฐานข้อมูลเรอร์เมื่อต้องแก้ไขปัญหานี้คุณสามารถใช้งานใหม่

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากไม่มีการถ่ายโอนข้อมูลความเข้ากันได้'ล็อก'ในล็อกธุรกรรมของฐานข้อมูลหลักไปยังเซิร์ฟเวอร์มิเรอร์

การหลีกเลี่ยงปัญหา

เมื่อต้องหลีกเลี่ยงปัญหานี้ ปฏิบัติคำสั่งขนาดใหญ่แทรกหรือ BCP บนฐานข้อมูลหลัก โดยใช้ตัวเลือกใน CHECK_CONSTRAINTS

หมายเหตุ ตัวเลือกใน CHECK_CONSTRAINTS ทำให้ประสิทธิภาพการทำงานช้าลง อย่างไรก็ตาม ในมิเรอร์ assert ล็อกเซิร์ฟเวอร์ไม่เกิดขึ้น

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

ในระหว่างการดำเนินการแทรกขนาดใหญ่หรือ BCP ธุรกรรมลูกปิดตัวเลือก CHECK_CONSTRAINTS ธุรกรรมย่อยนี้ใช้การล็อกที่เข้ากันได้กับการล็อกธุรกรรมหลัก ข้อมูลความเข้ากันได้ถูกเก็บไว้ในล็อกธุรกรรมของฐานข้อมูลหลัก ดังนั้น การร้องขอการล็อกธุรกรรมลูกจะได้รับบนฐานข้อมูลหลัก

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

คุณสมบัติ

หมายเลขบทความ (Article ID): 2700641 - รีวิวครั้งสุดท้าย: 6 สิงหาคม 2555 - Revision: 1.0
ใช้กับ
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 Enterprise
Keywords: 
kbsurveynew kbtshoot kbprb kbmt KB2700641 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2700641

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

 

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