온라인 복원 수행
온라인 복원은 SQL Server 2005 Enterprise Edition 이상 버전에서만 지원됩니다. 이 버전에서 기본적으로 파일, 페이지 또는 증분 복원은 온라인 상태입니다.
이 항목에서는 데이터베이스에 여러 개의 파일 또는 파일 그룹이 있는 경우 및 단순 복구 모델에서 데이터베이스에 읽기 전용 파일 그룹만 있는 경우와 관련된 내용을 다룹니다.
데이터베이스가 온라인 상태인 데이터 복원을 온라인 복원이라고 합니다. 데이터베이스는 주 파일 그룹이 온라인 상태일 때마다 하나 이상의 보조 파일 그룹이 오프라인 상태일 경우에도 온라인 상태로 간주됩니다. 복구 모델에서는 데이터베이스가 온라인 상태일 때 오프라인인 파일을 복원할 수 있습니다. 전체 복구 모델에서도 데이터베이스가 온라인 상태일 때 페이지를 복원할 수 있습니다.
[!참고]
온라인 복원은 SQL Server 2005 Enterprise Edition 이상 버전에서 자동으로 수행되며 사용자 동작이 필요하지 않습니다. 온라인 복원을 사용하지 않으려면 복원을 시작하기 전에 데이터베이스를 오프라인 상태로 만듭니다. 자세한 내용은 이 항목의 뒷부분에 나오는 데이터베이스 또는 파일을 오프라인 상태로 만들기를 참조하십시오.
온라인 파일 복원을 수행하는 동안 복원된 파일과 해당 파일 그룹은 오프라인 상태입니다. 온라인 복원을 시작할 때 이러한 모든 파일이 온라인 상태일 경우 첫 번째 복원 문은 해당 파일의 파일 그룹을 오프라인 상태로 만듭니다. 반대로 온라인 페이지 복원을 수행하는 동안에는 해당 페이지만 오프라인 상태입니다.
모든 온라인 복원 시나리오에서는 다음과 같은 기본 단계를 수행합니다.
데이터를 복원합니다.
최종 로그 복원에 WITH RECOVERY를 사용하여 로그를 복원합니다. 이러면 복원된 데이터가 온라인 상태가 됩니다.
롤백에 필요한 데이터가 시작 시 오프라인 상태여서 커밋되지 않은 트랜잭션을 롤백할 수 없는 경우가 있습니다. 이 경우에는 트랜잭션이 지연됩니다. 자세한 내용은 지연된 트랜잭션을 참조하십시오.
[!참고]
데이터베이스가 현재 대량 로그 복구 모델을 사용하고 있을 경우 온라인 복원을 시작하기 전에 전체 복구 모델로 전환하는 것이 좋습니다. 자세한 내용은 전체 또는 대량 로그 복구 모델에서 전환을 참조하십시오.
중요 |
---|
서버에 연결된 여러 장치로 백업을 수행한 경우에는 온라인 복원 중에 같은 수의 장치를 사용할 수 있어야 합니다. |
온라인 복원용 로그 백업
온라인 복원에서 복구 지점은 복원되는 데이터가 오프라인 상태로 된 지점이거나 마지막으로 읽기 전용으로 된 지점입니다. 이 복구 지점을 포함하여 이 지점까지의 트랜잭션 로그 백업은 모두 사용할 수 있어야 합니다. 일반적으로 로그 백업은 파일을 복구한 후에 필요합니다. 단, 해당 데이터가 읽기 전용이 된 후에 수행된 데이터 백업에서 읽기 전용 데이터의 온라인 복원을 수행하는 중인 경우에는 로그 백업이 필요하지 않습니다.
일반적으로 복원 시퀀스를 시작한 이후에도 데이터베이스가 온라인 상태이면 트랜잭션 로그 백업을 수행할 수 있습니다. 마지막 로그 백업의 시점은 복원된 파일의 속성에 따라 다릅니다.
온라인 읽기 전용 파일의 경우 첫 번째 복원 시퀀스 전이나 중간에 복구에 필요한 마지막 로그 백업을 수행할 수 있습니다. 읽기 전용 파일 그룹에서는 해당 파일 그룹이 읽기 전용이 된 이후에 데이터 또는 차등 백업을 수행한 경우 로그 백업이 필요 없습니다.
[!참고]
위의 정보는 모든 오프라인 상태인 파일에도 적용할 수 있습니다.
특별한 경우로 첫 번째 복원 문이 실행된 시점에서 온라인 상태였다가 해당 복원 문에 의해 자동으로 오프라인 상태가 된 읽기/쓰기 파일이 있습니다. 이 경우 반드시 첫 번째 복원 시퀀스(데이터를 복원, 롤포워드 및 복구하는 하나 이상의 RESTORE 문의 순서) 중에 로그 백업을 수행해야 합니다. 일반적으로 이 로그 백업은 모든 전체 백업을 복원한 이후 그리고 데이터를 복구하기 이전에 발생해야 합니다. 그러나 특정 파일 그룹에 대한 파일 백업이 여러 개인 경우 로그 백업의 최소 시점은 해당 파일 그룹이 오프라인 상태가 된 후입니다. 이러한 데이터 복원 후 로그 백업은 파일이 오프라인 상태가 된 지점을 캡처합니다. SQL Server 데이터베이스 엔진은 온라인 복원에 온라인 로그를 사용할 수 없으므로 이러한 데이터 복원 후 로그 백업이 필요합니다.
[!참고]
복원 시퀀스 전에 파일을 수동으로 오프라인 상태로 만들 수도 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 "데이터베이스 또는 파일을 오프라인 상태로 만들기"를 참조하십시오.
데이터베이스 또는 파일을 오프라인 상태로 만들기
온라인 복원을 사용하지 않으려면 복원 시퀀스를 시작하기 전에 다음 방법 중 하나를 사용하여 데이터베이스를 오프라인 상태로 만들 수 있습니다.
복구 모델에서 다음 ALTER DATABASE 문을 사용하여 데이터베이스를 오프라인 상태로 만들 수 있습니다.
ALTER DATABASE database_name SET OFFLINE
또는 전체 복구 모델에서 다음 BACKUP LOG 문을 사용하여 데이터베이스를 복원 중인 상태로 설정하여 파일이나 페이지 복원을 강제로 오프라인 상태로 만들 수 있습니다.
BACKUP LOG database_name WITH NORECOVERY
데이터베이스가 오프라인 상태를 유지하면 모든 복원은 오프라인 복원이 됩니다.
예
[!참고]
온라인 복원 시퀀스의 구문은 오프라인 복원 시퀀스의 구문과 동일합니다.