ไม่สามารถคืนค่าฐานข้อมูลเซิร์ฟเวอร์ SQL จากการสำรองข้อมูลเต็มรูปแบบการประมวลผลบันทึกล้มเหลวฐานข้อมูลในสถานะ 'กู้คืน'


14

ฉันกำลังพยายามตั้งค่าฐานข้อมูลเพื่อวัตถุประสงค์ในการพัฒนาบน 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

ไม่สามารถสร้างบันทึกใหม่ได้เนื่องจากมีธุรกรรมแบบเปิด / ผู้ใช้เมื่อฐานข้อมูลถูกปิดไม่มีจุดตรวจสอบเกิดขึ้นกับฐานข้อมูลหรือฐานข้อมูลเป็นแบบอ่านอย่างเดียว ข้อผิดพลาดนี้อาจเกิดขึ้นหากไฟล์บันทึกธุรกรรมถูกลบหรือสูญหายด้วยตนเองเนื่องจากฮาร์ดแวร์หรือสภาพแวดล้อมล้มเหลว


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
พอลไวท์ 9

คำตอบ:


2

จากความคิดเห็นที่ย้ายไปแชทบันทึกนี้จาก OP:

ฉันพยายามแนบผ่าน GUI ขณะที่ฉันเลือกไฟล์. mdf SSMS ระบุว่าฐานข้อมูลประกอบด้วย 3 ไฟล์ (ข้อมูล, ดัชนี, บันทึก) แต่อย่างใดถึงแม้ว่าฉันจะกู้คืนด้วย MOVE รายละเอียดฐานข้อมูลเกี่ยวกับเส้นทางของไฟล์จะบอกว่ามันผิด! ดังนั้นฉันเพิ่งชี้ไปที่ไฟล์บันทึก / ข้อมูล / ดัชนีเก่าและ ... ฐานข้อมูลออนไลน์


-3

เปลี่ยนเป็นโหมดผู้ใช้เดี่ยวและเรียกคืน

ตัวอย่าง:
การกู้คืนแรกใช้ตัวเลือก NORECOVERY เพื่อให้สามารถเรียกคืนได้เพิ่มเติม คำสั่งที่สองคืนค่าล็อกธุรกรรมจากนั้นนำฐานข้อมูลออนไลน์สำหรับการใช้งานของผู้ใช้

RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.BAK'
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.TRN'
WITH RECOVERY
GO

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