ฉันกำลังพยายามตั้งค่าฐานข้อมูลเพื่อวัตถุประสงค์ในการพัฒนาบน SQL Server Developer Edition ในเครื่องของฉัน 12.0.2000.8 ฉันได้รับการสำรองฐานข้อมูลเต็มรูปแบบและมีไฟล์สำรองข้อมูลการเข้าสู่ระบบธุรกรรมเท่านั้นซึ่งถูกส่งมาให้ฉันผ่านเครือข่าย
เมื่อพยายามกู้คืนจากการสำรองข้อมูลเต็มรูปแบบหลังจากผ่านไประยะหนึ่ง (อาจจะประมาณ 1 ชั่วโมงฐานข้อมูลจะมีขนาดประมาณ 270 GB) ฉันได้รับข้อผิดพลาด:
System.Data.SqlClient.SqlError: เกิดข้อผิดพลาดขณะประมวลผลบันทึกสำหรับฐานข้อมูล 'ชื่อฐานข้อมูล' หากเป็นไปได้ให้เรียกคืนจากการสำรองข้อมูล หากการสำรองข้อมูลไม่พร้อมใช้งานคุณอาจจำเป็นต้องสร้างบันทึกใหม่ (Microsoft.SqlServer.SmoExtended)
หลังจากนี้ db อยู่ในสถานะ 'กำลังกู้คืน .. '
ฉันต้องการเรียกใช้บางอย่าง (ได้จากคำถามนี้ )
ALTER DATABASE recovery_test_2 SET EMERGENCY;
ALTER DATABASE recovery_test_2 SET SINGLE_USER;
DBCC CHECKDB (recovery_test_2, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
แต่โดยธรรมชาติแล้วฉันไม่สามารถทำได้เนื่องจากฐานข้อมูลอยู่ในสถานะ 'การเรียกคืน .. ' การรีสตาร์ทกระบวนการกู้คืนจะทำให้เกิดข้อความแสดงข้อผิดพลาดเดียวกันการวางและการกู้คืนอีกครั้งก็ไม่ได้ช่วยอะไรเช่นกัน
ฉันจะทำให้ db ทำงานและทำงานได้อย่างไร? ความสอดคล้องในการทำธุรกรรมไม่สำคัญสำหรับฉัน
สคริปต์การกู้คืนที่สร้างโดยอัตโนมัติ SSMS:
USE [master]
RESTORE DATABASE [database_name] FROM DISK = N'D:\database_name.bak' WITH FILE = 1,
MOVE N'database_name' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name.mdf',
MOVE N'database_name_index' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_index.ndf',
MOVE N'database_name_log' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_log.ldf',
NOUNLOAD,
STATS = 5
GO
ผลลัพธ์ของการสืบค้นที่แนะนำโดย @Craig Efrein
ไม่สามารถสร้างบันทึกใหม่ได้เนื่องจากมีธุรกรรมแบบเปิด / ผู้ใช้เมื่อฐานข้อมูลถูกปิดไม่มีจุดตรวจสอบเกิดขึ้นกับฐานข้อมูลหรือฐานข้อมูลเป็นแบบอ่านอย่างเดียว ข้อผิดพลาดนี้อาจเกิดขึ้นหากไฟล์บันทึกธุรกรรมถูกลบหรือสูญหายด้วยตนเองเนื่องจากฮาร์ดแวร์หรือสภาพแวดล้อมล้มเหลว