วิธีลบฐานข้อมูลการกู้คืน


14

ฉันเรียกใช้บันทึกการจัดส่งกับ SQL Server 2008 R2

ฉันมีสถานการณ์ที่ไดรฟ์ฐานข้อมูลรองมีพื้นที่เหลืออยู่และไม่ได้ใช้บันทึกธุรกรรมการจัดส่งบันทึก

วิธีที่ฉันต้องการแก้ไขคือลบฐานข้อมูลที่สองและกำหนดค่าบันทึกการจัดส่งจากศูนย์

ปัญหาที่ฉันมีตอนนี้คือฐานข้อมูลรองของฉันอยู่ในสถานะการกู้คืนและฉันไม่สามารถลบได้ ฉันจะดำเนินการต่อได้อย่างไร

ตัวอย่างเช่นหากฉันพยายามทำให้พวกเขาออฟไลน์ฉันจะได้รับข้อผิดพลาด

ALTER DATABASE is not permitted while the database is in the Restoring state.

คุณไม่สามารถออกคำสั่งแก้ไขบนฐานข้อมูลการกู้คืนจะต้องทำแบบหล่น
Jason Cumberland

คำตอบ:


25
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

หรือเพียงแค่

RESTORE DATABASE dbname WITH RECOVERY

REPLACEเขียนทับฐานข้อมูลที่มีอยู่ทำมันเฉพาะถ้าคุณแน่ใจว่าคุณต้องการแทนที่ฐานข้อมูลที่มีอยู่ของคุณเมื่อคุณพูดถึงคุณ dont ดูแลจะลบมัน

RESTORE WITH RECOVERY เป็นพฤติกรรมเริ่มต้นซึ่งทำให้ฐานข้อมูลพร้อมใช้งานโดยย้อนกลับธุรกรรมที่ไม่ได้รับการยอมรับ บันทึกธุรกรรมเพิ่มเติมไม่สามารถกู้คืนได้

ควรนำฐานข้อมูลออนไลน์ จากนั้นคุณสามารถลบออกแล้วลองอีกครั้ง


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

จริงขณะที่ปิดบริการการลบบันทึกธุรกรรมจะสร้างขึ้นใหม่เสมอ ดีที่สุด
AmmarR

3

วิธีที่ดีที่สุดที่ฉันได้ทำกับปัญหานี้คือเขียนคำสั่ง 'ฐานข้อมูลหล่น [ชื่อฐานข้อมูล]' แล้วสร้างใหม่ด้วยชื่อเดียวกันแล้วเรียกคืนฐานข้อมูลจากไฟล์. bak อื่นเพราะไฟล์. bak เสียหายหรือผิดพลาด


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