Sql Server:确定哪些事务日志需要恢复

如果有(例如)10个事务日志备份,并且有一些可能已经还原到数据库。 有没有办法确定哪些文件已经被恢复?
谢谢
戴夫

您需要匹配运行RESTORE HEADERONLY FROM DISK = N'E:\PathToBackup\test.trn' WITH NOUNLOAD的第一个/最后一个RESTORE HEADERONLY FROM DISK = N'E:\PathToBackup\test.trn' WITH NOUNLOAD

使用来自dbcc log (mydb)的LSN信息

但是,来自dbcc命令的LSN需要转换为可用。 例如,如果从dbcc log命令中看到类似00000014:00000157:0003的LSN,则需要执行以下操作:

 select left(convert(int, 0x00000014) * 1000000, 6) + right(convert(int, 0x00000157) + 1000000, 6) + right(convert(int, 0x0003) + 1000000, 5) 

注意:关于如何正确地转换这个问题,有一点争议,上面的解决scheme有点破解。 最好的方法是在这个KB文章中的UDF。