다음을 통해 공유


비상 로그 백업(SQL Server)

적용 대상: SQL Server

이 문서는 전체 또는 대량 로그 복구 모델을 사용하는 SQL Server 데이터베이스의 백업 및 복원에만 관련됩니다.

비상 로그 백업에서는 작업 손실을 방지하고 로그 체인을 그대로 유지하기 위해 아직 백업되지 않은 로그 레코드(비상 로그)를 캡처합니다. SQL Server 데이터베이스를 최신 시점으로 복구하려면 먼저 해당 트랜잭션 로그의 꼬리를 백업해야 합니다. 비상 로그 백업은 데이터베이스에 대한 복구 계획의 마지막 백업입니다.

모든 복원 시나리오에서 비상 로그 백업이 필요한 것은 아닙니다. 복구 지점이 이전 로그 백업에 포함된 경우 비상 로그 백업이 필요하지 않습니다. 데이터베이스를 이동 또는 대체(덮어쓰기)하고 최신 백업 후 특정 시점으로 복원할 필요가 없는 경우에는 비상 로그 백업이 필요하지 않습니다.

비상 로그 백업이 필요한 시나리오

다음 시나리오에서 비상 로그 백업을 수행하는 것이 좋습니다.

  • 데이터베이스가 온라인 상태이고 데이터베이스에서 복원 작업을 수행하려는 경우 먼저 로그의 꼬리를 백업합니다. 온라인 데이터베이스에 대한 오류를 방지하려면 BACKUP Transact-SQL 문의 WITH NORECOVERY 옵션을 사용해야 합니다.

  • 데이터베이스가 오프라인 상태이고 시작에 실패하고 데이터베이스를 복원해야 하는 경우 먼저 로그의 꼬리를 백업합니다. 현재 트랜잭션이 발생할 수 없으므로 WITH NO_TRUNCATE 옵션을 사용합니다. NO_TRUNCATE복사 전용 트랜잭션 로그 백업과 사실상 동일합니다. 현재 트랜잭션이 발생할 수 없으므로 WITH NORECOVERY 사용은 선택 사항입니다.

  • 데이터베이스가 손상된 경우 BACKUP 문의 WITH CONTINUE_AFTER_ERROR 옵션을 사용하여 비상 로그 백업을 수행합니다.

    손상된 데이터베이스에서 로그 파일이 손상되지 않고 데이터베이스가 비상 로그 백업을 지원하는 상태이며 데이터베이스에 대량 로그 변경 내용이 포함되지 않은 경우에만 로그의 비상 백업이 성공할 수 있습니다. 비상 로그 백업을 만들 수 없는 경우 최신 로그 백업 후에 커밋된 모든 트랜잭션이 손실됩니다.

다음 표에는 BACKUP에 대한 NORECOVERY, NO_TRUNCATE, 및 CONTINUE_AFTER_ERROR 옵션이 요약되어 있습니다.

BACKUP LOG 옵션 설명
NORECOVERY 데이터베이스에서 복원 작업을 계속할 때마다 NORECOVERY을 사용합니다. NORECOVERY은 데이터베이스를 복원 상태로 전환합니다. 이 단계에서는 비상 로그 백업 후에 데이터베이스가 변경되지 않도록 합니다. NO_TRUNCATE 옵션 또는 COPY_ONLY 옵션도 지정하지 않으면 로그가 잘립니다.

중요: 데이터베이스가 손상되거나 오프라인인 경우를 제외하고 NO_TRUNCATE를 사용하지 마십시오. NORECOVERY를 사용하여 복원을 수행하기 전에 단독 액세스를 얻으려면 데이터베이스를 단일 사용자 모드로 전환해야 할 수 있습니다. 복원 후 데이터베이스를 다시 다중 사용자 모드로 설정합니다.
CONTINUE_AFTER_ERROR 손상된 데이터베이스의 비상 로그를 백업하는 경우에만 CONTINUE_AFTER_ERROR를 사용합니다.

손상된 데이터베이스 로그의 비상을 백업하는 경우 일반적으로 로그 백업에 캡처된 일부 메타데이터를 사용할 수 없을 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.

불완전한 백업 메타데이터가 있는 비상 로그 백업

비상 로그 백업은 데이터베이스가 오프라인 상태이거나, 손상되었거나, 데이터 파일이 누락된 경우에도 로그의 꼬리를 캡처합니다. 이로 인해 복원 정보 명령 및 msdb에서 불완전한 메타데이터가 발생할 수 있습니다. 그러나 메타데이터만 불완전합니다. 캡처된 로그가 완료되고 사용할 수 있습니다.

비상 로그 백업에 불완전한 메타데이터가 있는 경우 백업 세트 테이블에서 has_incomplete_metadata1로 설정됩니다. 또한 RESTORE HEADERONLY의 출력에서 HasIncompleteMetadata1으로 설정됩니다.

비상 로그 백업의 메타데이터가 불완전한 경우 backupfilegroup 테이블에 비상 로그 백업 시 파일 그룹에 대한 대부분의 정보가 누락됩니다. 대부분의 backupfilegroup 테이블 열은 NULL이 되며 다음 열만 의미를 갖습니다.

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

관련 작업

비상 로그 백업을 생성하려면 데이터베이스가 손상되었을 때 트랜잭션 로그 백업(SQL Server)을 참조하세요.

트랜잭션 로그 백업을 복원하려면 트랜잭션 로그 백업 복원(SQL Server)을 참조하세요.