例如,我有一个数据库,我想知道哪个物理备份文件被用来还原到它。问题是数据库被删除了。我怎么看唱片?
发布于 2019-11-23 21:41:10
根据数据库被丢弃的方式,您的运气会有很大的差异。
如果使用DROP DATABASE命令删除了数据库,那么恢复历史记录将对您可用。
但是,如果数据库是在恢复之后通过SSMS删除的,那么您可能就倒霉了。在SSMS中,默认情况下选择“删除数据库的备份和恢复历史信息”选项。当选择此选项时,删除数据库的备份和恢复历史记录(S)将从msdb中删除:

但是,如果您取消选中该复选框,或者执行then中的删除操作,那么您的备份和还原历史记录将是可用的。
CREATE DATABASE Floop;
BACKUP DATABASE Floop TO DISK = 'C:\temp\Floop.bak' WITH INIT;
RESTORE DATABASE Floop FROM DISK = 'C:\temp\Floop.bak' WITH REPLACE;
DROP DATABASE Floop;要查看还原历史记录,只需查询msdb.dbo.restorehistory:
SELECT *
FROM msdb.dbo.restorehistory
WHERE destination_database_name = 'Floop';restorehistory表的详细信息是可在文档中找到。本质上,它包含已还原的数据库、关于还原对象、还原类型和还原点的信息。
如果您想要有关已还原的备份的信息,可以连接到其他备份表。还原来自不同实例的数据库时,Server会将备份信息从文件中的备份头复制到备份表中。
SELECT
RestoreDate = rh.restore_date,
RestoredDb = rh.destination_database_name,
RestoreUser = rh.[user_name],
RestoreType = rh.restore_type,
ReplaceDb = rh.[replace],
RecoverDb = rh.[recovery],
BackupSourceServer = bh.machine_name,
BackupSourceDb = bh.database_name,
BackupFinishDate = bh.backup_finish_date,
BackupFile = bmf.physical_device_name
FROM msdb.dbo.restorehistory AS rh
JOIN msdb.dbo.backupset AS bh ON bh.backup_set_id = rh.backup_set_id
JOIN msdb.dbo.backupmediafamily AS bmf ON bmf.media_set_id = bh.media_set_id
WHERE rh.destination_database_name = 'Floop';https://dba.stackexchange.com/questions/253996
复制相似问题