ฐานข้อมูลจะถูกทำเครื่องหมายสงสัยทำให้อุปกรณ์หายไป

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

อาการ

sql Server ทำเครื่องหมายสงสัยฐานข้อมูลถ้ามีแฟ้มที่อุปกรณ์สำหรับฐานข้อมูลจะไม่พร้อมใช้งานเมื่อคุณพยายามเริ่มการทำงาน คุณอาจพบการตั้งค่าต่อไปนี้ของข้อความในล็อกข้อผิดพลาด SQL Server:
ข้อความแสดงข้อผิดพลาด 1:
udopen เคอร์เนล 10:48:32.60 96/11/18: ระบบปฏิบัติการข้อผิดพลาด 32 (ตัว
กระบวนการไม่สามารถเข้าถึงแฟ้มได้เนื่องจากกำลังถูกใช้ โดยอื่น
กระบวนงาน) ในระหว่างการสร้าง/เปิดอุปกรณ์ทางกายภาพ
C:\DATA\SQL\MSDB.DAT (หรือ C:\DATA\SQL\MSDB.MDF)

udactivate เคอร์เนล 10:48:32.60 96/11/18 (หลัก): ไม่สามารถเปิดได้
อุปกรณ์ C:\MSSQL\DATA\MSDB.DAT (หรือ C:\DATA\SQL\MSDB.MDF) สำหรับ vdn 127
เกิดข้อผิดพลาด 2
udopen เคอร์เนล 10:48:32.60 96/11/18: ข้อผิดพลาด 2 (การของระบบปฏิบัติการ
ระบบไม่พบแฟ้มที่ระบุไว้) ในระหว่างการสร้าง/เปิด
ทางกายภาพอุปกรณ์ C:\MSSQL\DATA\MSDB.DAT (หรือ C:\DATA\SQL\MSDB.MDF)

udactivate เคอร์เนล 10:48:32.60 96/11/18 (หลัก): ไม่สามารถเปิดอุปกรณ์ C:\MSSQL\DATA\MSDB.DAT (หรือ C:\DATA\SQL\MSDB.MDF) สำหรับ vdn 127
สิ่งเหล่านี้จะเป็นตามต่อไปในแฟ้มบันทึกโดย:
udread เคอร์เนล 10:48:36.70 96/11/18: ข้อผิดพลาดของระบบปฏิบัติการ 6 (ตัว
หมายเลขอ้างอิงไม่ถูกต้อง) บนอุปกรณ์ 'C:\MSSQL\DATA\MSDB.DAT' (หรือ C:\DATA\SQL\MSDB.MDF) (virtpage
0x7f000018)

ข้อผิดพลาดการ spid11 10:48:36.77 96/11/18: ความรุนแรง 840 : สถานะ 17 : 2

96/11/18 10:48:36.77 spid11 อุปกรณ์ 'MSDBData' (ด้วยชื่อที่มีอยู่จริง
'C:\MSSQL\DATA\MSDB.DAT' (หรือ C:\DATA\SQL\MSDB.MDF), และหมายเลขของอุปกรณ์เสมือน 127) ไม่ได้
พร้อมใช้งาน กรุณาติดต่อผู้ดูแลระบบเพื่อขอความช่วยเหลือ

96/11/18 10:48:36.77 1092480 บัฟเฟอร์ spid11 จากฐานข้อมูล 'msdb'
มีหมายเลขหน้า 0 ในส่วนหัวของหน้าและหมายเลขหน้า 24 ในนั้น
ส่วนหัวของบัฟเฟอร์

96/11/18 10:48:37.43 spid11 ไม่สามารถดำเนินการกู้คืนของ
dbid <5>เนื่องจากความข้อผิดพลาดก่อนหน้านี้ ดำเนินการต่อ ด้วยถัดไป</5>
database.
ตัวอย่างเช่น การดำเนินการตามขั้นตอนต่อไปนี้จะสาธิตปัญหา:
  1. หยุดการ SQL Server
  2. ออกคำสั่งต่อไปนี้จากพรอมต์คำสั่งที่ Mssql\Data ไดเรกทอรี:

    ren msdb.dat msdb.sav
  3. เริ่ม SQL Server
