BACKUP LOG ไม่สามารถดำเนินการได้เนื่องจากไม่มีการสำรองฐานข้อมูลปัจจุบัน


103

ฉันพยายามกู้คืนฐานข้อมูล แต่ข้อความนี้ปรากฏขึ้น ฉันจะกู้คืนฐานข้อมูลนี้ได้อย่างไร

การกู้คืนฐานข้อมูล 'farhangi_db' ล้มเหลว
(Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------ ข้อมูลเพิ่มเติม:

System.Data.SqlClient.SqlError: BACKUP LOG ไม่สามารถดำเนินการได้เนื่องจาก
ไม่มีการสำรองฐานข้อมูลปัจจุบัน (Microsoft.SqlServer.SmoExtended)


2
นี่คือการสำรองข้อมูลส่วนต่างหรือไม่
Amir Keshavarz

@AmirrezaKeshavarz: อะไรนะ? (motavajeh nemisham manzuretuno)
สมาน

1
ฉันหมายความว่าคุณจะกู้คืนข้อมูลสำรองประเภทใด (การสำรองข้อมูลบันทึกธุรกรรม / การสำรองข้อมูลแบบเต็ม / การสำรองข้อมูลส่วนต่าง)
Amir Keshavarz

ดูเหมือนว่าบันทึกธุรกรรมเสีย
bksi

ฐานข้อมูลของคุณมีอยู่หรือไม่? L
Amir Keshavarz

คำตอบ:


205

ในขั้นต้นฉันสร้างฐานข้อมูลแล้วเรียกคืนไฟล์สำรองไปยังฐานข้อมูลเปล่าใหม่ของฉัน:

คลิกขวาที่ Databases> Restore Database> General: Device: [the path of back up file] → OK

นี้เป็นความผิดพลาด ฉันไม่ควรสร้างฐานข้อมูลก่อน

ตอนนี้ฉันทำสิ่งนี้แทน:

คลิกขวาที่ Databases> Restore Database> General: Device: [the path of back up file] → OK


ฉันพบข้อผิดพลาดเดียวกันและได้ผลสำหรับฉัน
javiniar.leonard

ทำงานให้ฉันเช่นกัน
nbhatti2001

127

อีกสาเหตุหนึ่งของปัญหานี้คือเมื่อTake tail-log backup before restoreเปิดใช้งานการตั้งค่า "ตัวเลือก"

บนแท็บ "ตัวเลือก" ปิดใช้งาน / ยกเลิกการเลือกTake tail-log backup before restoreก่อนที่จะกู้คืนไปยังฐานข้อมูลที่ยังไม่มีอยู่


ขอบคุณ @ พีชคุณประหยัดเวลาของฉัน
Frank Myat พฤหัสบดี

@ พีชขอบคุณช่วยเวลาของฉัน
LKC

@ พีชขอบคุณมาก!
Mohit Dharmadhikari

และเลือกตัวเลือก "พร้อมแทนที่"
Andrii Horda

33

โปรดดูภาพด้านล่างและใช้การเปลี่ยนแปลงใน SqlServer:

ครั้งแรกคลิกขวาบนฐานข้อมูล -> งาน -> Restore -> เลือกสำรองข้อมูลแฟ้ม -> สุดท้ายใช้การเปลี่ยนแปลงในตัวเลือกแท็บ

โปรดใช้การเปลี่ยนแปลงใน SqlServer


ในกรณีของฉันฉันทำเช่นนี้และทำเครื่องหมายในช่องแรก "เขียนทับฐานข้อมูลที่มีอยู่ (พร้อมแทนที่)" และใช้งานได้
Amaurys Sánchez

6
  1. ตรวจสอบให้แน่ใจว่ามีฐานข้อมูลใหม่
  2. ตรวจสอบให้แน่ใจว่าคุณสามารถเข้าถึงฐานข้อมูลของคุณได้ (ผู้ใช้รหัสผ่าน ฯลฯ )
  3. ตรวจสอบว่ามีไฟล์สำรองที่ไม่มีข้อผิดพลาด

หวังว่านี่จะช่วยคุณได้


2

อีกสาเหตุหนึ่งคือถ้าคุณมีฐานข้อมูลเดียวกันที่กู้คืนโดยใช้ชื่ออื่น ลบที่มีอยู่แล้วกู้คืนแก้ไขให้ฉัน


ขอบคุณสำหรับคำตอบ. ฮ่า ๆ ทำไม Microsoft SQL Server ถึงไม่พูดว่า "Dude ลบฐานข้อมูลที่มีอยู่ก่อนกู้คืน!"
sivabudh

1

ในกรณีของเราเป็นเพราะโมเดลการกู้คืนในฐานข้อมูลหลักมีการเปลี่ยนแปลงหลังจากที่เราทำการสำรองข้อมูลเพื่อเตรียมตั้งค่าการจัดส่งบันทึก

การตรวจสอบให้แน่ใจว่าโมเดลการกู้คืนถูกตั้งค่าเป็นกู้คืนเต็ม ก่อนที่จะทำการสำรองข้อมูลและตั้งค่าการจัดส่งบันทึกได้รับการแก้ไขให้เรา


1

ฉันแก้ไขข้อผิดพลาดในการกู้คืนไปยังฐานข้อมูลที่ไม่มีอยู่จาก SQL 2008 เป็น SQL 2014 โดยใส่เครื่องหมายถูกในการย้ายไปยังตำแหน่งโฟลเดอร์ SQL2014 ใหม่


1

คุณสามารถใช้ SQL ต่อไปนี้เพื่อกู้คืนหากคุณได้สร้างฐานข้อมูลไว้แล้ว

RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE

0

ฉันเพิ่งลบฐานข้อมูลที่มีอยู่ซึ่งฉันต้องการแทนที่ด้วยข้อมูลสำรองและเรียกคืนจากการสำรองข้อมูลและทำงานได้โดยไม่มีข้อผิดพลาด


0

ฉันไม่แน่ใจว่าไฟล์สำรองฐานข้อมูลที่คุณพยายามกู้คืนนั้นมาจากสภาพแวดล้อมเดียวกับที่คุณพยายามกู้คืนหรือไม่

โปรดจำไว้ว่าเส้นทางปลายทางของไฟล์. mdf และ. ldf อาศัยอยู่กับไฟล์สำรอง

หากไม่ใช่กรณีนี้หมายความว่าไฟล์สำรองมาจากสภาพแวดล้อมที่แตกต่างจากที่โฮสต์ปัจจุบันของคุณตรวจสอบให้แน่ใจว่าเส้นทางไฟล์. mdf และ. ldf เหมือนกัน (มีอยู่) ในเครื่องของคุณให้ย้ายตำแหน่งเหล่านี้เป็นอย่างอื่น (ส่วนใหญ่เป็นกรณีของการกู้คืนฐานข้อมูลในอิมเมจ Docker)

วิธีการทำ: ในฐานข้อมูล -> กู้คืนฐานข้อมูล -> ตัวเลือก [ไฟล์] -> (เลือก "ย้ายไฟล์ทั้งหมดไปยังโฟลเดอร์" - เส้นทางเริ่มต้นส่วนใหญ่จะถูกเติมในสภาพแวดล้อมการโฮสต์ของคุณแล้ว)


0

ในกรณีที่ปัญหายังคงมีอยู่ให้ไปที่หน้าฐานข้อมูลการกู้คืนและเลือก "กู้คืนไฟล์ทั้งหมดไปยังโฟลเดอร์" ในแท็บ "ไฟล์" ซึ่งอาจช่วยได้


0

ในกรณีของฉันฉันกำลังกู้คืนฐานข้อมูลSQL Server 2008 R2เป็นSQL Server 2016 หลังจากเลือกไฟล์ในแท็บทั่วไปคุณควรไปที่แท็บตัวเลือกและทำ2สิ่ง:

  1. คุณต้องเปิดใช้งานเขียนทับฐานข้อมูลที่มีอยู่
  2. คุณต้องปิดใช้งานการสิ้นสุดของสำเนาบันทึก

-1

คุณสามารถใช้วิธีนี้:

  1. หากคุณมีฐานข้อมูลที่มีชื่อเดียวกัน: WIN+R-> services.msc-> SQL SERVER(MSSQLSERVER)->Stop
  2. ไปที่เส้นทางโฟลเดอร์ MySQL Data และลบไฟล์ฐานข้อมูลตัวอย่าง
  3. เริ่มบริการ sql
  4. คลิกขวาที่ฐานข้อมูลและเลือกกู้คืนฐานข้อมูล
  5. ในแท็บไฟล์เปลี่ยนโฟลเดอร์ไฟล์ข้อมูลและโฟลเดอร์ไฟล์บันทึก
  6. คลิกตกลงเพื่อกู้คืนฐานข้อมูลของคุณ

ปัญหาของฉันได้รับการแก้ไขด้วยวิธีนี้ BY ...


-1

คลิกขวาที่ฐานข้อมูลของคุณกดงาน> สำรองข้อมูลและสำรองข้อมูลจากฐานข้อมูลของคุณก่อนที่จะกู้คืนฐานข้อมูลของคุณฉันใช้วิธีนี้เพื่อแก้ปัญหานี้

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