비상 로그 백업
업데이트: 2006년 7월 17일
이 항목에서는 전체 또는 대량 로그 복구 모델을 사용하는 데이터베이스와 관련된 내용을 다룹니다.
대부분의 경우 SQL Server 2005에서는 전체 또는 대량 로그 복구 모델을 사용할 경우 아직 백업되지 않은 로그 레코드를 캡처하기 위해 비상 로그 백업을 수행해야 합니다. 복원 작업 바로 전에 수행한 비상 로그의 로그 백업을 비상 로그 백업이라고 합니다.
SQL Server 2005에서는 일반적으로 데이터베이스를 복원하기 전에 비상 로그 백업을 수행해야 합니다. 비상 로그 백업은 작업 손실을 방지하고 로그 체인을 그대로 유지합니다. 데이터베이스를 실패 지점으로 복구할 때는 비상 로그 백업이 복구 계획의 마지막 백업입니다. 비상 로그를 백업할 수 없으면 실패 전에 생성된 마지막 백업의 끝으로만 데이터베이스를 복구할 수 있습니다.
모든 복원 시나리오에서 비상 로그 백업이 필요한 것은 아닙니다. 복구 지점이 이전의 로그 백업에 포함되어 있거나 데이터베이스를 이동 또는 교체(덮어쓰기)하는 경우에는 비상 로그 백업이 필요하지 않습니다. 또한 로그 파일이 손상되었고 비상 로그 백업을 만들 수 없으면 비상 로그 백업을 사용하지 않고 데이터베이스를 복원해야 합니다. 최신 로그 백업 이후 커밋된 모든 트랜잭션은 손실됩니다. 자세한 내용은 이 항목의 뒷부분에 나오는 "비상 로그 백업을 사용하지 않고 복원"을 참조하십시오.
비상 로그 백업
비상 로그 백업은 다른 로그 백업과 마찬가지로 BACKUP LOG 문을 사용하여 수행됩니다. 다음과 같은 상황에서 비상 로그 백업을 수행하는 것이 좋습니다.
데이터베이스가 온라인이면 복원 시퀀스를 시작하기 전에 데이터베이스에서 수행하려고 하는 다음 동작이 복원 작업일 때마다 다음과 같이 WITH NORECOVERY를 사용하여 비상 로그를 백업합니다.
BACKUP LOG database_name TO <backup_device> WITH NORECOVERY[!참고] 오류를 방지하려면 NORECOVERY 옵션이 필요합니다.
데이터베이스가 오프라인이고 시작되지 않은 경우에는 다음과 같이 합니다.
비상 로그 백업을 수행합니다. 이 시점에서는 트랜잭션이 발생할 수 없으므로 WITH NORECOVERY의 사용은 선택 사항입니다. 데이터베이스가 손상되지 않은 경우 WITH CONTINUE_AFTER_ERROR 또는 WITH NO_TRUNCATE를 사용합니다.
BACKUP LOG database_name TO <backup_device> [WITH { CONTINUE_AFTER_ERROR | NO_TRUNCATE }중요: 데이터베이스가 손상된 경우가 아니면 NO_TRUNCATE는 사용하지 않는 것이 좋습니다.
다음 표에서는 이러한 옵션을 요약하여 설명합니다.
BACKUP LOG 옵션
설명
NORECOVERY
데이터베이스에서 복원 작업을 계속하려는 경우 NORECOVERY를 사용합니다. NORECOVERY는 데이터베이스를 복원 중인 상태로 만듭니다. 이렇게 하면 비상 로그 백업 후 데이터베이스가 변경되지 않습니다.
NO_TRUNCATE 옵션 또는 COPY_ONLY 옵션을 함께 지정하지 않으면 로그가 잘립니다.
{ CONTINUE_AFTER_ERROR | NO_TRUNCATE }
손상된 데이터베이스의 비상 로그를 백업하는 경우에만 NO_TRUNCATE 또는 CONTINUE_AFTER_ERROR를 사용합니다.
참고:
손상된 데이터베이스에서 비상 로그 백업을 사용하는 경우에는 일반적으로 로그 백업에서 캡처되는 메타데이터 일부를 사용할 수 없을 수 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 "완전하지 않은 백업 메타데이터가 포함된 비상 로그 백업"을 참조하십시오.
데이터베이스가 손상되었을 때 트랜잭션 로그 백업을 만들려면
완전하지 않은 백업 메타데이터가 포함된 비상 로그 백업
비상 로그 백업은 데이터베이스가 오프라인이거나 손상되었거나 데이터 파일이 없는 경우에도 비상 로그를 캡처합니다. 이로 인해 복원 정보 명령과 msdb의 메타데이터가 완전하지 않을 수 있습니다. 그러나 메타데이터가 완전하지 않은 경우에도 캡처된 로그는 완전한 상태이며 사용 가능합니다.
비상 로그 백업에 완전하지 않은 메타데이터가 있으면 backupset 테이블의 has_incomplete_metadata가 1로 설정됩니다. 또한 RESTORE HEADERONLY 출력에서 HasIncompleteMetadata는 1로 설정됩니다.
비상 로그 백업의 메타데이터가 완전하지 않으면 backupfilegroup 테이블은 비상 로그 백업 당시 파일 그룹에 대한 대부분의 정보를 잃게 됩니다. 대부분의 backupfilegroup 테이블 열은 NULL이 되며 다음 열만 의미를 갖습니다.
- backup_set_id
- filegroup_id
- type
- type_desc
- is_readonly
비상 로그 백업을 사용하지 않고 복원
다음과 같은 시나리오에서는 비상 로그 백업이 필요하지 않습니다.
- 이전 로그 백업이 포함되어 있는 지정 시간으로 데이터베이스 복원
데이터베이스를 복원하고 복원 시퀀스의 모든 RESOTRE 문에 STOPAT, STOPATMARK 또는 STOPBEFOREMARK 옵션을 지정할 경우에는 비상 로그 백업이 필요하지 않습니다.
데이터베이스를 이전 시점으로 복원하려면- Transact-SQL을 사용하여 특정 시점으로 복원하려면 방법: 지정 시간 복원(Transact-SQL), 표시된 트랜잭션으로 복구 또는 LSN(로그 시퀀스 번호)로 복구를 참조하십시오.
- SQL Server Management Studio를 사용하려면 방법: 지정 시간으로 복원(SQL Server Management Studio) 또는 방법: 데이터베이스를 표시된 트랜잭션으로 복원(SQL Server Management Studio)을 참조하십시오.
- 새 위치로 데이터베이스 복사본 복원
데이터베이스를 복원할 때는 데이터베이스 미러링용 미러 데이터베이스를 만들거나 로그 전달용 보조 데이터베이스를 만드는 경우와 같이 데이터베이스를 다른 서버 인스턴스로 복원하는 경우에만 동일한 데이터베이스 이름을 사용할 수 있습니다. 동일한 서버 인스턴스에서 데이터베이스를 이동할 경우에는 데이터베이스에 대해 새 이름을 지정해야 합니다.
데이터베이스를 새 위치로 복원하려면- 복원 시퀀스의 모든 RESOTRE 문에서 Transact-SQL을 사용하여 MOVE 옵션을 지정합니다. 자세한 내용은 방법: 새 위치 및 이름으로 데이터베이스 복원(Transact-SQL) 또는 방법: 파일을 새 위치로 복원(Transact-SQL)을 참조하십시오.
- SQL Server Management Studio를 사용하여 옵션 페이지의 데이터베이스 복원에 있는 다음으로 복원 필드에 각 파일의 새 위치를 지정합니다. 자세한 내용은 방법: 데이터베이스 백업 복원(SQL Server Management Studio)을 참조하십시오.
- 데이터베이스 완전히 교체(덮어쓰기)
주의: REPLACE 옵션을 사용한 복원 작업은 경험이 풍부한 데이터베이스 관리자에 한해 신중한 검토 후 사용해야 하며 되도록 사용하지 않아야 합니다. 자세한 내용은 REPLACE 옵션 사용을 참조하십시오.
참고 항목
개념
복사 전용 백업
데이터베이스 상태
트랜잭션 로그 백업 적용
트랜잭션 로그 백업 만들기
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 7월 17일 |
|