이준빈은 호박머리

IT 프로그래밍 개발 정보 블로그, 이준빈은 호박머리 입니다.

Database/MSSQL

MSSQL 복원(Restore) 시 데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다

준콩이 2015. 8. 13. 08:55
반응형


MSSQL DB 복원 시 아래와 같은 오류가 발생했을 경우 조치방법입니다.

Exclusive access could not be obtained because the database is in use.


서버 XXX에 대한 복원이(가) 실패했습니다. (Microsoft.SqlServer.SmoExtended)

추가정보 :

Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다.

(Microsoft.SqlServer.ConnectionInfo)

데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다. RESTORE DATABASE이(가) 비정상적으로 종료됩니다. (Microsoft SQL Server, 오류: 3101)


이 오류가 발생하는 원인은 DB 복원(Restore) 시 아직 해당 DB에 접속되어 있는 세션이 남아있기 때문입니다. 아무도 접근하지 못하도록 DB 접근을 제한하여 복원 작업을 진행할 수 있습니다.
복원이 완료되면 자동으로 접근제한 설정도 해제됩니다.
아래의 과정을 순서대로 따라하시면 DB접근을 제한하여 DB복원을 마무리할 수 있습니다.


1. 복원(Restore) 하려는 DB를 마우스 오른쪽 클릭하여 속성을 클릭합니다.



2. 좌측 카테고리 중 옵션 메뉴를 선택 후 액세스 제한 항목의 MULTI_USER, SINGLE_USER, RESTRICTED_USER 중 RESTRICTED_USER(제한된 사용자)로 선택 후 확인 버튼을 클릭합니다.


3. 데이터베이스 속성을 변경하려면 SQL Server에서 데이터베이스에 대한 다른 모든 연결을 닫아야합니다. 다른 모든 연결을 닫고 속성을 변경하시겠습니까? 라는 물음이 나오면 예 버튼을 클릭합니다.



4. 변경된 속성이 적용되면 DB명 옆에 제한된 사용자 라고 표시되어 있는 것을 확인할 수 있습니다.



5. 이제 복원을 위한 준비가 되었으니 복원 작업을 진행하시면 아래와 같이 데이터베이스의 복원이 완료되었습니다. 라는 완료 메시지를 확인할 수 있습니다.


반응형