MSSQL 데이터베이스가 사용 중이어서 배타적으로 액세스할 수 없습니다. 오류해결

 MSSQL SSMS 툴을 이용해서 기존에 백업해놓은 bak 파일을 다시 복원하는 도중에 "데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다." 라는 오류메세지가 나올경우 아래와 같이 조치하면 된다.


데이터베이스 선택후 오른쪽 마우스를 클릭하면 데이터베이스 복원 이라는 메뉴가 보일 겁니다.
해당 메뉴를 클릭합니다.



1번 디바이스를 선택합니다.
2번 백업 디바이스 선택을 합니다.
3번 추가버튼을 통해 백업받아놓은 bak 파일경로를 찾아서 확인을 누릅니다.

 

백업미디어에 추가한 bak 파일이 업로드 된것을 확인하실수 있습니다. 1번 확인 버튼을 클릭합니다.


복원할 백업 세트 부분에 정상적으로 백업받은 데이터를 확인한후 복원할 데이터베이스 이름을 지정 한후 1번 확인 버튼을 클릭합니다.

오류가 발생합니다. "데이터베이스가 사용 중이어서 배타적으로 액세스할 수 없습니다" 라는 오류메세지가 뜹니다.


오류해결1.

원본 백업을 받은 데이터베이스가 현재 사용중이기 때문에 액세스 할수 없다라고 오류메세지가 발생한겁니다. 이부분은 사용중인 데이터베이스의 속성정보로 이동하여 옵션메뉴를 클릭합니다.

액세스 제한항목에 현재는 MULTI_USER로 설정되어있는데 이부분을 RESTRICTED_USER로 변경을 합니다. 사실 이부분은 현재 사용중인 DATABASE이면 모든 CRUD 트랜잭션이 막혀 버립니다.

현재 사용하지 않는 데이터베이스이면 액세스 제한설정을 변경후 다시 복원한다음에 다시 설정을 원래 대로 변경을 할수는 있습니다.

그래서 실제 현업에서 운영중인 DB이면 문제가 발생하기 때문에 추천드리지 않습니다.

 

오류해결2.

파일항목을 클릭하여 데이터베이스 파일의 위치를 설정하는 메뉴로 들어갑니다.


저는 mdf 파일을 여러개로 쪼개놓고 관리를 하는데 대부분은 이화면에 들어오면 mdf파일 1개, ldf 파일 1개만 보이실겁니다. 다음으로 복원에 파일은 선택하여 복원할 데이터베이스의 파일위치를 수동으로 지정합니다. 

저는 위치를 E:\MSSQL\SMT_DATA\DATA\INX_MES.mdf 위치로 설정을 했습니다. 위치설정을 모두 마친후 옵션탭으로 이동을 해서 비상 로그 백업에 체크가 되어있으면 체크를 해제를 한후 확인버튼을 통해 데이터베이스를 정상적으로 복원하시면 됩니다. 



모든 설정을 다 마치고 확인 버튼을 클릭하면 정상적으로 데이터베이스가 복원이 된걸 확인하실수 있습니다.




Comment

다음 이전