เช้ามาก็เจอเลยงานเข้า ติดต่อฐานข้อมูลไม่ได้ไหนๆ เกิดจากอะไร ลองเข้าไปดูสิ นั่นไงอาการเป็นแบบนี้ อ๋อ Database แสดงสถานะ Suspect แล้วมันคืออะไร? แก้ปัญหาอย่างไร? มาดูกัน 😎😎
Recovery SQL Server Suspect Database
สาเหตุของอาการดังกล่าว:
ตอบแบบภาพรวมละกันนะ มันก็จะเกิดได้ตามสาเหตุ ดังนี้
- สาเหตุทางด้านกายภาพ เช่น Hardware ได้รับความเสียหายต่างๆ
- มีการปิดฐานข้อมูลที่ไม่เหมาะสม เช่น ไฟดับ ไฟตก หรือเหตุอื่นใดที่ทำให้ดับ โดยที่ยังมีกระบวนการทำงานยังไม่เสร็จสมบูรณ์ หรือมีบาง Transaction ค้างอยู่
- Server หา ไฟล์ฐ้านข้อมูล (*.mdf, *.log)ไม่พบ หรือ ไม่พบอุปกรณ์ ที่จัดเก็บไฟล์
- มีพื้นที่การจัดเก็บที่ไม่เพียงพอ
วิธีการแก้ปัญหา:
1. ให้ทำการเข้าสู่ SQL SERVER Management Studio หลังจากนั้นให้เลือกฐ้านข้อมูลเป็น master และทำการเปิดหน้าจอ New Query ขึ้นมา จากนั้นมให้ทำการพิมพ์ คำสั่ง
EXEC sp_resetstatus [YourDatabase];
* เป็นคำสั่งที่ใช้ในการปิด suspect mode เมื่อทำแล้วก็ต้อง Stop และ Restart SQL Server
2.ทำการปรับสถานะฐานข้อมูลให้อยู่ในภาวะฉุกเฉิน หรือ EMERGENCY mode ก่อน โดยใช้คำสั่งดังนี้
ALTER DATABASE [YourDatabase] SET EMERGENCY
* จะเป็นคำสั่งที่ทำให้ฐานข้อมูล เข้าสู่ READ_ONLY_MODE และจะมีการจำกัดการเข้าถึงให้เฉพาะ SysAdmin Account
เท่านั้น
3. ให้ทำการใช้คำสั่ง DBCC CheckDB ในการตรวจสอบความเสียหาย และตรวจสอบความสมบูรณ์ของโครงสร้างฐานข้อมูลทั้งหมด โดยใช้คำสั่งดังนี้
DBCC checkdb([YourDatabase])
4. ให้ทำการปรับสถานะ Database เป็น Single mode ก่อน เพื่อเปิดสิทธิ์ในการ Repair Database โดยให้ทำการใช้คำสั่ง ดังนี้
ALTER DATABASE [YourDatabase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
5. ทำการซ่อมแซมฐานข้อมูลในส่วนที่เสียหายที่ได้ผลจากคำสั่ง DBCC CheckDB ในส่วนนี้จะใช้เวลาในการประมวลผลพอสมควร และในทางกลับกันอาจมีข้อมูลบางส่วนที่จะสูญหายไปบ้าง โดยให้ทำการใช้คำสั่ง
DBCC CheckDB ([YourDatabase], REPAIR_ALLOW_DATA_LOSS)
6. ขั้นตอนสุดท้ายจะเป็นการปรับให้ฐานข้อมูลกลับมาใช้งานได้ตามปกติ โดยให้ใช้คำสั่ง
ALTERDATABASE [YourDatabase] SET MULTI_USER
*** หลังจากเสร็จสิ้นทุกขั้นตอนแล้วก็ทำการปิด แล้วก็ลองเข้าตรวจสอบดูอีกครัง โดยใช้คำสั่ง DBCC CheckDB()
*** ดีที่สุดกันพลาด ก็ควรมีเวลา Backup ไว้บ้างก็จะดีนะ 😜😜
ไม่มีความคิดเห็น:
แสดงความคิดเห็น