确定数据库恢复日期

Red*_*y G 5 sql-server

使用 SQL Server,如何获取特定数据库的还原日期?

Sco*_*red 8

从问题的措辞方式来确定您到底想要什么有点困难,但听起来这篇文章可能会为您提供所需的信息

确定恢复 SQL Server 数据库的时间、源和备份日期

从帖子:

恢复数据库后,您的用户通常会运行一些查询以验证数据是否符合预期。但是,有时您的用户可能会质疑是否使用正确的备份文件完成了还原。在本技巧中,我将向您展示如何识别用于恢复的文件、实际发生备份的时间以及恢复数据库的时间。

这是该帖子中的脚本:

SELECT [rs].[destination_database_name]
    ,[rs].[restore_date]
    ,[bs].[backup_start_date]
    ,[bs].[backup_finish_date]
    ,[bs].[database_name] AS [source_database_name]
    ,[bmf].[physical_device_name] AS [backup_file_used_for_restore]
FROM msdb..restorehistory rs
INNER JOIN msdb..backupset bs ON [rs].[backup_set_id] = [bs].[backup_set_id]
INNER JOIN msdb..backupmediafamily bmf ON [bs].[media_set_id] = [bmf].[media_set_id]
ORDER BY [rs].[restore_date] DESC
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用dbatoolsGet-DbaRestoreHistory轻松找到此信息。适用于一个或所有数据库并支持 SQL Server 2005-vNext。

Get-DbaRestoreHistory -SqlInstance sql2005 -Database db_2005_CL80 | Select -Last 1

这是一些示例输出

在此处输入图片说明


Wes*_*Wes 0

根据下面的链接:

WITH LastRestores AS
(
SELECT
    DatabaseName = [d].[name] ,
    [d].[create_date] ,
    [d].[compatibility_level] ,
    [d].[collation_name] ,
    r.*,
    RowNum = ROW_NUMBER() OVER (PARTITION BY d.Name ORDER BY r.[restore_date] DESC)
FROM master.sys.databases d
LEFT OUTER JOIN msdb.dbo.[restorehistory] r ON r.[destination_database_name] = d.Name
)
SELECT *
FROM [LastRestores]
WHERE [RowNum] = 1
Run Code Online (Sandbox Code Playgroud)

如何在 SQL Server 中查询上次恢复日期?