บทความนี้จะอธิบายวิธีแก้ปัญหาฐานข้อมูลที่น่าสงสัยของ SQL Server ในบางครั้ง ฐานข้อมูลถูกทำเครื่องหมายว่าน่าสงสัยโดยไม่ได้ตั้งใจ ต่อไปนี้เป็นวิธีแก้ไขปัญหาบางประการ 1. ขั้นแรกให้ยืนยันว่าไฟล์ .mdf และ .ldf ได้รับการสำรองไว้แล้ว
2. สร้างฐานข้อมูลใหม่ด้วยชื่อเดียวกันใน SQL Server แล้วหยุดบริการ SQL Server
3. เขียนทับไฟล์ .mdf และ .ldf ที่สอดคล้องกับฐานข้อมูลใหม่ด้วยไฟล์ .mdf และ .ldf ดั้งเดิม
4. เริ่มบริการ SQL Server ใหม่ คุณควรเห็นว่าฐานข้อมูลอยู่ในสถานะต้องสงสัย
5. ดำเนินการคำสั่งต่อไปนี้ใน SQL Query Analyzer เพื่ออนุญาตให้อัปเดตตารางระบบ:
ใช้ mastergosp_configure 'อนุญาตการอัปเดต' 1 กำหนดค่าใหม่ด้วยการแทนที่
6. ทำให้ฐานข้อมูลนี้เข้าสู่โหมดฉุกเฉิน:
อัปเดตสถานะชุดฐานข้อมูล sys = 32768 โดยที่ name = 'db_name'go
7. ใช้คำสั่ง DBCC CHECKDB เพื่อตรวจสอบข้อผิดพลาดในฐานข้อมูล:
DBCC CHECKDB('db_name')GO
8. ถ้าคำสั่ง DBCC CHECKDB ล้มเหลว ให้ไปที่ขั้นตอนที่ 10 มิฉะนั้น ให้ฐานข้อมูลเข้าสู่โหมดผู้ใช้คนเดียวก่อนที่จะพยายามซ่อมแซม:
sp_dboption 'db_name', 'ผู้ใช้คนเดียว', 'true' DBCC CHECKDB ('db_name', REPAIR_ALLOW_DATA_LOSS) GO
หากคุณได้รับพร้อมท์ว่าฐานข้อมูลไม่อยู่ในโหมดผู้ใช้คนเดียวเมื่อดำเนินการคำสั่ง DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) ให้เริ่มบริการ SQL Server ใหม่แล้วลองดำเนินการต่อ
9. หากคำสั่ง DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) ล้มเหลว ให้ไปที่ขั้นตอนที่ 10 มิฉะนั้น หากข้อผิดพลาดในฐานข้อมูลได้รับการซ่อมแซมสำเร็จแล้ว:
ดำเนินการคำสั่ง DBCC CHECKDB('db_name') อีกครั้งเพื่อยืนยันว่าไม่มีข้อผิดพลาดในฐานข้อมูล
ล้างสถานะต้องสงสัยของฐานข้อมูล: sp_resetstatus 'db_name'
ล้างสถานะโหมดผู้ใช้คนเดียวของฐานข้อมูล: sp_dboption 'db_name', 'ผู้ใช้คนเดียว', 'false'
เริ่มบริการ SQL Server ใหม่ หากทุกอย่างเป็นปกติ แสดงว่าฐานข้อมูลได้รับการกู้คืนเรียบร้อยแล้ว
10. หากขั้นตอนข้างต้นไม่สามารถแก้ปัญหาได้ โปรดดูเอกสารที่แนบมาและลองกู้คืนข้อมูลในฐานข้อมูลโดยสร้างบันทึกธุรกรรมขึ้นมาใหม่ หากคุณมีเฉพาะไฟล์ MDF ปัญหาจะซับซ้อนมากขึ้น และเราจำเป็นต้องสร้างบันทึกธุรกรรมใหม่โดยตรง:
1. สร้างฐานข้อมูลใหม่ด้วยชื่อเดียวกันใน SQL Server แล้วหยุดบริการ SQL Server
2. ใช้ไฟล์ ldf ต้นฉบับเพื่อเขียนทับไฟล์ .mdf ที่สอดคล้องกับฐานข้อมูลที่สร้างขึ้นใหม่ และลบไฟล์บันทึก (.ldf)
3. เริ่มบริการ SQL Server และทำให้ฐานข้อมูลเข้าสู่โหมดฉุกเฉิน (เช่นเดียวกับข้างต้น: ขั้นตอนที่ 5 และขั้นตอนที่ 6)
4. หยุดและเริ่มบริการ SQL Server ใหม่
5. ดำเนินการคำสั่งต่อไปนี้เพื่อสร้างไฟล์บันทึกฐานข้อมูลใหม่: (ต่อไปนี้เป็นตัวอย่าง คุณต้องใช้ชื่อฐานข้อมูลจริงของคุณ)
DBCC REBUILD_LOG('cas_db', 'D:cas_dbcas_db_Log.LDF')
6. แทนที่ฐานข้อมูลเป็นโหมดผู้ใช้คนเดียว
7. ลองอีกครั้งโดยใช้คำสั่ง DBCC CHECKTABLE หรือ DBCC CHECKDB เพื่อตรวจสอบและแก้ไขข้อผิดพลาดในฐานข้อมูล
-