เมื่อคุณใช้ Microsoft SQL Server ในการแนบหรือเข้าถึงไฟล์ฐานข้อมูล MDF ที่เสียหายคุณจะเห็นข้อความแสดงข้อผิดพลาดต่าง ๆ ซึ่งอาจทำให้คุณสับสนเล็กน้อย ดังนั้นในที่นี้เราจะพยายามแสดงรายการข้อผิดพลาดที่เป็นไปได้ทั้งหมดโดยเรียงตามความถี่ที่เกิดขึ้น สำหรับข้อผิดพลาดแต่ละรายการเราจะอธิบายอาการอธิบายเหตุผลที่ชัดเจนและให้ไฟล์ตัวอย่างรวมถึงไฟล์ที่แก้ไขโดย DataNumen SQL Recoveryเพื่อให้คุณเข้าใจพวกเขาได้ดีขึ้น ด้านล่างนี้เราจะใช้ 'xxx.MDF' เพื่อแสดงความเสียหายของคุณ SQL Server ชื่อไฟล์ฐานข้อมูล MDF
อยู่บนพื้นฐานของ SQL Server หรือข้อความแสดงข้อผิดพลาด CHECKDB มีข้อผิดพลาดสามประเภทที่จะทำให้เกิดความล้มเหลว:
-
- ข้อผิดพลาดในการจัดสรร: เรารู้ว่าข้อมูลในไฟล์ MDF และ NDF ถูกจัดสรรเป็นไฟล์ หน้า. และมีเพจพิเศษบางเพจที่ใช้สำหรับการจัดการการปันส่วนดังนี้:
ประเภทหน้า | รายละเอียด |
หน้าเกม | จัดเก็บข้อมูลแผนที่การจัดสรรส่วนกลาง (GAM) |
หน้า SGAM | จัดเก็บข้อมูลแผนที่การจัดสรรส่วนกลาง (SGAM) ที่ใช้ร่วมกัน |
หน้า IAM | แผนที่การจัดสรรดัชนีร้านค้า (IAM) ข้อมูล |
หน้า PFS | จัดเก็บข้อมูลการจัดสรร PFS |
หากหน้าการจัดสรรใด ๆ ข้างต้นมีข้อผิดพลาดหรือข้อมูลที่จัดการโดยหน้าการจัดสรรเหล่านี้ไม่สอดคล้องกับข้อมูลการจัดสรร SQL Server หรือ CHECKDB จะรายงาน ข้อผิดพลาดในการจัดสรร.
- ข้อผิดพลาดที่สอดคล้องกัน: สำหรับ หน้า ที่ใช้ในการจัดเก็บข้อมูลรวมถึงหน้าข้อมูลและหน้าดัชนีหาก SQL Server หรือ CHECKDB พบความไม่สอดคล้องกันระหว่างเนื้อหาของหน้าและการตรวจสอบจากนั้นจะรายงาน ข้อผิดพลาดความสอดคล้อง
- ข้อผิดพลาดอื่น ๆ ทั้งหมด: อาจมีข้อผิดพลาดอื่น ๆ ที่ไม่อยู่ในสองประเภทข้างต้น
- xxxx.mdf ไม่ใช่ไฟล์ฐานข้อมูลหลัก (ไมโครซอฟท์ SQL Server, ข้อผิดพลาด: 5171)
- ส่วนหัวของไฟล์ "xxxx.mdf" ไม่ใช่ส่วนหัวของไฟล์ฐานข้อมูลที่ถูกต้อง คุณสมบัติ FILE SIZE ไม่ถูกต้อง (Microsoft SQL Server, ข้อผิดพลาด: 5172)
- SQL Server ตรวจพบข้อผิดพลาด I / O ตามความสอดคล้องเชิงตรรกะ: การตรวจสอบที่ไม่ถูกต้อง
- SQL Server ตรวจพบข้อผิดพลาด I / O ตามความสอดคล้องเชิงตรรกะ: เพจขาด
- คุณลบบางระเบียนหรือบางตารางในฐานข้อมูลโดยไม่ได้ตั้งใจ
SQL Server มีเครื่องมือในตัวที่เรียกว่า DBCCซึ่งมี CHECKDB ตรวจสอบได้ ตัวเลือกที่สามารถช่วยซ่อมแซมฐานข้อมูล MDF ที่เสียหายได้ อย่างไรก็ตามสำหรับไฟล์ฐานข้อมูล MDB ที่เสียหายอย่างรุนแรง DBCC CHECKDB ตรวจสอบได้ ก็จะล้มเหลวเช่นกัน
ข้อผิดพลาดความสอดคล้องที่รายงานโดย CHECKDB:
- SQL Server ตรวจพบข้อผิดพลาด I / O ตามความสอดคล้องเชิงตรรกะ: การตรวจสอบที่ไม่ถูกต้อง
- แถวใน sys.xxx ไม่มีแถวที่ตรงกันใน sys.xxx
- ข้อผิดพลาดของตาราง: Object ID ##, index ID ## จะถูกสร้างใหม่
- ดัชนีตารางระบบนี้ไม่สามารถสร้างขึ้นใหม่ได้
- ID อ็อบเจ็กต์ ##, ID ดัชนี ##, ID พาร์ติชัน ##, ID ยูนิตที่จัดสรร ## (ชนิด Unknown), ID เพจ (##: 560) มี ID เพจที่ไม่ถูกต้องในส่วนหัวของเพจ
ข้อผิดพลาดในการจัดสรรรายงานโดย CHECKDB:
- หน้าแผนผังการจัดสรรดัชนี (IAM) ชี้ไปที่ตัวชี้ถัดไปของหน้า IAM
- ขอบเขต (##: ##) ใน ID ฐานข้อมูล ## ถูกทำเครื่องหมายว่าจัดสรรใน GAM แต่ไม่มี SGAM หรือ IAM จัดสรรไว้
ข้อผิดพลาดอื่น ๆ ทั้งหมดที่รายงานโดย CHECKDB:
- ล้มเหลว: (- ########) การเรียกใช้แบบสอบถาม“ DBCC CHECKDB (xxxx) ด้วย NO_INFOMSGS” ล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้:“ xxxx”.
- ตรวจพบข้อผิดพลาด I / O (ID เพจไม่ถูกต้อง) ระหว่างการอ่านที่ออฟเซ็ต 0x ###### ในไฟล์ 'xxxx.mdf'
- ระบบไม่สามารถเปิดใช้งานฐานข้อมูลได้เพียงพอที่จะสร้างบันทึกใหม่
- ข้อมูลสูญหายเมื่อซ่อมด้วย CHECKDB
- ดูเหมือนว่าไฟล์จะถูกตัดทอนโดยระบบปฏิบัติการ
- ในระหว่างการทำซ้ำการดำเนินการที่บันทึกในฐานข้อมูล 'xxxx' เกิดข้อผิดพลาดที่ ID บันทึกการบันทึก