2013-01-21 6 views
13

SQL Server 용 LogShipping을 구성 할 때 보조 데이터베이스를 복구 안 함 모드 또는 대기 모드로 선택할 수 있습니다. No Recovery는 로그 전달이 진행되는 동안 데이터베이스에 대한 액세스 권한이 없음을 의미합니다. 대기 모드는 읽기 전용 액세스 권한을 제공하며 복원이 수행 될 때마다 사용자의 연결을 끊는 옵션을 선택하면 로그 전달 프로세스를 방해하지 않는 것처럼 보입니다. 이것은 저에게 대기 모드의 추가적인 이점을 생각합니다. 그러나 필자가 볼 수있는 한, 그 문서에는 악영향이 없다는 것을 알 수 있습니다.로그 전달 : 왜 복구 안 함 모드를 선택하겠습니까?

따라서 아무도 복구 안 함 모드를 선택하는 이유가 궁금합니다. 내가 생각할 수있는 그럴듯한 이유는 대기 모드로 인해 성능 저하가 발생했거나 (문서에는 아무 것도 언급되어 있지 않거나) 보조 데이터베이스의 내용을 보지 못하게하는 보안 요구 사항이있는 경우입니다 희귀/희박한 것처럼 보일 것입니다).

No Recovery Mode를 선택하면 아무런 이점이 없다는 것을 나에게 밝혀 줄 수 있습니까?

+7

나는 이것이 주제와 다른 것으로 여겨지는 이유를 알지 못합니다. 링크 된 FAQ에는 '프로그래머가 일반적으로 사용하는 소프트웨어 도구'라는 기준이 포함되어 있습니다. Log-Shipping은 프로그래머가 매우 일반적으로 사용하는 SQL Server의 일부이며 실제로 StackOverflow를 검색하면 LogShipping에 대한 질문이 여기에서 요청되고 응답됩니다. – PhantomDrummer

답변

16

NORECOVERY 모드를 사용하면 대상 데이터베이스에 액세스 할 수 없으므로 데이터베이스는 커밋되지 않은 트랜잭션을 신경 쓸 필요가 없습니다. 로그는 "있는 그대로"복원되어 해당 상태로 남을 수 있습니다.

STANDBY 모드를 사용하면 데이터베이스는 NORECOVERY으로 복원 된 다음 로그에서 커밋되지 않은 모든 트랜잭션을 분석하고 롤백합니다. 그런 다음 사용자에게 읽기 전용 액세스 권한을 부여 할 수 있습니다. 다음 로그가 복원되면 데이터베이스는 모든 사용자의 연결을 끊고 복원하기 전에 L 확약 트랜잭션을 마지막 로그 전달에서 다시 롤 i합니다.

위에서 볼 수 있듯이 STANDBY은 트랜잭션 볼륨에 따라 복원시 잠재적으로 많은 추가 오버 헤드가 발생할 수 있습니다.

자세한 내용 at this article at My World of SQL.