전체 복구 모델에서의 백업

업데이트: 2006년 7월 17일

전체 복구 모델은 광범위한 오류 발생 시나리오에서의 데이터 손실을 방지하기 위해 로그 백업을 사용하며 트랜잭션 로그(로그 백업)를 백업 및 복원해야 합니다. 로그 백업 사용의 장점은 데이터베이스를 로그 백업 내에 포함된 임의 시점으로 복원할 수 있다는 것입니다(지정 시간 복구). 재해 발생 후 활성 로그를 백업할 수 있다고 가정하면 데이터 손실 없이 데이터베이스를 오류 시점까지 복원할 수 있습니다. 로그 백업 사용의 단점은 저장 공간이 필요하고 복원 시간 및 복잡성이 증가할 수 있다는 것입니다.

[!참고] 로그 백업을 사용하는 데 따르는 이익이 백업을 관리하는 비용보다 크지 않은 경우에는 단순 복구 모델을 사용하는 것이 좋습니다.

정기적으로 전체 복구 모델을 사용하는 데이터베이스의 경우 임시로 대량 로그 복구 모델을 사용하여 특정 대량 작업을 최적화할 수 있습니다. 대량 로그 복구 모델은 일상 작업에는 적합하지 않은 여러 제한을 발생시킵니다. 자세한 내용은 대량 로그 복구 모델에서의 백업을 참조하십시오.

예제 백업 전략

다음 그림에서는 전체 복구 모델의 가장 간단한 백업 전략을 보여 줍니다. 이 그림에서는 데이터베이스 백업 하나(Db_1)와 일상적인 로그 백업 두 개(Log_1 및 Log_2)가 수행되었습니다. Log_2 로그 백업이 수행되고 잠시 후 데이터베이스에서 데이터 손실이 발생합니다. 이 3개의 백업을 복원하기 전에 데이터베이스 관리자는 활성 로그(비상 로그)를 백업해야 합니다. 그리고 데이터베이스를 복구하지 않고 Db_1, Log_1 및 Log_2를 복원합니다. 그런 다음 데이터베이스 관리자는 비상 로그 백업을 복원 및 복구합니다. 이렇게 하면 데이터베이스가 오류 지점으로 복구되고 모든 데이터가 복구됩니다.

전체 복구 모델 데이터베이스 복원

작업 손실 가능성 최소화

첫 번째 전체 데이터베이스 백업이 완료되고 정기적인 로그 백업이 시작되면 잠재적 작업 손실 가능성이 데이터베이스가 손상된 시간과 가장 최근의 정기적 로그 백업 사이의 시간으로 제한됩니다. 따라서 로그 백업을 자주 수행하여 작업 손실 가능성이 비즈니스 요구 사항에 필요한 범위 내로 유지하는 것이 좋습니다.

오류가 발생한 후 비상 로그(아직 백업되지 않은 로그)를 백업할 수 있습니다. 비상 로그 백업이 성공하면 데이터베이스를 오류 지점까지 복원하여 작업 손실을 방지할 수 있습니다.

일련의 로그 백업을 사용하여 로그 백업 중 하나에 포함된 시점으로 데이터베이스를 롤포워드할 수 있습니다. 위험을 최소화하려면 일상적인 로그 백업을 예약하는 것이 좋습니다. 복원 시간을 최소화하기 위해 같은 데이터를 포함하는 일련의 차등 백업으로 각 전체 백업을 보완할 수 있습니다.

다음 그림에서는 전체 데이터베이스 백업을 차등 데이터베이스 백업과 일련의 일상적인 로그 백업으로 보완하는 백업 전략을 보여 줍니다. 트랜잭션 로그 백업이 있으면 최신 로그 백업 이후의 시간까지 잠재적 작업 손실 가능성을 줄일 수 있습니다. 첫 번째 데이터베이스 백업 후에 차등 백업을 연속으로 3번 수행합니다. 3번째 차등 백업은 다음 백업 시 데이터베이스 백업을 수행해야 할 만큼 커집니다. 이 데이터베이스 백업으로 인해 새 차등 기반이 구축됩니다.

