ฉันมีเซิร์ฟเวอร์ Sharepoint เรามีปัญหากับเครื่องมือสำรองของเราและตอนนี้ฐานข้อมูลของฉันบางส่วนติดอยู่ในสถานะการกู้คืน!
เป็นไปได้หรือไม่ที่จะหยุดกระบวนการกู้คืน และฉันจะมั่นใจได้อย่างไรว่าความสมบูรณ์ของฐานข้อมูลไม่ได้ถูกบุกรุก?
ฉันมีเซิร์ฟเวอร์ Sharepoint เรามีปัญหากับเครื่องมือสำรองของเราและตอนนี้ฐานข้อมูลของฉันบางส่วนติดอยู่ในสถานะการกู้คืน!
เป็นไปได้หรือไม่ที่จะหยุดกระบวนการกู้คืน และฉันจะมั่นใจได้อย่างไรว่าความสมบูรณ์ของฐานข้อมูลไม่ได้ถูกบุกรุก?
คำตอบ:
อาจเกิดจากสคริปต์การเรียกคืนที่เพิ่มWITH NORECOVERY
พารามิเตอร์เพื่อให้ฐานข้อมูลพร้อมสำหรับบันทึกธุรกรรมใช้หลังจากการคืนค่า
ฐานข้อมูลกำลังรอไฟล์บันทึกธุรกรรมล่าสุด
คุณสามารถ:
RESTORE LOG database_name FROM backup_device WITH RECOVERY;
... หรือ... WITH RECOVERY;
... หรือRESTORE DATABASE YourDb WITH RECOVERY;
ก่อนที่คุณจะทำสิ่งนี้โปรดตรวจสอบให้แน่ใจว่าคุณเข้าใจความหมายของตัวเลือกเหล่านี้ คุณอาจทำให้ข้อมูลสูญหายหากคุณไม่ระวัง
ดูรายละเอียดนี้:
สคริปต์ T-SQL อย่างง่ายสำหรับการแก้ปัญหานี้:
เขียนสคริปต์นี้ในหน้าต่างแบบสอบถามใหม่และดำเนินการ:
RESTORE DATABASE [DataBase Name] WITH RECOVERY;
ฉันเพิ่งมีสถานการณ์นี้และการรักษาที่น่าแปลกใจมาก:
ALTER DATABASE DBName SET ONLINE;
เห็นได้ชัดว่าการเรียกคืน NetBackup ที่ทำให้มันอยู่ในสถานะที่แปลก ไม่มีวิธีแก้ปัญหาอื่นทำงาน (แม้ว่าฉันยังไม่ได้ลองรีสตาร์ทบริการ SQL Server)
ฉันควรระวังฐานข้อมูลด้วยเหตุผลทางทฤษฎีเมื่อการกู้คืนเริ่มต้นแล้วล้มเหลวคุณอาจมีข้อมูลเสียหาย ฉันจะกู้คืนฐานข้อมูลอีกครั้งดังนั้นมันไม่สำคัญสำหรับฉัน
ALTER DATABASE
ไม่ได้รับการอนุญาตให้ผมมั่นใจว่าในกรณีของฐานข้อมูลในความเป็นจริงการแสดงเป็นรัฐในการฟื้นฟูและการใช้SET ONLINE
ในความเป็นจริงทำงาน ดังนั้นตระหนักว่าคุณกำลังโทรหาฉันผิดหรือโกหก นั่นคือสิ่งที่คุณต้องทำจริง ๆ เมื่อมีทางเลือกอื่นหรือไม่?
ONLINE
สถานะจริงได้ เรื่องสั้นยาวฉันคิดว่าความคิดเห็นและ downvote ของคุณอยู่นอกบรรทัดสำหรับเว็บไซต์นี้และข้อมูลของคุณไม่ถูกต้องตามความเป็นจริงเพราะมันไม่ผ่านการรับรองอย่างถูกต้องกับข้อมูลที่ฉันได้นำเสนอ
ดังที่เราทราบตัวเลือกการกู้คืนฐานข้อมูลเริ่มต้นคือการกู้คืนซึ่งทำให้มั่นใจว่าฐานข้อมูลพร้อมใช้งานและออนไลน์สำหรับใช้งานหลังจากเสร็จสิ้นการกู้คืนฐานข้อมูล
ตัวอย่าง:
RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO
เรามาดูประเด็นสำคัญเกี่ยวกับการคืนสภาพโดยไม่ต้องกู้คืน
คืนค่าด้วย NoRecovery
ตัวเลือกนี้ใช้เป็นพิเศษเมื่อมีการสำรองข้อมูลหลายครั้ง หมายความว่าเมื่อคุณดำเนินการคำสั่งกู้คืนด้วยตัวเลือก norecovery ซึ่งหมายความว่าฐานข้อมูลจะไม่ถูกปล่อยให้กับผู้ใช้จนกว่าการสำรองข้อมูลล่าสุดตามลำดับจะถูกกู้คืน ด้วยการสำรองข้อมูลครั้งล่าสุดตัวเลือกการกู้คืนจะถูกใช้และฐานข้อมูลจะออนไลน์
ตัวอย่าง:
RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak'
WITH NORECOVERY
GO
แล้ว:
RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO
RESTORE ...WITH NORECOVERY
ตัวเลือก คุณช่วยตรวจสอบอีกครั้งได้ไหม