이 항목은 전체 또는 대량 로그 복구 모델을 사용하는 데이터베이스에만 관련됩니다.
LSN(로그 시퀀스 번호)을 사용하여 복원 작업의 복구 지점을 정의할 수 있습니다. 그러나 도구 공급업체를 위한 특수 기능이며 일반적으로 유용하지는 않습니다.
로그 시퀀스 번호 개요
LSN은 RESTORE 시퀀스 중에 내부적으로 사용되어 데이터가 복원된 시점을 추적합니다. 백업이 복원되면 백업이 수행된 시점에 해당하는 LSN으로 데이터가 복원됩니다. 차등 백업 및 로그 백업은 복원된 데이터베이스를 더 높은 LSN에 해당하는 나중에 진행합니다.
트랜잭션 로그의 모든 레코드는 LSN(로그 시퀀스 번호)으로 고유하게 식별됩니다. LSN2가 LSN1보다 크면 LSN2에서 참조하는 로그 레코드에서 설명하는 변경 내용이 로그 레코드 LSN에서 설명한 변경 후에 발생하도록 LSN이 정렬됩니다.
중요한 이벤트가 발생한 로그 레코드의 LSN은 올바른 복원 시퀀스를 생성하는 데 유용할 수 있습니다. LSN은 순서가 지정되므로 같음과 같지 않음(즉, , , <>, =<=, >=)에 대해 비교할 수 있습니다. 이러한 비교는 복원 시퀀스를 생성할 때 유용합니다.
비고
LSN은 데이터 형식 numeric(25,0)의 값입니다. 산술 연산(예: 더하기 또는 빼기)은 의미가 없으며 LSN과 함께 사용하면 안 됩니다.
백업 및 복원에 사용되는 LSN 보기
지정된 백업 및 복원 이벤트가 발생한 로그 레코드의 LSN은 다음 중 하나 이상을 사용하여 볼 수 있습니다.
비고
일부 메시지 텍스트에도 LSN이 표시됩니다.
LSN으로 복원하기 위한 Transact-SQL 문법
RESTORE 문을 사용하면 다음과 같이 LSN 바로 앞에 중지할 수 있습니다.
WITH STOPATMARK ='lsn:<lsn_number>' 절을 사용합니다. 여기서 lsn:<lsnNumber>는 지정된 LSN을 포함하는 로그 레코드가 복구 지점임을 지정하는 문자열입니다.
STOPATMARK는 LSN으로 롤포워드되며 롤포워드에 해당 로그 레코드를 포함합니다.
WITH STOPBEFOREMARK ='lsn:<lsn_number>' 절을 사용합니다. 여기서 lsn:<lsnNumber>는 지정된 LSN 번호를 포함하는 로그 레코드 바로 앞에 로그 레코드가 복구 지점이 되도록 지정하는 문자열입니다.
STOPBEFOREMARK는 LSN까지 앞으로 이동하여 해당 로그 레코드를 제외합니다.
일반적으로 포함하거나 제외할 특정 트랜잭션이 선택됩니다. 필수는 아니지만 실제로 지정된 로그 레코드는 트랜잭션 커밋 레코드입니다.
예시
다음 예제에서는 데이터베이스가 AdventureWorks 전체 복구 모델을 사용하도록 변경되었다고 가정합니다.
RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'
WITH STOPATMARK = 'lsn:15000000040000037'
GO
관련 작업
또한 참조하십시오
트랜잭션 로그 백업 적용(SQL Server)
트랜잭션 로그(SQL Server)
RESTORE(Transact-SQL)