SQL Server แสดงฐานข้อมูลในการกู้คืน


23

วันนี้หลังจากไฟฟ้าขัดข้องหนึ่งฐานข้อมูล (พร้อมการกู้คืน: เต็ม) แสดง "In Recovery" ใน SSMS ดังนั้น:

myDatabase (ในการกู้คืน) (สถานะฐานข้อมูล: การกู้คืน, ปิดเครื่อง)

หลังจากเสร็จสิ้นกระบวนการ "กู้คืน" ฐานข้อมูลจะแสดงชื่อ myDatabase โดยไม่มี "(กำลังกู้คืน)" ฉันคิดว่าปัญหาได้รับการแก้ไข แต่ไม่ใช่

เมื่อฉันเริ่มต้นแอปพลิเคชันที่ใช้ฐานข้อมูลนั้นข้อความพิเศษ "(กำลังกู้คืน)" จะปรากฏขึ้นอีกครั้งถัดจากชื่อฐานข้อมูลของฉัน

ฉันรอจนกระทั่ง "กระบวนการกู้คืน" เสร็จสิ้นจากนั้นจึงเอาฐานข้อมูลออฟไลน์และนำกลับมาออนไลน์

ฉันรีสตาร์ทเซิร์ฟเวอร์รีสตาร์ทคอมพิวเตอร์และเมื่อแอปพลิเคชันของฉันทำงานข้อความพิเศษจะปรากฏขึ้นอีกครั้ง ใน SQL Server บันทึกข้อความ "เริ่มต้นฐานข้อมูล 'myDatabase'" ปรากฏขึ้นสองสามครั้ง ดูเหมือนว่าฐานข้อมูลทำงานได้เพราะฉันสามารถแทรกข้อมูลได้ แต่สถานะกำลังแสดงให้เห็นว่ามีบางสิ่งเกิดขึ้น

บันทึกเซิร์ฟเวอร์ไม่แสดงสิ่งที่น่าสนใจ สิ่งเดียวที่ผิดปกติคือฉันมี "รายการเริ่มต้นฐานข้อมูล 'myDatabase' 30 รายการ

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

ฉันได้ติดตั้งอินสแตนซ์ใหม่ของ SQL Server แล้วและใส่ฐานข้อมูลเก่า "myDatabase" ไว้ ปัญหายังคงเกิดขึ้น

เมื่อฉันเรียกใช้แบบสอบถามนี้:

SELECT databasepropertyex('nyDatabase', 'STATUS')

มันแสดงให้เห็นการกู้คืนออนไลน์สงสัยและกลับไปออนไลน์แล้วกู้คืนและอื่น ๆ

คำตอบ:



16

ฉันไม่แน่ใจว่าสิ่งนี้จะช่วยแก้ปัญหาได้หรือไม่ แต่คุณสามารถให้มันได้

วิ่ง:

RESTORE DATABASE YourDatabase WITH RECOVERY

ดูว่าข้างต้นนำฐานข้อมูลออกจากโหมดการกู้คืน หากไม่เป็นเช่นนั้นปัญหาอาจเป็นอย่างอื่น

คุณลองคำสั่งด้านล่างและดูว่าฐานข้อมูลเสียหายหรือไม่

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

หากตรวจพบความเสียหายคุณอาจต้องการซ่อมแซมฐานข้อมูลโดยใช้ DBCC CHECKDB


6

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

คุณควรตรวจสอบบันทึกเหตุการณ์ของ Windows ว่ามีสิ่งใดที่คล้ายดิสก์ล้มเหลว ฐานข้อมูลไม่ควรเริ่มต้นและเข้าสู่การกู้คืนในระหว่างการดำเนินการตามปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.