전체 복구 모드에서 SQL Server를 사용하고 있습니다. 전체 백업과 일련의 로그 백업이 제공되면 마지막 전체 백업에서 현재 테일 로그까지 로그 체인이 완전한지 확인할 수 있습니다. 실제로 백업을 복원하지 않고 백업의 일관성을 테스트하는 것이 목적입니다.
기존 백업에 대해이 작업을 수행하는 방법을 이미 알고 있습니다. RESTORE HEADERONLY를 사용하면 모든 파일의 FirstLSN 및 LastLSN을 가져와 연속 파일과 비교하여 호환되는지 여부를 확인할 수 있습니다.
그러나 꼬리 로그가 마지막 로그 백업을 따르는 지 확인하는 방법을 모르겠습니다.
테일 로그의 FirstLSN이 있으면 마지막 로그 백업의 LastLSN과 비교할 수 있습니다. 그러나 꼬리 로그의 FirstLSN을 어떻게 얻을 수 있습니까?
SQL Server 2005 이상에서 이상적으로 작동하는 솔루션이 필요합니다 (이상적으로 t-sql 사용). 지금까지 나는 아무 소용이없는 구글을 검색했다. Btw. 나는 이것을 stackoverflow에 처음 게시했다. 주제에서 벗어난 것으로 표시되었으므로 여기로 마이그레이션했습니다.
편집하다
작은 예제 (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
그래서 첫 번째 것은 몇 자릿수 정도 떨어져 있습니다.
그런 다음 SQL 2008 SP1 (10.00.2531)에서 동일한 테스트를 수행하여 두 쿼리 모두 정답을 얻었습니다.