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


Posted by 준콩ol 준콩ol

댓글을 달아 주세요

  1. 2016.08.03 08:38  댓글주소  수정/삭제  댓글쓰기

    덕분에 해결했어요~~

  2. 종호 2016.09.08 11:18  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    올려주신 내용 감사합니다.
    작업 완료후에는 다시 MULTI_USER로 변경하면 될까요?

    • 준콩ol 준콩ol 2016.09.08 20:13 신고  댓글주소  수정/삭제

      제한된 사용자 상태일 경우 타 클라이언트에서 접속이 불가능하므로
      restore 완료 후 새로고침 했을 때 "(제한된 사용자)"로 남아있다면 MULTI_USER로 다시 변경해주시면 됩니다.

  3. 호잇 2017.07.04 16:59  댓글주소  수정/삭제  댓글쓰기

    덕분에 백업 잘 했습니다. 그런데 웹에서 접속할때


    보고서를 처리하는 동안 오류가 발생했습니다.(rsProcessingAborted)
    데이터 집합 TSRMASTER의 다음 데이터 행을 읽을 수 없습니다.(rsErrorReadingNextDataRow)
    이 오류에 대한 자세한 내용을 보려면 로컬 서버 컴퓨터의 보고서 서버를 탐색하거나 원격 오류를 활성화하십시오.


    이렇게 뜨네요ㅠㅠ
    혹시 해결 방법 아시나요?
    제한된 사용자로 선택되진 않았어요..