2016-10-14 31 views
-1

当最后backup_finish_date用下面的查询(从SQL Server: how to query when the last transaction log backup has been taken?)查询:SQL服务器:究竟是master.sys.databases的backup_finish_date

SELECT d.name, 
     d.recovery_model_desc, 
     MAX(b.backup_finish_date) AS backup_finish_date 
FROM  master.sys.databases d 
     LEFT OUTER JOIN msdb..backupset b 
     ON  b.database_name = d.name 
     AND  b.type   = 'L' 
GROUP BY d.name, d.recovery_model_desc 
ORDER BY backup_finish_date DESC 

的backup_finish_date我所有的数据库为空,这是对于恢复模式为BULK_LOGGED,FULL或SIMPLE的DB。

这是否意味着这些数据库都没有备份其事务日志(如链接问题的标题所示)?

回答

1

是的,你是对的。如果您的backup_finish_datenull意味着它从未备份过。但是,msdb..backupset可以修改/调节。您可以使用备份类型检查数据库的上次备份。

SELECT d.name, 
     d.recovery_model_desc, 
     b.type, -- type of backup 
     MAX(b.backup_finish_date) AS backup_finish_date 
FROM  master.sys.databases d 
     LEFT OUTER JOIN msdb..backupset b 
     ON  b.database_name = d.name 
GROUP BY d.name, d.recovery_model_desc, b.type 
ORDER BY backup_finish_date DESC 

type Can be: 
D = Database OR Full 
I = Differential database 
L = Log 
F = File or filegroup 
G =Differential file 
P = Partial 
Q = Differential partial 
Can be NULL. 

参考MSDN

+0

感谢。我试图看看是否有可能恢复我丢弃的表格。我假设不是?一旦事务日志被截断,日志文件是否被保存? –

+0

您应该有可用的备份来恢复删除的表。 – p2k