Estamos usando o SQL Server com o modo de recuperação completa. Dado um backup completo e uma série de backups de log, gostaríamos de poder verificar se a cadeia de logs está completa desde o último backup completo até o log de cauda atual. (Sem realmente restaurar esses backups; o objetivo aqui é testar a consistência dos backups.)
Eu já sei como fazer isso para os backups existentes: usando RESTORE HEADERONLY, obtenho o FirstLSN e LastLSN de todos os arquivos, que podem ser comparados com arquivos consecutivos, para determinar se são compatíveis.
No entanto, não sei como verificar se o log de cauda segue o último backup de log.
Se eu tivesse o FirstLSN do log de cauda, poderia compará-lo ao LastLSN do último backup de log. Mas como posso obter o FirstLSN do registro de cauda?
Preciso de uma solução que funcione a partir do SQL Server 2005 (idealmente usando t-sql). Até agora, pesquisei no Google sem sucesso. Btw. A primeira vez que publiquei isso no stackoverflow; mas migrou para aqui, pois foi sinalizado como fora de tópico.
EDITAR
Tentei as duas soluções fornecidas em um pequeno exemplo (SQL Server 2005, 9.0.5057):
BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak'
-- fire some update queries
BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak'
-- fire both queries from the provided answers:
-- Martin Smith's answer yields: 838886656088920652852608
-- Shawn Melton's answer yields: 46000000267600001
RESTORE HEADERONLY FROM DISK = 'C:\temp\backup test\Log1.bak'
-- yields: 46000000267600001
Então parece que o primeiro está desligado por várias ordens de magnitude.
Fiz o mesmo teste no SQL 2008 SP1 (10.00.2531), em que ambas as consultas renderam a resposta correta.