คุณจะเห็นข้อผิดพลาด (รายการจากชุดที่สอง) ข้างต้นใน errorlog SQL Server ถ้าคุณออกแบบสอบถามต่อไปนี้ในฐานข้อมูลหลักแล้ว
   select name, dbid, mode, status from sysdatabases where dbid =
   db_id('msdb')
				

คุณได้รับข้อความแสดงผลลัพธ์ต่อไปนี้:
   name     dbid   mode   status
   ------------------------------
   msdb      5      0      328
				

สถานะของ 328 ตรวจสอบการ:
   truncate log on chkpt
   database not recovered yet
   database is suspect
				

สำหรับข้อมูลเพิ่มเติม ให้ดูที่หัวข้อ "Sysdatabases (ฐานหลักข้อมูลเท่านั้น)" ในใน SQL Server หนังสือออนไลน์

สาเหตุ

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

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

เมื่อต้องการแก้ไขปัญหานี้ ดำเนินการขั้นตอนด้านล่าง โปรดสังเกตว่า ขั้นตอนสุดท้ายสำคัญ
  1. ให้แน่ใจว่า แฟ้มที่อุปกรณ์ไม่พร้อมใช้งานจริง
  2. ใช้ sp_resetstatus กระบวนงานที่เก็บไว้เพิ่มเติมเพื่อรีเซ็ตสถานะของฐานข้อมูล suspect ถ้าคุณไม่ได้ทำสิ่งนี้ สร้างกระบวนการนี้ โดยการดำเนินการสคริปต์ Instsupl.sql พบในไดเรกทอรี Mssql\Install สำหรับข้อมูลเพิ่มเติมบน sp_resetstatus ให้ดูที่หัวข้อ "การตั้งค่าใหม่ในสงสัยว่าสถานะ" ในใน SQL Server หนังสือออนไลน์
  3. ดำเนินการ sp_resetstatus ในฐานข้อมูลหลักสำหรับฐานข้อมูล suspect:
          use master
          go
          exec sp_resetstatus msdb   -- replace msdb with your database name
     
    						
    คุณจะเห็นผลลัพธ์ต่อไปนี้:
          Prior to Update sysdatabases attempt for DBName='msdb', the mode=0
          and status=328 (status suspect_bit=256). For DBName='msdb' in
          sysdatabases, status bit 256 was forced Off and mode was forced to
          0. WARNING: You MUST stop/restart SQL Server prior to accessing this
          database!
     
    					
  4. หยุด และเริ่มต้นเซิร์ฟเวอร์ SQL
  5. ตรวจสอบว่า ฐานข้อมูลถูกกู้คืน และพร้อมใช้งาน
  6. รันการ DBCC NEWALLOC, TEXTALL DBCC และ DBCC CHECKDB

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

ถ้าฐานข้อมูลถูกทำเครื่องยังคงหมายเป็นสงสัยหลังจากการดำเนินการขั้นตอนเหล่านี้ อาจเป็นปัญหาอื่นที่ป้องกันไม่ให้ฐานข้อมูลการกู้คืน ณจุดนี้ คุณสามารถอย่างใดอย่างหนึ่งกู้คืนจากการสำรองข้อมูลที่ดี หรือฐานข้อมูลการตั้งค่าเป็นโหมดฉุกเฉิน และใช้โปรแกรมคัดลอกขนาดใหญ่ (BCP) เพื่อจำนวนมากสำเนาข้อมูลออกสำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
165918โหมดการเลี่ยงผ่าน (Emergency) และการถ่ายโอนธุรกรรม WITH NO_LOG
สิ่งสำคัญถ้าคุณใช้บทความนี้ (Q165918) และไม่แน่ใจของผลลัพธ์ทั้งหมดของการดำเนินการที่คุณกำลังดำเนินการ ติดต่อผู้ให้บริการสนับสนุนหลักสำหรับความช่วยเหลือ

คุณสมบัติ

หมายเลขบทความ (Article ID): 180500 - รีวิวครั้งสุดท้าย: 7 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Keywords: 
kbprb kbmt KB180500 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:180500
การปฏิเสธความรับผิดชอบในเนื้อหาของ KB ที่จะไม่มีการปรับปรุงอีกต่อไป
บทความนี้กล่าวถึงผลิตภัณฑ์ที่ Microsoft ไม่มีการสนับสนุนอีกต่อไป เนื้อหาของบทความจึงมีการนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก

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

 

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