首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看已删除数据库的还原历史记录?

如何查看已删除数据库的还原历史记录?
EN

Database Administration用户
提问于 2019-11-23 20:43:53
回答 1查看 1.8K关注 0票数 0

例如,我有一个数据库,我想知道哪个物理备份文件被用来还原到它。问题是数据库被删除了。我怎么看唱片?

EN

回答 1

Database Administration用户

发布于 2019-11-23 21:41:10

根据数据库被丢弃的方式,您的运气会有很大的差异。

如果使用DROP DATABASE命令删除了数据库,那么恢复历史记录将对您可用。

但是,如果数据库是在恢复之后通过SSMS删除的,那么您可能就倒霉了。在SSMS中,默认情况下选择“删除数据库的备份和恢复历史信息”选项。当选择此选项时,删除数据库的备份和恢复历史记录(S)将从msdb中删除:

但是,如果您取消选中该复选框,或者执行then中的删除操作,那么您的备份和还原历史记录将是可用的。

代码语言:javascript
复制
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

代码语言:javascript
复制
SELECT *
FROM msdb.dbo.restorehistory
WHERE destination_database_name = 'Floop';

restorehistory表的详细信息是可在文档中找到。本质上,它包含已还原的数据库、关于还原对象、还原类型和还原点的信息。

如果您想要有关已还原的备份的信息,可以连接到其他备份表。还原来自不同实例的数据库时,Server会将备份信息从文件中的备份头复制到备份表中。

代码语言:javascript
复制
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';
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/253996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档