로그 시퀀스 번호로 복구(SQL Server)

적용 대상:SQL Server

이 항목은 전체 또는 대량 로그 복구 모델을 사용하는 데이터베이스에만 관련됩니다.

LSN(로그 시퀀스 번호)을 사용하여 복원 작업에 대한 복구 지점을 정의할 수 있습니다. 그러나 도구 공급업체를 위한 특수 기능이며 일반적으로 유용하지는 않습니다.

로그 시퀀스 번호 개요

LSN은 RESTORE 순서 중에 내부적으로 사용되어 데이터가 복원될 지정 시간을 추적합니다. 백업이 복원되면 백업이 수행된 시점에 해당하는 LSN으로 데이터가 복원됩니다. 차등 및 로그 백업의 경우 데이터베이스는 보다 나중의 것으로 복원되며 이는 더 높은 LSN에 해당합니다. LSN에 대한 자세한 내용은 SQL Server 트랜잭션 로그 아키텍처 및 관리 가이드를 참조 하세요.

참고 항목

LSN은 데이터 형식 숫자(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)
복원 및 복구 개요(SQL Server)
SQL Server 트랜잭션 로그 아키텍처 및 관리 가이드