트랜잭션 로그 백업 적용(SQL Server)

적용 대상:SQL Server

이 항목에서는 전체 복구 모델 또는 대량 로그 복구 모델과 관련된 내용을 다룹니다.

이 항목에서는 SQL Server 데이터베이스 복원의 일부로 트랜잭션 로그 백업을 적용하는 것에 대해 설명합니다.

트랜잭션 로그 백업을 복원하기 위한 요구 사항

트랜잭션 로그 백업을 적용하려면 다음 요구 사항을 충족해야 합니다.

  • 복원 시퀀스에 충분한 로그 백업: 복원 시퀀스를 완료하려면 충분한 로그 레코드가 백업되어야 합니다. 필요한 경우 비상 로그 백업을 포함하여 필요한 로그 백업 을 복원 시퀀스가 시작되기 전에 사용할 수 있어야 합니다.

  • 올바른 복원 순서: 바로 이전의 전체 데이터베이스 백업 또는 차등 데이터베이스 백업을 먼저 복원해야 합니다. 그런 다음 전체 또는 차등 데이터베이스 백업 후에 생성된 모든 트랜잭션 로그를 시간순으로 복원해야 합니다. 이 로그 체인의 트랜잭션 로그 백업이 손실되거나 손상된 경우 누락된 트랜잭션 로그 전에 트랜잭션 로그만 복원할 수 있습니다.

  • 데이터베이스가 아직 복구되지 않음: 최종 트랜잭션 로그가 적용된 후에야 데이터베이스를 복구할 수 있습니다. 중간 트랜잭션 로그 백업 중 하나를 복원한 후 데이터베이스를 복구하는 경우 로그 체인이 끝나기 전에 전체 데이터베이스 백업부터 시작하여 전체 복원 순서를 다시 시작하지 않고는 해당 시점을 지나서 데이터베이스를 복원할 수 없습니다.

    모든 로그 백업(RESTORE LOG *database_name* WITH NORECOVERY)을 복원하는 것이 가장 좋습니다. 그런 다음 마지막 로그 백업을 복원한 후 별도의 작업에서 데이터베이스를 복구합니다(RESTORE DATABASE *database_name* WITH RECOVERY).

복구 및 트랜잭션 로그

복원 작업을 완료하고 데이터베이스를 복구할 때 데이터베이스의 무결성을 보장하기 위해 복구 프로세스가 실행됩니다. 복구 프로세스에 대한 자세한 내용은 복원 및 복구 개요(SQL Server)를 참조하세요.

복구 프로세스가 완료되면 데이터베이스가 온라인 상태가 되고 더 이상 트랜잭션 로그 백업을 데이터베이스에 적용할 수 없습니다. 예를 들어 일련의 트랜잭션 로그 백업에는 장기 실행 트랜잭션이 포함됩니다. 트랜잭션의 시작은 첫 번째 트랜잭션 로그 백업에 기록되지만 트랜잭션의 끝은 두 번째 트랜잭션 로그 백업에 기록됩니다. 첫 번째 트랜잭션 로그 백업에는 커밋 또는 롤백 작업의 레코드가 없습니다. 첫 번째 트랜잭션 로그 백업이 적용될 때 복구 작업이 실행되면 장기 실행 트랜잭션은 완료되지 않은 것으로 취급되고 해당 트랜잭션에 대한 첫 번째 트랜잭션 로그 백업에 기록된 데이터 수정이 롤백됩니다. SQL Server는 이 시점 이후에 두 번째 트랜잭션 로그 백업을 적용할 수 없습니다.

참고 항목

경우에 따라서는 로그 복원 중에 파일을 명시적으로 추가할 수 있습니다.

로그 백업을 사용하여 실패 지점으로 복원

다음 이벤트 시퀀스를 가정합니다.

시간 이벤트
8:00 A.M. 데이터베이스를 백업하여 전체 데이터베이스 백업을 만듭니다.
정오 트랜잭션 로그를 백업합니다.
오후 4:00 트랜잭션 로그를 백업합니다.
오후 6:00시입니다. 데이터베이스를 백업하여 전체 데이터베이스 백업을 만듭니다.
오후 8:00시입니다. 트랜잭션 로그를 백업합니다.
오후 9시 45분 오류가 발생합니다.

이 백업 예제 시퀀스에 대한 설명은 트랜잭션 로그 백업(SQL Server)을 참조하세요.

오후 9시 45분(실패 지점)에 데이터베이스를 해당 상태로 복원하려면 다음 대체 절차 중 하나를 사용할 수 있습니다.

대안 1: 최신 전체 데이터베이스 백업을 사용하여 데이터베이스 복원

  1. 실패 시점을 기준으로 현재 활성 트랜잭션 로그의 비상 로그 백업을 만듭니다.

  2. 오전 8시 전체 데이터베이스 백업을 복원하지 마세요. 대신, 최신 오후 6:00 전체 데이터베이스 백업을 복원한 다음, 오후 8시 로그 백업 및 비상 로그 백업을 적용합니다.

대안 2: 이전 전체 데이터베이스 백업을 사용하여 데이터베이스 복원

이 대체 프로세스는 문제가 오후 6시 전체 데이터베이스 백업을 사용하지 못하게 하는 경우에 유용합니다. 이 프로세스는 오후 6시 전체 데이터베이스 백업에서 복원하는 것보다 오래 걸립니다.

  1. 실패 시점을 기준으로 현재 활성 트랜잭션 로그의 비상 로그 백업을 만듭니다.

  2. 오전 8:00 전체 데이터베이스 백업을 복원한 다음 네 개의 트랜잭션 로그 백업을 모두 순서대로 복원합니다. 이렇게 하면 완료된 모든 트랜잭션이 오후 9시 45분까지 롤업됩니다.

    이 대안은 일련의 전체 데이터베이스 백업에서 트랜잭션 로그 백업 체인을 유지 관리하여 제공하는 중복 보안을 가리킵니다.

경우에 따라 트랜잭션 로그를 사용하여 특정 시점으로 데이터베이스를 복원할 수도 있습니다. 자세한 내용은 SQL Server 데이터베이스를 특정 시점(전체 복구 모델)으로 복원합니다.

관련 작업

트랜잭션 로그 백업을 적용하려면

복구 지점으로 복원하려면

WITH NORECOVERY를 사용하여 백업을 복원한 후 데이터베이스를 복구하려면

참고 항목

트랜잭션 로그(SQL Server)
SQL Server 트랜잭션 로그 아키텍처 및 관리 가이드