今天早上,我对数据库执行了差异备份,名为“MW”。现在我需要在另一个名为“bak_MW”的数据库上恢复备份(完整+差异)。
我尝试使用完整备份+差异备份恢复数据库时遇到错误。
错误是:
数据库“bak_MW”恢复失败。(Microsoft.SqlServer.Management.RelationalEngineTasks)
- - - - - - - - - - - - - - - 附加信息:
System.Data.SqlClient.SqlError:备份集保存了现有“bak_MW”数据库以外的数据库的备份。(Microsoft.SqlServer.SmoExtended)
我认为该错误与完整备份的源文件错误有关。某些进程制作的完整备份比我的更新。
如何获取 MSSQL Backup 引用的文件名以进行完整备份?
有没有办法找到执行的完整备份的日志以及目标文件路径?
谢谢。
如果上次完整备份是通过 VSS 完成的,则差异备份可能毫无用处。
我不这么认为。如果您的差异基于不同的完整版本,则错误消息应该类似于“无法恢复此差异备份,因为数据库尚未恢复到正确的早期状态。”
有两个地方可以获取数据
在第一种情况下,您应该运行类似于 Aardvark 提供的查询
msdb.dbo.backupset
https://learn.microsoft.com/en-us/sql/relational-databases/system-tables/backupset-transact-sql?view=sql-server-ver16
msdb.dbo.backupmediafamily
https://learn.microsoft.com/en-us/sql/relational-databases/system-tables/backupmediafamily-transact-sql?view=sql-server-ver16
另一个观点是查看您的备份文件并运行恢复命令
https://learn.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql?view=sql-server-ver16
https://learn.microsoft.com/en-us/sql/t-sql/statements/restore-statements-headeronly-transact-sql?view=sql-server-ver16