2023年7月30日发(作者:)
SQLSERVER差异备份还原本⽂测试恢复单独的差异备份⽂件。报错:⽆法还原⽇志备份或差异备份,因为没有⽂件可⽤于前滚。SSMS恢复完整备份⽂件没有问题,但差异备份恢复始终报错。以下是微软帮助⽂档中⽰例:--微软帮助⽂档RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:' WITH FILE = 6 NORECOVERY;RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:' WITH FILE = 9 RECOVERY;WITH FILE = 6 处会报错(后同,原因是备份集后缺少逗号分隔),这是针对同⼀⽂件中包含多个备份集情况。但说明了关键⼀点,即:/*第1步,还原完整备份,必须使⽤ WITH NORECOVERY ,不对数据库执⾏操作,不回滚事务,使数据库处于【正在还原...】状态,此时数据库不可使⽤,但可继续还原其它⽂件;第2步,还原差异备份,使⽤ WITH RECOVERY,回滚未提交事务,使数据库恢复到可使⽤状态。*/
了解了这⼀点,即使使⽤SSMS进⾏差异备份还原操作,也可以正常还原。这说明:1,在不是还原当前数据库时,会出现以上状况。因为在恢复当前数据库时,会始终显⽰并选中最近完整备份,差异备份则可选。2,在不是还原当前数据库时,始终需要最近完整备份⽂件,并按照上⾯两步,才能还原到最新差异备份(在SSMS中还原当前差异备份时,SSMS帮我们两步合⼀步⽽已)。另附⽰例,使⽤其它数据库备份,恢复新数据库到指定⽂件位置:--使⽤ BACKUP 和 RESTORE 复制数据库BACKUP DATABASE AdventureWorks2008R2
TO AdventureWorks2008R2Backups ;RESTORE FILELISTONLY
FROM AdventureWorks2008R2Backups ;RESTORE DATABASE TestDB
FROM AdventureWorks2008R2Backups
WITH MOVE 'AdventureWorks2008R2_Data' TO 'C:', MOVE 'AdventureWorks2008R2_Log' TO 'C:';
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690654760a387538.html
评论列表(0条)