전체, 차등 데이터베이스 백업 및 로그 백업

이 그림에서 첫 번째 데이터베이스 백업 전에 데이터베이스는 t0 시간에서 t1 시간까지 잠재적 작업 손실 위험에 노출됩니다. 그 이후 일상적인 로그 백업을 통해 작업 손실 가능성을 최신 로그 백업(이 그림에서 t14 시간에 수행된 로그 백업) 이후의 변경 내용 손실로 줄입니다. 오류 발생 시 데이터베이스 관리자는 활성 로그(비상 로그)를 즉시 백업해야 합니다. 이 비상 로그 백업이 성공하면 데이터베이스를 오류 지점까지 복원할 수 있습니다.

대량 작업 및 전체 복구 모델

SELECT INTO, CREATE INDEX와 같은 대량 작업을 비롯한 모든 작업을 기록하고 데이터를 대량 로드함으로써, 사용자는 전체 복구 모델을 사용하여 데이터베이스를 오류 지점 또는 이전 시점(지정 시간 복원이라고 함)으로 복구할 수 있습니다.

전체 복구 모델을 사용하는 많은 사용자들이 데이터를 대량 로드할 때, 성능 향상이 발생할 수 있는 데이터 손실 위험보다 중요한 경우 일시적으로 대량 로그 복구 모델로 전환합니다. 대량 로그 복구 모델은 다른 트랜잭션은 전체 기록하지만 대량 작업은 최소한으로 기록합니다. 대량 로그 복구 모델에 대한 자세한 내용은 대량 로그 복구 모델에서의 백업을 참조하십시오.

[!참고] SQL Server 2000 이후 버전에서 sp_dboptionselect into/bulkcopy 데이터베이스 옵션을 사용하면 복구 모델이 BULK_LOGGED로 다시 설정됩니다. SQL Server 2000에서 SELECT INTO를 사용하여 영구 테이블을 만들려면 이 옵션이 필요합니다. 그러나 SQL Server 2005에서는 이 옵션이 필요하지 않으며 항상 이 옵션 대신 ALTER DATABASE를 사용해야 합니다. 이후 버전의 SQL Server에서는 sp_dboption 저장 프로시저가 제거됩니다.

백업을 사용하여 데이터베이스 복원

데이터베이스를 복원하려면 복원 작업을 위한 시퀀스(복원 시퀀스)가 필요합니다. 복원 시퀀스는 하나 이상의 전체 백업 복원으로 시작하여 필요에 따라 해당하는 차등 백업을 복원합니다.

각 전체 백업 및 차등 백업에는 데이터베이스를 복구하는 데 사용할 수 있을 만큼의 로그 레코드가 들어 있습니다. 그러나 일반적으로 후속 로그 백업을 순서대로 복원하고 비상 로그 백업(있는 경우)을 복원해야 합니다. 따라서 데이터베이스 복원을 시작하기 전에 비상 로그 백업을 만들어야 합니다. 비상 로그 백업을 통해 데이터베이스를 오류 지점까지 복원할 수 있습니다. 마지막 로그 백업이 복원되면 데이터베이스를 복구해야 합니다.

[!참고] 전체 복구 모델이나 대량 로그 복구 모델에서는 SQL Server 2005 Enterprise Edition에서 데이터베이스가 온라인 상태일 때 파일이나 페이지 또는 둘 다를 복원할 수 있는데 이를 온라인 복원이라고 합니다. 파일 또는 페이지 복원에 대한 RESTORE 구문은 데이터베이스가 오프라인이거나 온라인인 경우 모두 동일합니다.

자세한 내용은 SQL Server의 복원 및 복구 개요를 참조하십시오.

참고 항목

개념

백업 장치
표시된 트랜잭션 사용(전체 복구 모델)
SQL Server의 복원 및 복구 개요
전체 또는 대량 로그 복구 모델에서 전환 고려 사항

관련 자료

트랜잭션 로그 이해 및 관리
차등 백업 사용

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 7월 17일

변경된 내용

2005년 12월 5일

변경된 내용
  • 이전의 "전체 복구 개요" 항목을 통합했습니다.
  • 그림을 추가했습니다.